XMind VS Java

After installing an update to Java this morning XMind wouldn’t start and gave me the following message:

“A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run XMind. No Java virtual machine was found after searching the following locations…”

First thing is to check your version of Java by hitting WINDOWS KEY + W (Windows 8) or WINDOWS KEY (Windows 7) and typing “Java”:

Turns out that Java updated to version 7 which changed the folder path from “jre6” to “jre7” which means that XMind can no longer find the Java RTE.

Luckily the path to Java is stored in the xmind.ini file that lives in the XMind installation folder and updating the file as follows fixes the problem.

Happy mind mapping!

SharePoint Admin Page Shortcuts

Just a quick post with some handy SharePoint admin page shortcuts:



Create site


List templates


Master page




New site content type


Page layouts and site templates


Recycle bin


Reset to site definition


Searchable columns


Site collection recycle bin


Site columns


Site content types


Site settings


Site templates


Site themes


Site usage report


Title, description and icon


Tree view


Web parts


Web parts maintenance


Welcome page




My Windows Phone 8 Apps

I’ve noticed a number of new Windows Phone 8 devices around the office this January I’ve decided to share some of the apps that I’ve found useful.


If you’re into podcasts you’re going to find that, just like with Windows Phone 7, Microsoft have decided to exclude podcasts from the UK store even through the phones have really good podcast support. To overcome this completely artificial limitation there are a number of apps of which I’ve found Podcatcher to be superior.

News Feeds

I’ve been using Google Reader for years as my personalised and admittedly pretty geeky daily newspaper. The excellent Nextgen Reader makes catching up on what’s going on a breeze and is also available as a Windows 8 store application.


If you use public transport having status information before you descend underground can make all the difference between having some free time in the evening (maybe to play some Skyrim…) or being stuck in a human sardine can for an hour or two. I use London Travel and London Bus to provide me with this travel spidy-sense and to get me where I need to go.


If you do find yourself stuck on a train en route home though why not try something different for dinner using the Allrecipies app?

TV and Movies

When the weekend is not great for being outdoors (not a problem in the UK right?) check what’s on using the TV Guide app and then when you realise there’s nothing on why not decide on a movie showing at your local theatre using Flixster.

Holiday / Travel

For moving around the globe I’ve found the following really useful…

For finding the best flights I use Skyscanner.

To keep track of my upcoming flights I use Flight Status.

Seeing what the weather will be like where I’m headed is easy with the free Weather app from Microsoft.

Good old Trip Advisor is key for finding the best place to stay in a new town.

When you get there you can find good restaurants and things to do using the built in Local Scout.


Seeing as we have to pay for our holidays and our Windows phones somehow we need to connect to work. First things first you can connect to your company email by setting up your account. Next download the SkyDrive app to get to your cloud files and Lync 2010 for instant messaging. Finally check out the native Office Hub to work with Word, Excel, and PowerPoint files stored in SharePoint or the cloud.


This is where Windows Phone has always shined… the built in social integration combined with Skype and WhatsApp is probably all you need but if you prefer there are great standalone Facebook and Twitter apps too.

So I hope you guys find some of those as useful as I have and if you want to get better at using your Windows Phone check out the Windows Phone 8 How-to

Page Layout Shenanigans

I’ve been working on a full trust SharePoint 2010 solution that uses a module to deploy some page layouts to the master page gallery and ran into an interesting scenario…

Setting the scene

I have a feature (version 1) that deploys two page layouts.

Activating the feature deployed the page layouts to the master page gallery as expected:

  • Layout1.aspx (deployed by the feature)
  • Layout2.aspx (deployed by the feature)

Then I manually uploaded an additional page layout to the master page gallery:

  • Layout1.aspx (deployed by the feature)
  • Layout2.aspx (deployed by the feature)
  • Layout3.aspx (uploaded manually)

The problem

Later I updated my feature code (version 2) to deploy an additional two page layouts called Layout3.aspx and Layout4.aspx.

The feature upgrade completed successfully and now the master page gallery contains all four page layouts as specified in version 2 of the feature:

  • Layout1.aspx (deployed by the feature)
  • Layout2.aspx (deployed by the feature)
  • Layout3.aspx (uploaded manually)
  • Layout4.aspx (deployed by the feature)

At this point the problem is that Layout3.aspx still uses the page layout that was manually uploaded (stored in the content database) and not the page layout deployed by the feature (store in the SharePoint root).

Un-ghost in the machine

My initial thought was that in order to point the list item at the page layout deployed by the feature to the SharePoint root we can un-customize the page.

Page layouts can be un-customized via the UI by going to the reset to site definition page (site actions > site settings > site actions > reset to site definition) or using code and calling the SPFile.RevertContentStream method.

Attempting to reset (un-customize) Layout3.aspx presents the following error however:

Cannot revert to the site definition version of this file. It is a custom file and is not part of the site definition.

I confirmed that Layout3.aspx had been deployed to the feature folder in the SharePoint root and it is possible to reset all the other page layouts in this way.

Digging deeper

It was time to fire up SharePoint Manager 2010 and look at the actual items in the master page gallery to determine how things work under the hood…

Looking at the page layout items in the master page gallery there are two properties of interest regarding the “customization” of pages:

The CustomizedPageStatus property is used to indicate whether an item has been customised from its definition and can be set to none, customised or uncustomized.

For Layout3.aspx this property is set to “none” whereas the working page layouts it is set to “uncustomized”.

The vti_setuppath property is set to the path of the file in the SharePoint root.

For Layout3.aspx this property was NOT set indicating that the page layout has no file in the SharePoint root.

These two properties are the reason for the exception when attempting to reset the page layout.

Now we just need to set the CustomizedPageStatus and vti_setuppath properties and we’re off to the races but as it turns out they are read-only so we need to find another way.


After the long windy road of getting here I chose to use the following technique to “repair” these properties on the Layout3.aspx page layout:

I added another upgrade (version 3 for those keeping count) to my feature:

  • Added another manifest (elementsV3.xml) to the module to deploy the same page layout with a different name (e.g. “Layout3Fix.aspx”).
  • Added a custom upgrade action that uses the SPFile.MoveTo method to replace the old Layout3.aspx with the newly deployed Layout3Fix.aspx

Upgrading the feature to version 3 will now replace the manually uploaded page layout (layout3.aspx) with the page layout from the feature. This restores the two properties discussed previously to the correct values and the page layouts now point to those deployed by the feature in the SharePoint root.

Future updates to the page layouts by solution updates will now be reflected in content pages that use these page layouts.

Getting started with apps for Office and SharePoint 2013

I’m starting my journey into the new apps model for Office and SharePoint and so far the documentation at http://dev.office.com has been pretty good. It’s also become clear that I can no longer ignore www.oauth.net :-p

I would suggest starting with these great, free videos:

  • Module 1: Introduction to Office 2013 and SharePoint 2013 development
  • Module 2: Develop apps for Office 2013
  • Module 3: Create document-based apps for Office 2013
  • Module 4: Create mail apps for Outlook 2013
  • Module 5: SharePoint 2013 app model for developers
  • Module 6: SharePoint 2013 developer tools
  • Module 7: Create hosted apps in SharePoint 2013
  • Module 8: Create cloud-hosted apps for SharePoint 2013
  • Module 9: SharePoint 2013 client object model (CSOM) and REST APIs
  • Module 10: OAuth and application identity in SharePoint 2013
  • Module 11: Develop SharePoint 2013 remote event receivers
  • Module 12: Workflow changes and features in SharePoint 2013
  • Module 13: Business connectivity services changes in SharePoint 2013
  • Module 14: Search features and changes in SharePoint 2013
  • Module 15: Enterprise content management changes in SharePoint 2013
  • Module 16: Social features in SharePoint 2013
  • Module 17: Office services in SharePoint 2013
  • Module 18: Create mobile apps for SharePoint 2013
  • Module 19: Project Professional 2013 training for developers
  • Module 20: Project Server 2013 training for developers


Office 2013 preview crashing after update

If you’re running Windows 8 with Office 2013 preview and you restarted your machine recently you might notice that Word crashes when you open your existing documents.

It seems that something in the latest round of windows updates isn’t playing along. Luckily the fix is easy and only takes a few minutes and a reboot:

  1. Press the windows key
  2. Press CTRL + W
  3. Type “add”
  4. Launch Add or remove programs
  5. Highlight Microsoft Office 2013 Preview
  6. Click Change
  7. Choose Repair

 When the repair is finished and you are prompted reboot the machine and you should be back in action.

Office 2013: The file is corrupt and cannot be opened

I’ve been running my main work machine on Windows 8 and Office 2013 preview for about two weeks now.

I’ve noticed that when I open a office document from an email attachment or a download I get the following message in Office:

This message is not necessarily correct and could be caused by a “blocked” file… this is because the file came from “another computer” and you have to explicitly indicate that its okay:

  1. Right-click the file
  2. Select properties
  3. Click the Unblock button
  4. Click OK

You should now be able to open your file as you would expect now.