The new flood of stuff coming out of Windows Live are really nice

I do have FriendFeed, but I think too little people know about FriendFeed ( - but it's a very techy solution.  I think Windows Live's offerings will reach more people quicker.


It's already hooked to to my blog, MSN messenger

I've got 2 web activities enabled:


still waiting for a few more web activities to become enabled:


Theoretically I can just use the RSS feed from these, but I want to see what additional features I get for 'integration'.

Also, when people comment on my windows live feed, I'd like to see it in MSN messenger.

Anyway, waiting :)

SharePoint - ContentQueryWebPart, CommonViewFields and Multi-value choices

When you add a choice or lookup to the CommonViewField for a ContentQueryWebPart, if you had ticked the allow multiple-values checkbox, the CQWP will return you nothing.

Couple of people blogged about this:

Adri Verlaan [MSFT] even says:

Unfortunatly the data source that the CQWP uses does not support Mutli-Valued Lookups or Multi-Choice columns.


Turns out after a bit more digging around, you _can_ use multi-value choices.  To get multi-value choices to work, you need to use a different type:

Instead of Choice, use MultiChoice

<property name="CommonViewFields" type="string">MyDescription,PublishingHtml;MyTags,MultiChoice</property>

I have not had much luck with Multi-lookup and I suspect there might be some truth in what Adri was referring to.  If I consider how SharePoint might have to work with a field that contains multiple keys to a different lookup list, this problem becomes far more complex.

Anyway, at least it works for choice.

Have fun!


Windows Live configuration sync

I had this idea that popped up when I was listening to the current .NET Rocks - The Future of Web Development Panel.  I was listening to the panel lamenting about having to manually configure their development environment per machine that they use and thought, geez surely this can be solved perfectly with Windows Live.

Sure enough, within minutes of this idea popping in my head, one of the guys on the panel stated this, and got overwhelming applause.

That is one great idea.

So, you have Windows Live Mesh right now.  You can sync files, links and photos online.  How hard would it be to synchronize Visual Studio settings, office settings / templates, browser settings, etc etc

Taking the idea further, there is a set of tools you always use for your machine - wouldn't it be nice if you can re-use a license key (if it allows) across all your machines and share them via a Live Mesh account.

Or even when you build a new machine, a Life Mesh application automatically asks you if you want to re-install all your favourite tools that you had on your previous machine - tells you if it has a newer version (say for windows 7), and / or any driver requirements.

When you say "yes please", it will install these for you at a convenient time - AND copy your configuration settings so it'll behave JUST THE WAY you had it set up before!

Throw in some integration with Microsoft Online Store...

I can't stop drooling.  If someone don't build this app soon I will!

It is so great to live in a Software + Service world!  These are great times!

I twit now (oh and I still blog)

I'm sorry I'm probably very very late to the bandwagon, but there's a few reasons for this:

  1. Just ain't very keen to login to Facebook all the time to just update a status
  2. I know twitter had been the thing...  I'm trying to redeem myself
  3. Was at powertodevelopers event, when everyone was whipping out their iPhone / windows mobile to twit, I didn't have an account so it was a bit embarrassing
  4. Unless you twit you won't know what it's all about...

Anyway, follow johnnliu (double-n)

SharePoint: Error when adding a new page based on a customized (broken) page layout


No parameterless constructor defined for this object. at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)  


Some interesting bits in the stack trace:

... at System.Activator.CreateInstance(Type type)

... at Microsoft.SharePoint.WebPartPages.SPWebPartSerializer.get_DefaultControl()

... at Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager.AddWebPart(WebPart webPart, String zoneId, Int32 zoneIndex)

snipped remaining massive stack trace.

What had happened was that we had a stuffed up Page Layout with a web part zone that contained invalid HTML.

I had detected this and deleted the entire web part zone, but SharePoint must have it in the database, so each time I re-open the PageLayout it was resurrecting all the broken code.

The fix wasn't at all glamorous:

  1. Check out the page layout
  2. Fix it enough in the code view so that the designer will load the designer view
  3. Delete the webparts in the designer view
  4. Switch back to the code view - there's now a few remaining bits of broken HTML left around the web part zone - fix those.
  5. Save everything
  6. Close file, re-open it
  7. Check the file is now clean HTML

We can now use the page layout to create new pages again.