Saturday, November 01, 2008

PDC 2008

I've thoroughly enjoyed my time at the PDC this year, the biggest announcement was obviously the cloud services with the Windows Azure platform.  But the greatest thing is the chance to network with other developers and Microsoft product team members.

This was my first PDC experience and I had high expectations, I think the conference overall was organised pretty well. But I have to say was disappointed that we don't get a nice show bag, was expecting some kind of nice backpack or laptop bag given the price of the conference ticket, but instead only got a plastic show bag

It would also be nice if the "Ask the experts" session was slightly better organised.

Thursday, August 07, 2008

WCF WSDL and ASMX SOAP Extensions

Interesting observation today, if you have an invalid ASMX soap extension registered in your web.config file.  WCF will not render wsdl from its metadata endpoint.  I didn't think the two was related, but there must be some connections between them.

Sunday, July 27, 2008

MOSS and antivirus scanning exclusion

If you're running an OS level antivirus scan on your MOSS production servers, you might run into decreased performance and random lock ups.  Check out and add in the necessary exclusions to your virus scan to stop your scanner from competing with Sharepoint.

Saturday, July 26, 2008

Office 2007 on Vista authentication prompts with Sharepoint docments

Under Windows Vista, sometimes when you open an Office document stored on a WSS or MOSS site, Vista keeps prompting you for user credentials and integrated security just doesn't seems to work.  This can be caused by a number of different configuration issues in your environment and sometimes you need to have all the stars aligned for it to work.

  • First thing to check is make sure your Sharepoint site is working with integrated security to start with, that is you have configured either NTLM or Kerberos correctly.  So when you navigate to your Sharepoint site in Internet Explorer with your desired url, it should not prompt you for username or password.

    If you are having trouble here, check these items.
    • Make sure the url you're using is in the Intranet zone and not the Internet zone.  By default on Vista, only Intranet zone does integrated security.
    • Check that you are using NTLM on your WFE server.
    • If you are using Kerberos, make sure SPN are configured correctly.  Check out this post from Martin Kearn on kerberos and Sharepoint.
  • Now make sure Vista is running SP1, if not, install the hotfix on your clients.
  • Add AuthForwardServerList to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters in the registry.  The value in this key should be the URLs of your sharepoint stie.  Restart the WebClient or for the changes to take effect.  I've used the new group policy preference to deploy this key.

With everything configured correctly, there shouldn't be any more annoying authentication prompts from Vista when you open an Office 2007 document.

Friday, May 16, 2008

Why are data charges so high?

I think it is crazy that you could be charged $1 per MB of data over wireless.  In Australia, if you're not careful in choosing your provider, you could be in for a very nasty surprise.  I feel sorry for SMB owners who are not that technical and sign up for these outrageous prices.


Saturday, May 10, 2008

OBA Composition Reference Toolkit v2

If you develop applications on the Office platform, check out the OBA Composition Reference Toolkit.  It contains some very cool demo and useful reference guides to give you a great starting point to create very powerful composition applications around office applications.

Saturday, March 29, 2008

Patching the DSDT table for 8510p to reduce fan noise

Following the previous post, here are the steps that worked on my Vista SP1 x64 notebook.  Please note this is for reference only, this could damage your machine.

  1. Download the Microsoft ASL Compiler v3.0.1 and install it on your notebook.
  2. Start a command prompt using "Run as administrator" to make sure you have the correction permissions.
  3. Create a working directory, I used C:\DsdtPatch.
  4. Copy asl.exe from C:\Program Files (x86)\Microsoft ASL Compiler v3.0 to your working directory.
  5. Extract your current AML data from your registry.  It is located at HKEY_LOCAL_MACHINE\HARDWARE\ACPI\DSDT\HP____\8510x\00010000.  You need to extract the binary data in the key 00000000 to the file system.  I've written a quick and dirty .Net program to do that.
    1. Unzip ExtractDsdt.exe into your working directory.
    2. run ExtractDsdt, a file 8510x.orig will be created.  Make a backup of this file.
  6. copy 8510x.orig 8510x.aml
  7. asl /u 8510x.aml, the file 8510x.asl will be created.
  8. Open 8510x.asl in notebook.  Now we begin our patching.
  9. Search for the following (note the pattern could be different for your machine).

    For my F.0F BIOS the original values are

    Name(C357, Package(0x6)

    I found it easiest to search for "Package(0x6)" from notepad, that should take you to the right section, check that there are 6 hex values within the braces and within the _TZ_ scope.

    Each value should represents the % fan speed at each temperature trip point in hex.  I changed mine to.

    Name(C357, Package(0x6)

    Save your file after your changes.
  10. Now we can compile our updated 8510x.asl back to 8510x.aml.  Execute asl 8510x.asl, I ignored the warnings, but if you get errors, go back and check your syntax.  If you get "error: expecting Symbol '('" the number in the brackets is the line number, go to that line in 8510x.asl and add a pair of bracket () to the end of the previous line, I had to repeat this a few times before it will compile.

    For example, change

    If(LEqual(Arg0, 0x0))


    If(LEqual(Arg0, 0x0))

  11. When you've compiled successfully, the file 8510x.aml will be updated.  Check the timestamp.

    Load this file to your system asl /loadtable 8510x.aml.
  12. Now reboot, if everything works, your notebook fan should be slower after a few minutes after things settled down after reboot.  WARNING: if it doesn't work and you get a blue screen during reboot.  Press F8 and choose the "use last known good" option.

Hope this works for you if you're like me and was annoyed by the fan noise.

HP 8510p fan noise

For work I've got a HP 8510 p notebook and the fan noise it makes on idle is unbearable.  It was annoying enough I was on a quest to find a solution.  After many hours on the Internet I found the following siteür-hp-8510p/ which talks about overriding the ACPI DSDT table.

After reading up a bit on the topic and learnt more than I ever wanted to about ACPI, I've managed to change the fan speed on my HP 8510 notebook.  Now Vista SP1 x64 runs like my other notebook, quiet!  Will have to see will it over heat or have any side effects.

I have no idea why HP releases notebook that are so noisy out of the factory.  Their engineering department should be reeducated that noise should be minimal on the desktop in the office.

Thursday, March 27, 2008

Remote Server Administration Tools (RSAT) Released

With the release of the RSAT for Windows Vista SP1, I can finally manage my Windows Servers in Vista directly without hacking the AdminPack to make it go on Vista.

Both 32-bit and 64-bit version are available.

After install, go to control panel, add remove windows components, and check the admin tools to enable it.

Sunday, March 16, 2008

Nokia NSeries PC Suite 2.0 install failed caused by long path

I couldn't install the new Nokia NSeries 2.0 PC Suite on my Vista machine.  After a bit of investigation, it turns out that the installer doesn't work if you system path variable is too long.  It doesn't handle the case when the system tells the installer the supplied buffer to store the returned path string isn't big enough.

To work around, shorten my system path variable, and restore to my normal path after install.

Tuesday, March 11, 2008

OCS 2007 and Asterisk integration

Spent some time over the last few days trying to put together an OCS 2007 lab environment with Asterisk integrations and it wasn't exactly smooth sailing.  I have it mostly working now, but there are still some issues with RTP which I hope to resolve when I have some spare time in the coming weeks.

For my setup I deployed OCS 2007 in 2 VMs, one for OCS itself and another for the mediation server.  I used asterisk 1.6-beta5 as it supports TCP SIP and it seems to be working ok.  I can dial out through Asterisk using my home ITSP (PennyTel) through both Communicator 2007 and my Linksys SPA942 IP phone.  I can also receive calls from my mobile to both Communicator and SPA942.

I found a bug in Asterisk 1.6-beta5 where it was not handling the SIP Invite from OCS mediation server properly.  It was causing RTP packets not to be sent from Asterisk to OCS at the start of a call and I traced it back to Asterisk not parsing the "Content-Type" properly.  OCS sends extra data in the "Content-Type" field ";encoding=utf8" which Asterisk was not parsing.  That was an easy fix, one good thing with Open Source software when you actually have time to debug and fix it yourself.

So things seems to be working *mostly* but I still sometime misses out on voice at the beginning of some calls.  I suspect there are still bugs in Asterisk, will post back here for reference if I have to to investigate further.

Rant about poor Optus service

I just cannot believe the poor Optus is providing in Australia.  I spent the last two days trying to organise 2 new phone numbers to be added on our existing account and after two days of talking to sale consultants, solution consultants and other call center staffs, I still cannot talk to someone that can take my order to setup 2 new phone numbers for our office.  I thought in would be easy, how wrong was I.

It seems to me that in Australia, customer service for the small guys is really poor.  You're not spending enough to be provided with a proper account manager, and you wanted service a little bit more complex than the standard SOHO offerings, then no one seems to be able to help you.

Wednesday, February 20, 2008

Truncate SQL log on development machines

By default the recovery model in SQL Server is full, so if you have a development server that doesn't have scheduled backup, the database log file can potentially grow out of control.  You can either set the recovery model to "simple", and then truncate the file.  Or keep the recovery model as full and force truncation.  Obviously shouldn't do this blindly in production unless you understand the implications.  This gets asked frequent enough, but not enough to remember the syntax, so this post is here as a memory jogger.

USE dbname


DBCC SHRINKFILE (logical_log_filename, 10)

Sunday, February 17, 2008

Sharepoint VSeWSS 1.1

If you are doing WSS or MOSS development, do check out the VSeWSS 1.1 release.  It provides some help to develop .WSP package right inside visual studio.  The new 1.1 release allows you to have more control over the WSP solution creation.

If you have been only using Sharepoint designer for customising WSS or MOSS or have your own scripts to generate and maintain sharepoint features, give VSeWSS 1.1 a go.  See the sharepoint team blog entry at

Tuesday, January 22, 2008

Import Spreadsheet with Sharepoint error

A customer ran into a problem where he is getting "Method 'Post' of object 'IOWSPostData' failed" when trying to create a sharepoint list via importing a SpreadSheet using Excel.  There are plenty of posts on the Internet about this and the fix is to update EXPTOOWS.XLA to force a different version number.

The original macro code uses a new method in the Excel 2007 object model Application.SharePointVersion(URL).  That method is returning 0 in the customer's environment causing spreadsheet import not to work.

As it turns out, Application.SharePointVersion checks the root site for a Sharepoint site to determine the version.  Because for this particular environment setup, I do not have a valid Sharepoint site at the root, it does not return the correct version number.

The solution was to create a dummy blank sharepoint site at the root of a web site and now users can import spreadsheets and create list using spreadsheets for all sites (root and sub site).

Thursday, January 03, 2008

Reuse BizTalk WCF service publishing wizard settings

In BizTalk 2006 R2, there is a new WCF Service Publishing Wizard. It becomes quite painful if you want to update the published service to run the wizard over and over again. The settings from the wizard are saved in the output App_Data\Temp folder with a name of WcfServiceDescription.xml. You can reuse some of the settings if you launch the wizard from the command line and pass in the configuraiton file as a parameter.

BtsWcfServicePublishingWizard -WcfServiceDescription=C:\Inetpub\wwwroot\BizTalkWcfService\App_Data\Temp\WcfServiceDescription.xml

Saved me some time during development, however, it doesn't seem to remember the namespace specified.