Even though it is sometime after my wedding, I didn’t had a chance to blog about it, and suddenly thought to put a post with some pictures of that fabulous day of my life.
Wedding Day
Poruwa Ceremony
Our Wedding Cake
Parents and Us
Home Coming Day
Even though it is sometime after my wedding, I didn’t had a chance to blog about it, and suddenly thought to put a post with some pictures of that fabulous day of my life.
Wedding Day
Poruwa Ceremony
Our Wedding Cake
Parents and Us
Home Coming Day
Recently in an application we developed there was a requirement to stop the browser back button after user logs out of the application.
The reason behind this was to stop the security risk of another user without proper permissions peeking into the earlier users screens. If you notice in many applications if the browser back is not properly handled then after the user is logged out you can re visit the site by just pressing the browser back button. This happens because the browser shows the cached page when the back is pressed. Even if you have server side code to check for the user they will not fire since the page will load from cache.
With the limited time I found a genius idea to handle this in the internet. What this javascript does is it will always try to put the user back to the last page in the history. For example, I am having a login page and a default page which I am taking a user after he logs in. You need to place the following javascript in the default page to make the above happen.
Then once a user logs out from the system and if presses the back button of the browser, when the default page loads it will put the user again to login (history forward) page which is the login page. Ultimately user needs to login again to go back to the site.
After disconnecting the battery for a maintenance job, I had some clueless days while trying to reset the clock in a car audio system. Even though there should be a way to set the clock in audio systems it is bit difficult to find it without the manual of the system.
My in my scenario I found it after sometime, so thought to share it since it might help someone with the same problem.
Car audio system in which I had the issue was JVC KD-S5055.
To start the resetting you need to press and hold the “Select” button for about 5 seconds. Then a message similar to “Hour-h” will be shown in the display. Once this appears use the + and – buttons located on the left to set the hour value of the time.
Then to set the minute value you need to press the mode change buttons located on the right side. Once you press the mode change button while on the hour changing mode you will see a message similar to “Minute-m”. Then again you can use the + and – buttons to set the minutes portion of the time.
After successfully setting both hour portion and minute portion you can press the Select button again to save the changes made to he clock.
Additionally if you need the system to show the time when the device is switched on you can press the Display button located below the Select button. This will show the current time instead of the Radio/CD/Track information.
Hope this helps.
Today a friend of mine needed some help from me on sending the same letter to different people while addressing the letters differently. This can be easily achieved by using Word Mail Merge feature.
Since I am having Word 2010 installed in my machine this post will list the steps required in Word 2010.
1. To start the process type in your letter and click on Mailings on the Word 2010 ribbon.
2. Click on Start Mail Merge and select Letters.
3. Then you need to select the people you need to send the letter to. To do that you have three options Type List, Use Existing List or Select from Outlook contacts. In this post I will use the first option.

4. When you click Type new List… you will get a window in which you can create a list of users with their details as shown in the following screenshot. For simplicity I will only create 2 users.

When you are done creating the list of users click ok so you will be prompted with a save window. Save it for later use since you may need the list for future use.
5. Then in your letter go to the appropriate places you need to place the differencing information, for example I need to put the address of the receiver after the text The Manager. To do so place the cursor on the required location and press on Address Block icon on the ribbon.

From the Insert Address Block window you can customize the way the address is printed on the letter. For example if you do not want to print the company name of the recipient then you can remove the checkmark on the Insert company name field. Preview pane will show you a preview of the actual data you have in your contact list. For the simplicity I will use the default options.

When you press ok you will see something similar to the following appearing in your letter, which will be the placeholder for the address block.

Following similar method but using the Insert Merge Field icon I did add the title and the last name of the recipient into the body section of the letter as you see below.

6. Preview your work by clicking Preview Results icon, by clicking the navigation buttons on the preview results pane you can navigate through your contacts to see the actual letters that will be created. For example below screenshot shows the letter for Mr. Withana with the changes for him.

7. When you are satisfied you can finish the merge with three options, in my case I will use the first option again.

As the final output of the merge I got one new document with the 2 letters addressed to the recipients i had in my contact list as shown in the following screenshot.

If you have not configured Azure Development Storage to use your SQL Server, then while running your application targeted for Azure you will see an error similar to the following.
“Windows Azure Tools: Failed to initialize Development Storage service. Unable to start Development Storage. Failed to start Development Storage: the SQL Server instance ‘localhost\SQLExpress’ could not be found. Please configure the SQL Server instance for Development Storage using the ‘DSInit’ utility in the Windows Azure SDK.”
To overcome this you need to run the DSInit command using Windows Azure SDK Command Prompt.
Step 1 – Start the Windows Azure SDK Command Prompt.
Step 2 – Type DSInit /sqlinstance:. on the prompt and press enter.

The dot (.) at the end denotes the local SQL Server instance running on your machine. DSInit command details are as follows.
| Syntax: DSInit [/sqlinstance:<SQL server instance>] [/forceCreate] [/user:<Windows account name>] |
| Description: Initialize the development store for usage by Reserving http ports for the blob, table and queue services for the current user, and Creating the database needed by the blob and queue services |
| Options: sqlinstance : the name of the SQL Server instance on the local machine that should be used for Development Storage. The default is SQLExpress. Use "." for unnamed instance. forceCreate : recreate the database even if it already exists. user : user for whom ports are to be reserved. By default it is the current user. |
.
After doing the configurations it will display a success screen similar to the following.

Then when you run your Azure ready application the Azure Development Storage and Azure Development Fabric will get started and notify you on your system tray as shown below.
After a while your application will also start without complaining if it is Azure ready.
Have you noticed that with the default settings of SQL Server 2008 R2 you cannot use the design view to edit and save table changes which requires table to be recreated. But if you used earlier SQL Server installations you should remember that this functionality was possible. When you try to save such a table you will see an error similar to the following in SQL Server 2008 R2.
But the good news is that we can enable this functionality by going to SQL Server options.
Click Tools –> Options and expand Designers node and select ‘Table and Database Designers’.
Then uncheck the option ‘Prevent saving changes that require table re-creation’ and press OK.
Now if you try to save the table changes SQL will do the alteration without any complains.
Recently I needed to sort the contents of a SharePoint folder, in which I used IComparer to get my task done. Following is the code I used. Hope it is helpful.
As you see below I am using the TimeCreated property of SPFile object to do the comparison, other than this you can use any other property of the SPFile object. For a list of available properties refer MSDN.
Are you interested in musical instruments? If so have you seen an instrument which combines the Piano and the Guitar? It is manufactured by a company named Marcodi and is named as Harpejji. The sounds from it is truly fascinating, experience the sounds for you self by visiting their site. For people who would like to buy it the pricing and ordering details are also there in the site.
Click this link to see the event of presenting Harpejji first time to the great musician A. R. Rahman.
If you are involved in coding using .Net sooner or later you will notice that when the TextMode of a TextBox is changed to MultiLine the MaxLength property will stop working. What this means is in the textbox users will be able to type as many character as they want.
When searching the web for a fix for this I found several ideas to solve this. Following is the code which I modified for my requirement. Hope this helps.
ASPX
ASPX.CS
The output will me something similar to the following.

When we are regularly using databases, sometimes those will get corrupted. This happened to one of my applications, it was a Windows Mobile application with SQL Server CE database. Since it is running in a mobile it is bit difficult for us to fix the database using the desktop machine. I used the following .Net Compact framework code to fix the corrupted database while the database is in the mobile.
Do you guys also get the ”Cannot connect to YouTube” error on your iPhone when using the provided YouTube application?
If yes follow the steps below to get it fixed.
1. Open Cydia from your spring board.

2. Press on the Manage tab in the bottom.
3. Press on Sources, then on Edit and press again on Add to add a new source.
4. Type the URL http://apt.iphonemodding.com and press on Add Source button. 
5. Now find the iPhoneModding item and press on the triangle ‘>’.

6. Scroll down and find the “Push Fix” item and press on it.
7. Press Install to get Push Fix installed on your iPhone.

8. After pressing confirm on the confirmation screen the application will get installed on your iPhone.
9. After a complete restart you will be able to use YouTube application within your iPhone.
It is some time since the SharePoint 2010 is released and now is a good time for you to migrate to the new improved version of it. When searching the net I found some good sites which compares the 2 versions.
Read through the following sites if you are interested.
Since Internet Explorer (IE) 8 is a built-in feature of Windows Server 2008 R2 there is no way to install or uninstall it using the user interfaces. Instead you need to run the following commands in a command prompt window which has administrative privileges.
If you are only having IE in your machine as an internet browser be sure to install another internet browser before uninstalling IE, otherwise you will not be able to browse internet.
To Install -
dism /online /Enable-Feature /FeatureName:Internet-Explorer-Optional-amd64
To Uninstall -
dism /online /Disable-Feature /FeatureName:Internet-Explorer-Optional-amd64
or
FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-8*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /norestart"
If you did work with .Net Math classes you may have noted that you can quite easily round value upwards. But what about rounding values down?
For example if you tried to round the value 1.23501 into 2 decimal places using the Round method provided by the Math class as below, the result you will get is 1.24. Meaning .Net had rounded the value up.
If the value is rounded down it should be 1.23, but in .Net I couldn’t find an easy way to get this done. So I did create a small code to get it done. It is very simple only a method with one statement as shown below.
Ohh, I think this is complicated right? Please find a bit of self explanatory code below.
The complete code of the application I created is below with a screenshot of the application running. Hope this helps to you.

Today is a day full of errors, when I fixed one error another error came while trying to run my hosted application. This time it was “Access to the path 'C:\inetpub\wwwroot\……’ is denied.
Full error is as follows,
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\Mining2 Setup\Images\temp\tempImage.png' is denied.
The issue here was generated by a code written in my application which tries to access an image named tempImage.png in the said folder (Images\temp).
The reason for this is when you install IIS 7 the account used by the application pool (IIS_IUSRS) is not given access to the folder Images\temp. Since it is created by the application I just installed.
To sort out the issue give write permission to the folder Images\temp for the account IIS_IUSRS using the security tab in the folder properties page.
Recently when trying to install a setup I made for a project on a new server having Windows Server 2008 R2 I continuously encountered an error as of below.
“The installer was interrupted before “Application” could be installed. You need to restart the installer to try again.”
![]()
The server had IIS 7, .Net Framework 3.5 and 4 installed. After putting in some time onto this I found out that this is because the II6 Management Compatibility services was not installed for the Web Server role.
To fix it simply open the Server Manager and open up Web Server role and click on Add Role Services.
Then select IIS 6 Management Compatibility node and all the child nodes below in under the Management Tools parent node and press next.
When the installation is complete the setup will work as desired.
![]()
Recently I changed the style of some controls in my ASPX page at runtime based on the values set on another control in my page. For example the color of the table is changed based on the radio button that was selected and the color of the button is changed according to the text that was typed in the textbox. Hope this is helpful.
Output looks as below.
Even though very little publicity was given a great medical finding was done by an American Doctor working in Berlin to find a cure for HIV/AIDS or Human Immunodeficiency Virus / Acquired Immune Deficiency Syndrome.
As per the articles a stem cell transplant from a donor who had a gene mutation known as “CCR-5 Delta- 32” cured a patient with HIV infection with no traces of HIV after two years of the transplant.
At the moment a transplant is much riskier thing to do since it involves of destroying and rebuilding the patients’ immune system. But this case of success will open up new ways to think and will help finding more safe and solid cures for HIV/AIDS in the near future.
Read more,
http://edition.cnn.com/2009/HEALTH/02/11/health.hiv.stemcell/
http://www.baldwincountynow.com/articles/2009/05/28/local_news/doc4a1d63cb68531598814432.txt
Normally in ASP.Net TreeView you can enable it to show checkboxes in its node levels. So if you need to do any actions when a node is checked or unchecked you need to use the TreeNodeCheckChanged event. But the problem is TreeNodeCheckChanged event will not fire when a checkbox is clicked. The cause for this is because the TreeNode class which represents a node in the TreeView will not add onClick event on the checkbox.
But if you carefully check it the event is getting fired at the next page postback. Since I needed to do some actions when the checkbox statuses are changed I made the page post back when a checkbox is checked or unchecked by the following java script. What it does is simply it will check the element which caused the event is a checkbox and do a postback of the page.
To make this work you need to bind the onClick event with the javascript shown above as shown below.
Even though I have done this in Page Load this can be done in other places of code as well, for example if you are adding the TreeView by code you can use this right before adding it to the page.
The above will make the page post back when ever a checkbox in the TreeView is clicked, but nothing special will happen. You need to implement the code for TreeNodeCheckChanged event to get some task done out of it, for example I am using the following code to check or uncheck the child nodes depending on the action done for the parent node.