Book Source-code online

Dennis earlier was responsible for collating the code from us for the book, and he just informed us it is available online! Sweet! You can get the code from here and have a play. You will of course need .NET 3.0 RTM and preferably Visual Studio 2005.

It is good to see some reviews starting to come along, if you have any questions feel free to ping any of us and also let us know if you find any issues with the code – or the book if you need some help.

Don’t forget you can submit the errata here and see the Table of Contents hereSmile

Solved – Case of the "Invisible" folder in Outlook and Exchange

If you recalled my post from a few days ago where I have a folder which mysteriously became “invisible”, well there is a fix! Thanks to some of my friends at the mother ship (read Microsoft) in helping out with this – they know who they are and do not need to be named here. Smile

One thing before you continue to the steps below, ensure you are connected to Exchange and logged in to Outlook. As always you can click on the images to see them in full size.

  1. Download MfcMapi – also known as the Microsoft Exchange Server MAPI Editor. If you are like and never heard of this tool it is very impressive. I think the Exchange support guys use this and is fairly well known by then.
  2. From the ‘Session’ menu, choose Logon and ‘Display Store Table’.
  3. You will be asked to pick a profile first.
  4. Double-click the store that contains the hidden folder. In my case this store was Exchange and you can see I have the “Mailbox – Amit Bahree” store selected.

  5. Expand the ‘Root Container’ of the store, navigate to the hidden folder and select it. Please note that your visible folder hierarchy is contained in a sub-folder of the ‘Root Container’ that is likely named ‘IPM_SUBTREE’ or ‘Top of Information Store’. This again in my case is “Gadgets”.
  6. Right-click the PR_ATTR_HIDDEN (tag 0x10F4000B) property in the property list of the hidden folder and choose ‘Edit Property’ from the menu.
  7. Disable the ‘Boolean’ check box and press OK.
  8. Select File | Exit to close the current window. From the Main window, select ‘Logoff’ from the ‘Session’ menu, and then Exit MFCMapi.

There is also a KB Article (924226) from Microsoft which seems to be similar, although that talks about Contacts specifically the steps are the same. The cause as per the KB article is the improperly formatting the Provisioning registry keys for OWA on the Back-End (mailbox) Exchange Server.

Go Karting

We had a team event from work yesterday and went Go Karting – which was the first time for me! It has been something I have been wanting to do for a while but never got around to for one reason or another. It was a lot of fun – we did three rounds of about 15 minutes each with about 10 minutes break in between each session. And other than our team there was no one else there for some reason so we had the whole place to ourselves – which made it quite easy and flexible.

My first go was quite crap and I was the second slowest in the whole group – but given it was my first time ever Go Karting it I was still lots of fun. At the end of it I think I did pretty well and dropped 4 seconds on my fastest lap! Hand in hand with that is the number of laps I did also went up. Below are my statistics (fastest laps only) for the three run:

  1. # of Laps – 17; Fastest Lap: 38.30 seconds
  2. # of Laps – 19; Fastest Lap: 35.26 seconds
  3. # of Laps – 22; Fastest Lap: 34.30 seconds

If you have never done go karting, I would highly recommend it. I can’t wait for the next time around. Big Smile

Carbon Neutral – Be Greener

I am quite surprised on how ignorant many people (like I was) are about understanding how the day-to-day activities contribute to Global Warming and the issues we face on this planet. As much as we wishes, unfortunately there is no backup or Undo feature Sad. To understand how our daily lives contribute towards global warming check out the Carbon Calculator and then read up on how you can offset those emissions and be Carbon Neutral.

However, personally I am not a believer of offsetting, while it is a step in the right direction it is not the solution.

Vonage Dialer

I had been thinking of writing a program which will allow be to dial a number using Vonage especially being the fat-butter-fingered-lazy-ass that I am. Big Smile. Although I wanted to do this for a while, I could only get around to writing it over the holidays. The program is fairly simple to use as shown below.

  1. Enter your User Name and Password
  2. Click on Connect
    • This will connect to Vonage and authenticate your user name and password.
    • If successful I retrieve a list of the Phone Numbers associated with your account. These could be more than one lines or soft phones you have.
  3. Select the Vonage line you want to use.
  4. Enter the Phone Number you want to dial.
  5. Click on Dial.
  6. Your Vonage phone should start ringing, when you pick up that line it will automatically start dialing the phone number you entered in Step 4 – how cool is that.

There are two ways you can install this, but before you do that you need to have the .NET 2.0 runtime installed on your machine. If you don’t have this you can download the v32 bit or the v64 bit.

To install Vonage Dialer you can either:

  1. Use Click Once and install the application over the internet – this is easier for most users but you will need to use Internet Explorer.
    • Once installed successfully you will find the application under Start => All Programs => Vonage Dialer
  2. Alternatively, you can download the setup file (395 kb) and unzip it and double click on setup.exe and install the application.
    • Once installed successfully you will find the application under Start => All Programs => Amit Bahree => Vonage Dialer

Note: The installation is different between the two installation methods!

If you don’t want to enter the user name, password every time then you can enter these values in the VonageDialer.exe.config file which will be in the location where you installed the program.

A couple of variations that I would like to work on are:

  1. Write a Outlook add-in which will allow you to right click on a contact and dial it from there.
  2. Write a Sidebar gadget for Vista – allowing you to dial any number from your desktop.

Let me know how it works out and if you would like any enhancements. As always usual disclaimers apply (read – if this breaks something on your program, don’t come crying to me). Smile.

Windows Home Server

Thanks to my colleague, Ian, for pointing this one. After some initial rumors, Bill Gates has announced a new product called Windows Home Server which will automatically back up all the data on Vista and XP providing centralized storage and make it available on the Internet. Bill also promised that the Home Server will be easy to setup and the user won’t have to even worry about formatting, partitioning,installing, etc as the OS would do all that automatically.

You can get other Microsoft CES related information here.

Case of the "Invisible" folder in Outlook and Exchange

I have a weird problem which does not make sense at all and I am hoping it is something stupid on my end.

One of my folders called “Gadgets” which resides in Community \ Social folder structure has somehow become invisible. I know the folder is present because I can still see my un-read emails (via the Unread Email Search Folders). Also if I search for emails in that folder I can find the emails, but I cannot see the folder in my list and as a result any of the emails in that. I tried creating it again but I get the error saying the folder exists. (See the various screen shots below).

Also it does not matter if I am using Outlook for this or I am connected to OWA – it is the same behavior.

The question is how do I get this back? Has anyone else seen this? A few things to note:

  • I am on Exchange 12 a.k.a Exchange 2007 and the client is Outlook 2007 running on Vista x64 (RTM).
  • Everything was fine and I just started getting this, so I know this is something new. Also I have been on Exchange 12 for a very long time now so unless something has crapped out very recently this is something else.
  • This is not an Outlook problem as I can reproduce the same issue on OWA (though I don’t have screenshots for it below).

Note: you can click on most images below to see them in detail.


Figure 1: Missing “Gadgets” folder from the above list.

Figure 2: This shows that I have unread items in that folder (which I cannot find) and when I open that I read that folder just fine!

Figure 3: This shows that when I search for something in that folder (even when it is read) it does work and I can again have full functionality.

Figure 4: I try creating the folder called Gadgets under the Social folder and I get the error shown in the next figure.

Figure 5: Error when adding folder.

This is quite irritating and I am at my wits end – any help is highly appreciated!

Amazon mystery – pricing of books

Given my book is up on Amazon this might not be the best time to write this Wink. There is an interesting article by one of the LA Times reporter on his experiences with how the price changes for books “left” in the shopping basket and not actually bought. This is something I have noticed first hand and I can tell for a fact it is not just books but other items as well.

Installing VMWare Tools in Ubuntu

I am now running the new Beta of VMWare Workstation 6, and it seems to be working fine in Vista x64 (RTM incase you are curious). The installation of Ubuntu which I am also running natively at home is supported as one of the OS’s in this new version of VMWare and installs without a hitch. However to install VMWare tools after VMWare automatically mounted that was a little more of an issue (especially for a newbie).

Since the two options are either a RPM file or a TAR file (nothing but a zip file) – those are no good for Ubuntu. Essentially you had to “unzip” the tar file and then install that. If you want to do this here are the steps (after the CD has been auto-mounted for you).

  1. Open a Console
    • In Ubuntu, to do this goto Applications => Accessories => Terminal.
  2. Type in the following two commands in the console as one after the other. This essentially sets up the tools needed to compile the code.
    • sudo apt-get install build-essential
    • sudo apt-get install linux-headers-`uname -r`
  3. Change to the directory where you extracted the tar file.
  4. Type in the following command to get this running.
    • sudo ./
  5. Just follow the prompts then and voila you are all set.

More Information:

Running Ubuntu

It might seem like a surprise to some of you, but then many others who are reading this probably won’t be surprised to read that I am now running a native instance of Linux on one of my machines are home.

I had an old machine (dual-proc PIII 1 GHz procs with 512 mb RAM) which was running Windows 2003 Server – and it had not been switched on for a while. I had many issues trying to get a working set of Linux. I started with Suse 10.2 and it seems like my blank CD’s were getting corrupt (was at the bottom of the 100 disc set and as you may have read, the bottom few discs are a hit or a miss – seems like the weight on top is not good). Anyway’s, eventually I was able to burn all the ISO’s successfully.

Another irritating situation was the bootable rom was a CD drive and the slave (which was not bootable) was a DVD drive meant I had to first burn all CD’s instead of a DVD for Suse 10.2. After a lot of frustration and misses I finally used the bootable internet installation CD and then install from the DVD (which is in the other drive), this itself was a bit quirky, but I was able to get around it. Eventually when it was up and running the first impressions were good and the resolution was good to and all the hardware was detected and installed.

After running it for a couple of days, I started hitting my knowledge of Linux (i.e. lack of it). It seemed if I wanted to use it as an end user then it was not as as simple as I thought it would be. There were many ways to do the same thing and many programs installed which did the same thing. The initial look and feel which was a lot like Windows (and the Start Menu somewhat like Vista) soon fell apart when I started using it for a couple of days and I started seeing how clunky the interface was!

It was then Karan suggested I should check out Ubuntu instead. As per him the problem with Suse is they change so many things in non-standard ways, unless you have been using it for a while and are familiar with it – definitely not for someone like me who had used Unix (including Microsoft’s flavor called Xenix) but never Unix – never seriously atleast. Can’t say I had heard of Ubuntu till then, but after a bit of research it seemed like the logical choice.

The installation went of smooth (the partitioner was much better than Suse), and it seemed like it was a much better experience from an enduser point of view. The only issue was that the screen resolution was at 1024×768 even though I had Suse running at 1280×1024. I searched online for a resolution and could not find anything that will fix this. As this resolution was “too big”, I formatted and switched back to Suse, but in the end decided that the higher resolution was a lower priority than a more usable Linux distro. Also since this was not going to be my primary machine, I was not that fussed about the resolution. I was in for a pleasant surprise though when I installed Ubuntu again, as this time (for some weird reason) the resolution it identified was 1280×1024!

I will be posting more of my Linux findings here over the next few weeks, however this would be lower priority than some of the other stuff I have been doing. Big Smile