Wednesday, April 20, 2011

SharePoint Diagnostics Studio V2.0

This will be one of the most anticipated admin and dev tools released for SharePoint this year. It will come bundled with the updated version of the administrator toolkit for SharePoint 2010.
Ever had to trawl through multiple logs from multiple load balanced servers to figure out what really happened? Wished you could have your perfmon counters ready when analysing problems? The next version of the SPDiag tool will let you do that and much more. Run reports, save report snapshots, find events based on time, CorrelationID and... the login name! So Jo complains his page crashed and he did not make not of the correlation id? No problem. correlate all logs into one place on your desktop with minimal strain on the servers. Then run a search on his logon and the time window when it crashed and you'll have all the surrounding details, processes and counters available at your fingertips.
Also includes database stats, network stats and latency statistics to identify bottlenecks with some of you service app communications.
This tool was developed by the product team at Microsoft to assist them with the SharePoint development process. What's good for them can't be bad for us mere mortals!
Can't wait to get my hands on this gem. Supposedly coming out this month. Which really means sometime this year, probably during Q2 some time.

Friday, March 18, 2011

How to Add Custom Columns to the Search Results in MOSS 2007

A few years ago I demonstrated at the New Zealand Conference how to add custom metadata columns to your search results. What I never did was make a blog post about it. So let me rectify that error of mine.

To get custom columns to appear on your search results page in MOSS you will need to do a few things. First make sure the metadata field is indexed and available by adding it to the Mapped Metadata Columns in the Search Administration of your SSP. Then, recrawl your index. And finally show the new column on the search results page by tweaking some xml and xsl.

1) Get the column indexed and mapped
To do this, open up your SSP admin site either directly or via Central Admin. Then navigate to the Search Administration Page and look for Managed Columns on the left menu. There you will need to add a new managed colum which mapps your custom field. This field could be in a SQL Store indexed via BCS or in a custom list or in a custom content type. In any case I assume that you have already crawled all the content in question, otherwise this step won't work.
2) Recrawl the index
Once you have added the managed metadata colum you need to do a full crawl. Sorry, no incremental crawls will work, as only in a full crawl does the engine do the mapping of all existing fields in the index.
3) Customise the Search Results
Browse to the search results page in your Search Centre. Fastest way? Type in a search into any search box! If you farm is configured correctly that should catapult you to the correct page.
There you need to edit the page and customise the Core Search Results WebPart.

Before you edit the actual XSL Look and feel you need to tell the webpart about the new column. So first click the three dots next to "Selected Columns". You find this option under the ResultsQuery Option. (refer to above screenshot) Copy the text out of the editor into notepad. You'll get this:
Well, you won't get that exactly. It will all be on one line and illegible. Feel free to use an xml editor of your choice instead of notepad.
In that xml you now need to add the Mapped Metadata column name. Make sure you use the correct case. XML is case sensitive! Also add the name you gave the mapped column and not the source metadata column (in case these two have different names). Once you have added the column to the xml text copy it back into the popup for the "Select Columns: option.

(note the new MyCustomColumn entry at the bottom)
Once you have added the xml for the new column you can add the column to the output in the XSLT.
Click the XSL Editor button on the WebPart customisation interface (see first screenshot) and add the new field to your xsl.

Extract before you add the markup:
And now with the new data appearing right next to the description of the search result:


That's it. Copy the changed xsl back into the XSL editor popup, apply your changes to the web part and test your results by executing a fresh search which includes some of the custom metadata that you have indexed.
The next step would be to create a custom scope for your BCD indexed data, create a custom search page and search results page for that scope and go ape-shit on the search results page with loads of custom columns and custom look and feel.
Happy Customising folks!

Monday, March 14, 2011

How to pass 70-576

Totally forgot to post the fourth post in the series. If you want to earn your sharepoint 2010 professional developer credential then you'll also need to pass this exam. Measureup does not have this one on it's books yet, so no legal cheating on this one.
The questions are not quite scenario based as with many of the .Net developer pro exams. But not quite as code driven as the TS exams. Expect simple scenarios with simple seeming answers.
Actually there are quite a few trick answers where there seems to be two valid choices until you spot the error. My best advice on this exam is to eliminate the wrong answers. Quite a few will be obvious bull answers, but there will be the occasional one that will make you doubt. Re-read the question. Often there is a clue or constraint in the mini scenario which will eliminate the second option.
A lot of questions are common sense on development and deployment techniques. Make sure you're up to scratch on best practices for features, solutions, dependencies, upgrading and the new 2010 features.
Warning! Only because it is a new feature in 2010 doesn't mean that it must be the right choice!
Last tip, as with any Microsoft exam, stick to your first gut choice when in doubt. And only move from that when you are 100% sure that the new answer is the correct one.



Thursday, March 10, 2011

Air New Zealand 777-300 Review

Just had the pleasure of viewing one of the new 777-300 planes from Air New Zealand. A lot of good things and a few bad things to comment on:
Great:

  • Arm rests fold up in economy. Great if travelling as my wife and I normally do.
  • Sky couch can hold two people who weigh up to 150kg each. (300 Pounds on the leg rest alone)
  • Touch Screens work like a charm and at last no need for the annoying remote control
  • Remote/Phone stowed in-front and not in the side (why did they not think of that earlier?)
  • New menu is supposed to be much better (I'll wait and see)
  • Power sockets also in economy. (Which laptop battery lasts for 12h-24h?)
  • Headrest holds up! (That drove me mad in the old planes. Always falling down again.)
  • Special cushions that attach to headrest. No more fussing with the cushion when standing up and sitting back down again.
  • Sections are shorter with an added canteen in the middle. Means less people running past and faster service all round.

Not so Great:

  • Seats narrower and Aisles narrower in economy.
  • Premium Economy lacks leg-room due to hard case shell design of seats. Max height for premium economy passenger: 178cm. Anything beyond that and you're bound to get sore legs as you can't stretch them completely. 
  • SkyCouch not very spacious. Gonna be very cuddly! And be sure not to stretch your legs or you'll hit the person in the middle aisle.

Secret Tips:

  • Three rows of two seaters at the back of the plane. Great for couples. Also have 1inch more leg-room!
  • Don't take a seat in the 3-person row right in-front of those two-seaters. Armrests don't go all the way up but are stuck at horizontal. 
Summary:
All in all I am looking forward to flying long haul in the new Boeing 300s. It looks like it will be very enojyable  and no, I won't be upgrading to premium economy on those flights. Unless I could choose my seats before booking the flight. Now that would be just perfect!

Wednesday, February 16, 2011

The Social Media Revolution

Who has once in their life had the inner desire to change the world? You know - , when you were a kid -, that innocent wish for world peace?
Or better yet… who has never hoped to change a thing because it seems too hard or simply impossible to achieve?

Well, I’ve got news for you!
Never before has it been easier to change the world, or at least the little piece of the world that surrounds you.

Ever since Wikileaks began publishing confidential information back in 2007 the world has been in uproar. And the US government has tried to silence the truths about its involvement and handling of international affairs ever since.

Although it is ludicrous to claim Wikileaks as being responsible for the recent revolutions in Tunisia and Egypt, it has nevertheless helped raise international awareness of the widespread corruption, thus making it just a little harder for dictatorships to diffuse these situations.
Without Wikileaks the Vice President in Egypt would have been in a much stronger position, but now that the whole world knows that he is buddies with Israel, his presence alone added to the fuel of the burning fires on the streets of Egypt.
And what was the first thing the Egyptian president did when the revolts got out of hand? Shut down access to Twitter and Facebook. When the uprising started in Egypt everyone was fast to blame it on Islamic militants. But the tens of thousands of people gathering on parliament square were a far cry from blood curdling terrorists! They were lawyers, shop keepers and engineers. The average Jo Bloggs who simply had had enough!! They were sick and tired of the violence, oppression and corruption in their country. These people did not attend secret rebel meetings before joining the demonstrations. Nor did they subscribe to the anarchist grapevine. No, they heard about the movement on Facebook, Twitter and the local media and decided it was time to act and stand up for their rights.

The Jasmine revolution in Tunisia started with Mohammed Bouazizi setting himself on fire in an act of desperation after being tyrannised and humiliated in public. It ended in a mass revolt which spread throughout the country, partly organised through Facebook and Twitter. One of the reasons these tools were so effective in spreading the word in Tunisia was due to the high percentage of youths in that country. Over half the population is under 25 years of age.
Tunisia and Egypt; these are two prime examples where social media helped spread the word and generate a critical mass that lead to drastic changes in those countries.

Another group of people using social media as a weapon to gather support for their cause is Greenpeace. Through Facebook and YouTube channels they have forced Burger King and Nestle to look for more sustainable sources of palm kernel. They also put a big dent in Fonterra’s online brand who effectively committed “Facebook Suicide” by totally mismanaging the response to the online pressure.
One of their most effective tools was a YouTube video showing how a jogger is choking on orang-utan hair while drinking a glass of Fronterra milk. That video was so effective, that they were forced to pull it from their YouTube Channel due to legal actions from Fonterra.

YouTube has become not only the most favourite source of daytime entertainment but has proven itself a powerful viral communication tool to spread the word. Wikileaks first published the video of American soldiers massacring Iraqi civilians on YouTube before it was removed due to pressure from the US government. And posting YouTube videos is becoming easier as the day progresses. Google predicts that there will be more smartphones in the world than computers by 2016. Making a video and uploading it to your YouTube channel is just a click away.

I’m not saying that we all need to start toppling governments or chain us to trees. But we all can change the world if we want to. The tools are there for us, we only need to use them. The next time you see a person being beat up on the street, take out your phone and make a video. Upload it to youtube before you turn the corner (and run) . You find out about a teacher abusing children? Tell your friends on Facebook about it! You’d be astonished at how many people will start to listen if you start to talk. Also mention the good things in life! Someone helped you on the street when looking for directions, why not say thank you via Twitter?

The world is listening. All you need to do is start talking and changing the world around you one tweet at a time.

Tuesday, February 8, 2011

Enabling RBS on additional Databases

You'd think it to be really easy to find good information on enabling RBS for additional content databases out there. But if you landed on this blog post, then you were proven wrong, like so many others.
Actually it is not that hard.
Once you have followed all the instructions to set up RBS for the first time:
http://technet.microsoft.com/en-us/library/ee663474.aspx (SharePoint Foundation 2010)
http://technet.microsoft.com/en-us/library/ee748631.aspx (SharePoint Server 2010)
You then need to follow these steps for each additional ContentDB:
http://technet.microsoft.com/en-us/library/ee748641.aspx (Universal)

The important part in the last link is the different msi script. As you use different ADDLOCAL parameters.
Also keep in mind that if you are relying on the FILESTREAM Provider in SQL 2008 R2 you need not install RBS on the SQL Server itself, as it is supported by default. If you plan on using RBS using a third party Provider, then you will need to run the msi on the SQL Server too:
http://technet.microsoft.com/en-us/library/ff629463.aspx (SharePoint Server 2010 without FILESTREAM)

Happy Remote Blobbing!

Tuesday, February 1, 2011

Keeping Dead Wood out of SharePoint. Or, how to avoid Zombies.

In his article, What NOT to migrate into SharePoint Joel identifies the usual suspects of types of files which are not suited to be stored in SharePoint or any DMS system for that matter.

While Joel covers the what quite exquisitely, he does not cover the why from an IA point of view. I have seen companies throw hundred thousands of dollars at setting up SharePoint farms to store ALL their documents. Including massive investments in infrastructure and likewise projects required to design a stable and usable system with minimal change impact to the end users. But what they all forget to ask is the big WHY? Why migrate the content? Where is the business value? The standard answers you will get most of the time will go along the lines of “because with SharePoint we can manage the files better” “We then have versioning” “One central platform instead of disparate locations”. And that is when the headache begins. Dead documents are brought to life in SharePoint only for the sake of having one single source of truth. These zombie documents devour resources and money the instant they are resurrected and cause major maintenance headaches for all involved.

When the team of BAs and IAs are classifying all the documents they often skip the most important classification. Is this document still active or is it at the end of its life? Will there be any form of collaboration going on or will it only be used as reference material. If you can make that distinction you will easily be able to identify exactly which files need to move into a managed environment and which can stay in an unmanaged location. Many projects shy away from this question simply because it can be a daunting task. There might be millions of documents that need to be classified into active and non active. Also there is the problem of having separate locations for associated documents. This is where third party providers can come in extremely handy. While some offer Web Parts which will display existing file shares in SharePoint in a more integrated manner, they will lack the full functionality support of a SharePoint document library. So if you do not need versioning or SharePoint driven security, then have a look for Network Share Web Parts on http://www.sharepointreviews.com/ There are some web parts listed there.

If you on the other hand want to have versioning, SharePoint driven security, Check-in and out, then more complex solutions will be needed. Such as the File Share Library by bamboo solutions which synchronises a fileshare with a document library. The only downside is that files will start clogging up the database once they move from stale to active use. This way at least the databases will grow gradually over time as more and more documents are activated. The final solution I want to suggest is using the FileShare connector from AvePoint. They have designed a solution based on their popular EBS driven Storage Extender which keeps the file share separate from the database even once files are actively used and versioned in SharePoint. The magic lies in a hidden folder on the fileshare which is used to maintain the new versions of the files, as they progress through the lifecycle.

But beware! Only because the DBA need not worry about 5TB big content databases no more means nobody should. A well planned major and minor versioning strategy and user education is key in keeping the network storage from blowing out of proportions. So do yourself a favour and have a look at some tools on the market before needlessly resurrecting dead documents into SharePoint.