Since I had bought my laptop, I had not been able to find time to configure my emails on to my email client. Every time I had to use the web mail client and it was a pain for it gets slow, specially when you just need to review your old mails. Finally today I took the plunge and started to configure my GMail account in Outlook 2007. It was a breeze setting up specially with the help of tutorial available on Google here.


The tricky part was to move the Outlook .pst file to a different drive from the default location. Anyone who has had worked with Windows with long would know how pain is to backup data from C drive in case of failures. Using the default procedure listed in Outlook help, I moved the PST to a new location. As I started the client again, it created a new PST in a default location, leaving me wondering as to where did I go wrong while working through the procedure. Well, may be, I tried again with the same problem.


Google is the only way when you get stuck up - a simple search led to me, a site that pretends to contain all results, but I guess is useless for it forces you to shell out money for simple answers. I am surprised as to why does Google indexes this site even. A browse through more results, a few more user experiences cursing Microsoft for making simple things so tough, and I was on my way to believe that this was not possible with IMAP accounts. I was almost planning to shift to POP account of GMail, as with POP accounts you just need to click 'Change Folder location...' option and move your PST. I called up one of my friends and then we  started to dig a solution for it. Here is what I did, to achieve a very complex simple task.


1. Open Outlook - Configure your GMail account as detailed here. Stop Outlook.

2. Open Control Panel -> Choose Mails -> Click on Data files.

3. Select the Account name and check for the location of the PST file. Leave the window open.

4. Open the folder containing the PST. Move the PST to the desired location.

5. Do NOT rename the file - if you do Outlook creates a new file in the default location again.

5. Switch to the Data Files window (as opened in Step 2) and double click on the PST file location.

6. Outlook displays an error window, Ignore the error, and point to the new location. Close the windows.

7. Outlook may create a new PST in the default location again, delete it, in such a case.

8. Restart Outlook.


Hope this helps.

written by Sandeep Gupta

Saturday, February 23, 2008 at 12:15 PM

A discovery I just happened to make - there is a bug (cross-linking error) in the Google Code API documentation. Check out the page,

The links to the Awareness API and the Management API are swapped. The link to the awareness API takes you to the Management API reference at and the link to the Management API takes you to the Awareness API page at

hehehe... I really find it interesting to discover such errors with official documentation.

written by Sandeep Gupta

Wednesday, February 20, 2008 at 11:15 PM

I have just completed a PowerPoint theme based on the Foliage theme for Wordpress. It has the same color scheme and matching bullet style. The theme is available in formats for MS Office 97-2003 & MS Office 2007 versions. You may read more about the theme here. Download the theme from here. The following slideshow shows some of the snaps from a presentation I am currently working on,

If you like the theme or have words to say, drop in a line or two on the blog or use the project page here.

If you use the theme to build a presentation in the public domain, and would like to have it showcased, please drop in a comment to this article or provide feedback on the project page at Google Code.

written by Sandeep Gupta

Saturday, February 16, 2008 at 9:30 PM

Yahoo! & Jerry

with 2 comments

We all hear about Yahoo! - the center of attraction for ground-searching Microsoft in the world of web. The post is not about what is going on these days, or how things would change in the near future.

Here in, I trace back the journey of Yahoo! as it evolved. From the official Yahoo! history page, I came to know that Yahoo! started as the Jerry and David's Guide to the World Wide Web. The name amused as well as stunned me. Why? Three reasons.

First, This was a startling revelation as I always thought Yahoo! to be somewhat synonymous of its coming to existence. A term coined up revolving around founders, idea or inspirational sources, with a touch of Japanese funk.

Second, Jerry happens to be my favorite cartoon character. Anything that has the farthest linkage to Jerry - the lovely little sweet friend - catches my perfect attention.

Third, my first open-source attempt with my friends is also known as Jerry.

Hope this amazes you too.


written by Sandeep Gupta

Monday, February 11, 2008 at 10:10 PM

A while ago I was just cruising from one website to another, when I came across MJS - A website that provides free Java hosting to developers so that they can go ahead and hone their web application skills.

As with any usual website even they wanted me to signup. I am lured to test the service and without delay I clicked on the link. The page it led to attracted me to it. The signup form is not like every other. It includes a Challenge.

SignUp Challenge
It requires you to write a simple Java program related to a web application. As you type in the code, it keeps compiling your code, showing the compilation errors. Once, the code compiles successfully, it runs a set of test cases against your code. If all the test cases pass successfully, then only the signup form is enabled.

It was fun attempting the problem which took around 12 minutes to solve. Hope you would enjoy the same. Take the challenge here. MJS SignUp Challenge

written by Sandeep Gupta

Thursday, February 7, 2008 at 5:45 PM

Business computations always involve the computation of Net-Work days, and if you are using Excel, you immediately find a solution in NetworkDays function. I have myself used it extensively in my computational work. But, for reasons best known to Microsoft, they have kept this function as part of Analysis Toolpack add-in. Well, to makes obviously no difference as the addin is a part of standard Office shipment. But, when you are developing a spreadsheet to be used by many, you are not very sure whether they have the addin installed/active.

Adding a check for its presence is definitely a good idea, but depending on the Analysis ToolPack just for NetworkDays functionality is not worth it, atleast in my purview. Here is the code of a custom function that does the same for you, and in cases, can remove your dependency on ATP.

Public Function MyNetWorkDays(ByVal startDate As Date, ByVal endDate As Date, Optional ByVal holidays As range = Nothing) As Integer
Dim diff As Integer, weeks As Integer, ed As Integer, sd As Integer, delta As Integer
Dim swap As Boolean
swap = False
MyNetWorkDays = 0: delta = 0

If endDate < startDate Then
'swap the dates
Dim temp As Date
temp = endDate
endDate = startDate
startDate = temp
swap = True
End If

diff = endDate - startDate
ed = Weekday(endDate)
sd = Weekday(startDate)
weeks = diff \ 7

If ed = sd Then
If Not (ed = 1 Or ed = 7) Then
delta = 1
End If
ElseIf ed > sd Then
If ed = 7 Then ed = 6
If sd = 1 Then sd = 2
delta = ed - sd + 1
delta = 7 - (sd - ed) - 1
End If
MyNetWorkDays = (weeks * 5) + delta

' check for holidays
If Not holidays Is Nothing Then
For Each holiday In holidays
wh = Weekday(holiday)
If wh = 1 Or wh = 7 Then

If startDate <= holiday And holiday <= endDate Then
MyNetWorkDays = MyNetWorkDays - 1
End If
End If
End If

If swap Then
MyNetWorkDays = 0 - MyNetWorkDays
End If
End Function

Hope this helps.

written by Sandeep Gupta

Wednesday, February 6, 2008 at 1:30 PM

Another find of the day. Security and Microsoft seem to be antonyms. And that too so easy. I had been using Excel for many-many years now, but I discovered these holes only day-before. What a fool I have been :(

In no particular order I would travel through various holes/tricks that can be exploited/used to have your way. :D Infact, I had to resort to dirty methods to gain some insight into understanding something.

  1. There are some cells that contain plain values and no formulas. The cells are locked, rows hidden and sheet protected. To view the cells just copy the rows from one before to one another, open a new workbook, paste. Now unhide all the rows, voilla, you have the values of all the cells.

  2. You have a locked sheet with hidden cells containing formulas that link to the same sheet. Copy the sheet to a new workbook, and you have all the cells unlocked.

  3. You have a protected sheet with locked hidden cells containing formulae that refer to other worksheets. A simple copy-paste won't do the trick. Hack it using VBA. Iterate through the cells, read the formula and just set it somewhere else. So easy :)

  4. To prevent a sheet from being Moved/Copied, protect the workbook with a password. One drawback, copy-paste of individual cell ranges bypasses this security. You may use VBA to copy-protect your worksheet, but again that may render workbook useless in case of High-security environments.

  5. Another way could be to protect the entire workbook, put all your formulae on a different worksheet, hide the worksheet. No one would be able to unhide the sheet. Drawback is they can access this sheet using VBA, copy the cells and get the information needed.

  6. The biggest drawback or hack is VBA. Using the powerful ability you can access information in any cell you desire, its formulae, data, formatting. Reconstruct those with the variations you desire, put them at any other place, and reference. No one will ever know you modified. :)

I guess the biggest security problem is VBA. With the feature ON, you leave your data vulnerable to even mediocre programmers. Its a boon to programmers and a curse to security. Even if you protect your VBA modules, someone else can write the code in another workbook, open both simulataneously, and have his way into your data. I am still to discover something really fool-proof.

Anyways many utilities let you make a backdoor entry into protected workbooks/worksheets with just them running in background. It seems there are more holes in the way Excel DOM is implemented. And yes, they work - I tried one with success yesterday :D

Hope this helps.

written by Sandeep Gupta

Friday, February 1, 2008 at 11:15 AM