Apple Keyboard Layout for Virtual Machines

One of the freakiest things about running on an excellent MacBook Pro is the keyboard layout. Keys in the wrong place and a few missing ones like #, PrtScr and AltGr. Once you get used to it it's all good however. There's combinations and so forth to get at things you need. The trouble is just as you've gotten used to it, you fire up those development virtual machines and they don't know squat about the Apple keyboard. This is because the custom Input mapping installed as part of the Boot Camp package isn't installed on the VM. Arse!

Many people think that installing the Apple Keyboard Driver might fix this issue, it doesn't - that driver is for a USB or Bluetooth external Apple Keyboard, which a VM won't know about (even in VMWare). The bits needed are actually in the Boot Camp MSI, and it's reasonably straightforward to figure out how to extract just the bits needed and hack up an installer, but that's way more work than needed. Plus, you don't want to install that crap on your VM, all you need is an alternate keyboard layout.

There's a much easier way, using the Microsoft Keyboard Layout Creator.

In a nutshell, you install the MSKLC on your host and then open up the Apple Keyboard which is already on your host. Then you can create an installer for it from MSKLC. Copy that guy to your VM and run it. You then have a Apple layout available:

image

Now your keys are in the same place regardless of whether you are working in a VM or on your Host. Kickin'.

I've created an installer for my VMs, which you can download here. Of course, mine is a UK layout. To create your own layout for your preferred language simply follow the instructions above.

Installing applications on Windows Server 2008 or Vista x64

You know the score - you've a couple of indispensable applications which refuse to install on your operating system of choice because the idjut vendor decided it would be a good idea to bake into the installer some sort of version check. This is usually when you're trying to use a 64 bit operating system or wish to install something on a server OS. I have a couple examples - Sony's Ereader is a must have for me, but the installer doesn't like 64 bit. Others include Live Messenger and LifeCam which refuse to install on Windows Server.

It turns out that if the installer is an MSI you are in luck - the Microsoft Platform SDK includes a program called Orca which allows you to edit the MSI to remove the offending entries, usually in the Launch Condition table which look something like this:

image

SUGUK Edinburgh: Slide Deck

Thanks to all who attended the Edinburgh SUGUK meeting last week for a great event. A big shout out to Steven Hynds and crew for facilitating the venue. The slide deck for my talk can be found here. Hope to see you again soon (probably towards the back of August) for more SUGUK events north of the border!

Reminder: SUGUK Edinburgh Meeting on Thursday

Just a quick reminder, if you are planning on attending the SUGUK Meeting at the Parliament building in Edinburgh this Thursday, please sign up over at the SUGUK Forms.

Enabling Bluetooth on MacBook Pro and Windows Server 2008 x64

As you may have noticed, I've been getting a bit carried away with my shiny MacBook Pro of late. I have this bad boy set up to triple boot Mac OS, Vista x64 and Windows Server 2008 x64. The idea here is to have a small Win2k8 partition running MOSS for demos/presentations (and the odd bit of coding) running on the metal rather than in a VM. The latest Boot Camp drivers enable this goodness, they all work flawlessly. All that is, apart from the Bluetooth stack.

This is a problem because I use the excellent Microsoft Wireless Notebook Presenter mouse. This little guy is a regular mouse but has media/slide controls on the underside. Very handy. It comes with a transceiver but I don't wanna use that rubbish, I don't like dongles that are unnecessary.

So why doesn't it work? Well it's all down to driver signing on x64 and also the generic Bluetooth stack INF files preventing installation on Server class machines. Bit of a PITA. After installing the Boot Camp drivers Device Manager shows the first issue:

bt1

The good news is I've done the hard work after a couple hours of sillyness and mostly thanks to Gil Kirkpatrick, a Directory Services MVP. You need my ZIP file of modified drivers for the generic Bluetooth stack. Use this entirely at your own risk! You backup, right?

To get things working we need to hack about a bit...

  1. In Device Manager, right click Bluetooth USB Host Controller and choose Update Driver Software...
  2. Click Browse my computer for driver software.
    bt2
  3. Click Let me pick from a list of device drivers on my computer.
    bt3
  4. Click Bluetooth Radios and Next.
    bt4
  5. Select Apple Inc and Apple Built-in Bluetooth and then Next.
    bt5 
    (See, Boot Camp did install them, it just couldn't make them function, because of...)
  6. On the Update Driver Warning, click Yes.
    bt6
  7. After a short while the driver will be installed, click Close.
    bt7
  8. You will see some annoying dialogs (three of them) - cancel them.
    bt8
  9. You will now see that Apple Built-in Bluetooth shows up under Bluetooth Radios, but we have three new Unknown Devices in Device Manager. At this point the Bluetooth icon will also show up in the notification area.
    bt9

    This is where our modified driver INFs are needed. Extract the ZIP file someplace, e.g. c:\bt before continuing.
  10. Right click the first Unknown Device and choose Update Driver Software.
  11. Click Browse my computer for driver software.
  12. Enter the path to the extracted ZIP and click Next.
  13. Windows will moan about driver signing - click Install this driver software anyway.bt10
  14. After a short while the driver will be installed, click Close.
  15. Repeat 10 thru 14 for the other two unknown devices.

Once complete we will see the MS Bluetooth Enumerator show up in Bluetooth Radios and a couple more Bluetooth devices in Network Adaptors:

bt11

Unfortunately we are not quite done.... Don't close Device Manager yet.

This is the stage to install the MS Intellipoint software. We could have done this before - it doesn't really matter. When it prompts you to insert the transceiver, click Cancel.

Now we need to pair the mouse using the Bluetooth control panel. Our mouse won't yet work, but we will get another device show up in Device Manager.

bt12

Follow steps 10 thru 14 above and the Bluetooth HID Device will be installed.

Waggle your Wireless Notebook Presenter - all is good.Click the presentation mode button - all is good :)

At this point you can delete the folder containing the modified drivers etc.

Web Content Management Resource Center for Microsoft Office SharePoint Server 2007

Check it:

This page provides resources for IT pros to help you plan and implement a Web Content Management (WCM) solution using Microsoft Office SharePoint Server 2007.

Web Content Management Resource Center for Microsoft Office SharePoint Server 2007

Even easier way to obtain MSFT hotfixes

For a while now Microsoft have been offering online hotfix requests which minimise the need to call CSS and raise an incident to get your hands on a hotfix. However the link to the request form was hidden in the "hotfix information" section of the KB and often missed by customers.

Today support.microsoft.com have improved things significantly with the following graphic at the very top of each KB article for which a download is available:

image

This takes you to an improved hotfix request form allowing you to select language, OS etc and then send a request. It's also worth noting that the response time for this new implementation is significantly quicker than the previous mechanism.

Even, better the link above is a nice simple URL, no hidden form fields or dodgy session state. So we can easily turn this is into a very useful thing, an IE search provider:

1. Click the down arrow to the right of the search button.

2. Click Find more providers...

3. On the page that appears, in the Create Your Own box on the right hand side, enter the following URL in step 3:
http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=TEST

4. Give the Search Provider a name, such as KB Request and click Install.

You now have a search provider into which you can enter a KB number and click search to be taken to the hotfix request form.

Leveraging the platform - Caching in SharePoint WCM scenarios

Late Friday afternoon/evening I had an interesting call with a customer who was experiencing severe perceived poor performance on their SharePoint 2007 WCM application. The problem was resolved simply by implementing OOTB functionality - namely Caching, in particular the disk-based caching, and they agreed it was appropriate to post here.

Basically the site is a regular Publishing site albeit used for the most part internally. The site does feature however a significant amount of "binary content" which is linked to from the pages. It had been running fine for quite a while, but not in volume. They hadn't planned for or configured the caching elements available in Site Collection Settings or the Blob cache element in web.config. Luckily the boxes had new disks ready to go, and once configured and then tweaked a bit, everything was hunky dory.

So no big thing, but it does demonstrate that it is very easy to overlook simple capabilities in a complex product. I urge you as always to consider the entire solution space. Check out more information on the caching capabilities in MOSS from Kai Lee.

SharePoint 2007 Post SP1 Fixes

This is a list of the post Service Pack 1 hotfix packages for SharePoint 2007, primarily for my own reference. This is not a list of fixes, but rather the update packages.

[[UPDATE]] Updated and moved to: www.harbar.net/articles/postsp1.aspx.

Office SharePoint Server for Internet Sites Licensing

Consistently and by a considerable margin, the most popular search terms that lead people to this site are around MOSS Licensing and the For Internet Sites (MOSS FIS) edition. This is also a hot topic in customer engagements, in classrroms, at conferences such as TechEd and in general conversations about using SharePoint 2007 for Internet sites. This is not all that surprising given the amount of misinformation out there. In addition Microsoft obfuscate the topic with many layers of misdirection. I know for a fact that this isn't deliberate on the part of the vendor, but one could be forgiven for assuming it is! :) Whilst Microsoft have made massive improvements to their public information on licensing it still requires experience of their models to figure out what you need. It's not really the MOSS FIS which is complicated, but all the other things you need.

Unfortunately, I have a significant amount of experience with dealing with licensing scenarios (for whatever reason this stuff seems to follow me around like a bad hangover) and I've received numerous requests to post more information here. Therefore this post is the first in a mini-series which attempts to distill the licensing of MOSS in a clear, concise and accurate manner.

One of the reasons people are upset by the licensing model is it tends to be the case that folk find out what they need to purchase *after* they've made the decision to deploy. As a enterprise solutions architect I'm often asked to "architect" a solution based on an already determined number of servers etc. Now neither is prudent by anybody's calculator skills, but it is how it goes down more often than not.

The good news is that it's not actually that complicated and the pricing is extremely competitive. I hope this post proves both and I welcome any and all feedback positive or negative. My goal is to spread the word and help folk who are facing the MOSS FIS licensing conundrum. Before I get started I have to include one of those lame disclaimers again (sorry about that):

All of the information presented here is based upon publicly available information provided by Microsoft and current (as of the date of the post) list pricing in US Dollars. You should not use this post to determine a purchase decision, and you should obtain assistance from your Microsoft Account Team, a Microsoft Licensing Specialist and/or your software reseller. There are many factors which can influence the cost. These include your volume license agreement, your location and promotions. I hope you already know that only crazy people buy at retail pricing, and your reseller may also offer incentives. This post is for informational purposes only to aid in the planning of your MOSS investment.

OK, so with that cobblers out of the way, what do we need for MOSS FIS? Let's first look at the machines needed for hosting the public facing Web Site which is used by anonymous read only visitors, plus those whom may register to be sent regular email, participate in a community or book airline tickets. These machines will not be used for content contribution, a.k.a. content authoring and approval. These boxes are purely for servicing Internet users.

As this site may be the primary if not only web property of your company, it needs to be available and therefore the scenario I present is what many consider to be the bare minimum topology for an available SharePoint deployment. This topology consists of two "web front end" (WFE)servers, an Index server and two machines running SQL Server.

Given this topology, here are the licensing requirements:

  1. Every server requires Windows 2003 Standard Edition or greater.
    You don't need Enterprise unless your machines have 8 processors. Included are 5 user or device CALs which will be sufficient.
  2. All three MOSS servers require MOSS for Internet Sites.
    Whilst you are able to mix editions within a farm, for this scenario it doesn't make sense for the Index server to use the Enterprise License + CALs as it's data is being accessed by the external users (via the WFEs).
  3. Your SQL Servers require SQL Server 2005 Standard Edition per Processor.
    We don't need SQL Enterprise unless we are doing advanced management. Per Processor licensing is the only option here as we don't know the number of users. From a licensing perspective, it doesn't matter if we're using clustering or mirroring or something else for resilience here. However if you are running an active-passive cluster you only need the licenses for the processors on your active node. If you are doing clustering you require Enterprise Edition of Windows Server. Thanks to Tadas Aukstakalnis.
  4. Every box requires the Windows External Connector.
    Yes, every box needs it. Whilst you may think neither SQL or the Index Server are on the Internet, they still need the external connector as their data is accessed over the Internet.

Given the above requirements, here is a worked example for this scenario:

 

US Retail List Pricing (23rd May 2008)

     
 

qty

unit cost

total

       

MOSS (2xWFE, 1xIndex)

     

MOSS 2007 FIS

3

$40,943.00

$122,829.00

Windows External Connector

3

$1,999.00

$5,997.00

Windows 2003 R2 Standard

3

$999.00

$2,997.00

       

SQL (2 node cluster, 2x CPU each)

     

SQL Server 2005 Standard CPU*

4

$5,999.00

$23,996.00

Windows External Connector

2

$1,999.00

$3,998.00

Windows 2003 R2 Standard

2

$999.00

$1,998.00

       

Total:

$161,815.00

* If you are running an Active-Passive cluster you only need to purchase the processor licenses for your Active Node (in this case 2, saving $11,989) - I had forgot about this - thanks to an anonymous commentor for pointing this out.

To do clustering you require Windows Server Enterprise Edition on the two boxes which adds $6,000. Thanks to Tadas Aukstakalnis.

The above pricing is for x86 editions. If you go x64 and wish to use more than 4Gb RAM on your servers you need Windows Server Enterprise on each Windows Server at $3,000 extra each. Thanks to Tadas Aukstakalnis.

So there you go. Pretty simple, right? Also, note the bottom line price - go ahead and compare that to the pricing for competitive products and bear in mind when doing so that none of those have the same platform capability nor extensibility to other aspects such as BDC, Excel Services and so on. That's pretty darn competitive. Of course it's still ~162k (~81k in real money :))

Don't forget that MOSS FIS includes all the features - i.e. Enterprise features. Therefore the bang for buck is extremely impressive.

One thing to also consider however is the additional cost of a couple of domain controllers (~US$2,000) and/or any other machines you may need in the environment for management purposes, security or anti-virus.

I hope this post is useful. I will be covering additional scenarios shortly, next up will be the authoring farm used to contribute content for the above. As always if you have feedback or requests, please post them here.

New version of Application Pool Manager

Finally managed to finish up a new version of the Application Pool Recycle Utility for SharePoint Developers! This release features many enhancements and a couple new features based on feedback.

apm11

You can download the new release and view more information here.

[Update 26/05/2008] Please note this is the last major release of the original codebase. Whilst minor fixes will continue to be made, future major releases will target Windows Server 2008 only.