Friday, December 28, 2007

Microsoft Office Mobile 6.1

Microsoft has released Office Mobile 6.1. This is an upgrade to earlier versions of Office Mobile. This version will enable opening Office 2007 files in mobiles (Open XML formatted files).
Additionally it will have the following features,

• Enhanced viewing experience for charts in Excel Mobile.
• Ability to view SmartArt in PowerPoint Mobile.
• Ability to view and extract files from compressed (.zip) folders.
as Microsoft has quoted.

Download it from Microsoft using the following link.
http://www.microsoft.com/downloads/details.aspx?familyid=4b106c1f-51e2-42f0-ba32-69bb7e9a3814&displaylang=en&tm

Thursday, December 20, 2007

Try Your Flying Skills

If you would like to have fun flying aircraft's check the link below to get access flying either of Bombardier Dash 8 Q400, Boeing 737-400 or the giant in the skies Airbus A380.

http://www.creativesql.co.uk/flightgame

See how many miles that you can fly :-).
Happy Flying.

Wednesday, December 19, 2007

KITT is Back

Can you remember Knight Rider? An indestructible Black car which drives itself. It was then called Knight Industries Two Thousand (KITT).
It seems that they are going to bring back KITT to life again in TVs. This time also it will be known as KITT (Knight Industries Three Thousand). The new three thousand model will have abilities like changing colour and size. Also this will have more Artificial Intelligence (AI) making KITT the ultimate car for fighting against crime.

If everything goes smoothly new KITT will start dominating television from first quarter of 2008.

Read more at,

Monday, December 17, 2007

Adding an existing Dataset to a project - VS.NET 2003

Did you try adding an existing typed dataset to a project in Visual Studio 2003?

If you did then you may have noted that it will only add the files having the extensions .xsd (designer file) and .xsx (resource file) to the project, it will not add the .vb (class file). As a result you will not be able to use the added dataset. Also if anyone tries to add the class file again manually then it will be there as a separate class. Even though this works fine it will be misleading at a latter stage of the projects life. (In the following image you can see the 'dsDataset1.vb' file separately.)
Normally this 'dsDataset1.vb' file should come under 'dsDataset1.xsd'.

To get the dataset class file recreated in the correct location,
  • First open the dataset designer using Visual Studio (double click on the dataset).
  • Then right click on the dataset designer and select the 'Generate Dataset' menu option.
Now you will see the class ('dsDataset1.vb') file nicely located under 'dsDataset1.xsd'.

Tuesday, December 04, 2007

Detecting Whether the Application is Already Running

Recently a colegue of mine needed to know how he can determine whether his application is already running in the machine at application start.

Using this post I am going to share the solution with you all, showing how you can determine whether your application is already running in the computer. By detecting this either you can stop starting of the second instance of the application and activate the already running application for the user or you can attempt to close the earlier application and start the new one. If you does not check this then multiple applications might start and the user might complain about the application performance. Also this may cause problems occurring from locked resources.

* Visual Basic (VB)
Using VB you can easily check this by using the App object.
------------------------------------------------------------
If App.PrevInstance = True Then
MsgBox("The program '" & App.EXEName & "'is already running. Please use the running application.")
End
End If
------------------------------------------------------------

* Visual Basic .NET (VB.NET)
Using VB.NET you can do this by using Diagnostics.Process class.
------------------------------------------------------------
If Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess().ProcessName).Length > 1 Then
Application.Exit()
End If
------------------------------------------------------------

Microsoft SQL Server Compact 3.5 for Windows Mobile

SQL Server CE 3.5 has been released. According to Microsoft this is having some cool features. Some of them are as follows according to Microsoft.
  • Side-by-side installation together with SQL Server 2005 Compact Edition (version 3.1)
  • Support for newer and more secure encryption algorithms
  • Additional timestamp (rowversion) data type
  • Enhanced support for Transact-SQL statements including:

- Nested query in FROM clause
- CROSS APPLY and OUTER APPLY
- CAST and DECIMAL
- SET IDENTITY INSERT
- TOP CLAUSE

To download and learn more visit Microsoft using the following URL.

http://www.microsoft.com/downloads/details.aspx?FamilyID=38ED2670-A70A-43B3-87F3-7AB67B56CBF2&displaylang=en

Tuesday, October 16, 2007

First Delivery of Airbus A380

image_thumb[4]
 
Airbus delivered its first Airbus A380 on 15th of October 2007. If anyone of you who is interested have missed the occasion you can have a look at the event by visiting the following web site.

You can watch many other multimedia content highlighting the development and launch of A380 in the same web site.

Enjoy !!!

Monday, October 08, 2007

Microsoft Flight Simulator X

I got Flight Simulator X (FSX), which is the latest version of Microsoft Flight Simulator line of products. It seems to be really high in detail, also they have improved the liveliness of the artificial world. This version has moving traffic on roads, moving ships in the sea, people are there, birds are flying, push back vehicles are there. Also they have improved the virtual cockpit a lot. Only problem is, to support all these you need a good machine with high powered processor and a good graphics card.

My earlier graphics card doesn't seems to be much comfortable with FSX, so had to buy a new graphics card as well.

But it seems to me FSX is a really good game to go for if you are a flight enthusiastic like me.
Also I am planning to start again creating some fun stuff for FSX as I did some years back for FS2004.
Visit the official web site and find out more.
There is also a trial version available from Microsoft at the following location.

Friday, October 05, 2007

Microsoft HealthVault

Microsoft HealthVault is an online service which you can use to collect, store, and share the health information critical to your family's well-being.

Above all this service is provided free by Microsoft.

Try it out by paying a visit to Microsoft.
http://search.healthvault.com/hvindex.htm?rmproc=true

Thursday, September 27, 2007

Executing .NET Applications Located on a Remote Location

Have you tried executing an application which is on a remote machine from yours. Think it like this, you have an application written in .NET (any version) and two users are there who are willing to use the application using there machines. (Please note that in this secnario all the machines are in the same network.)

The normal process is to setup your application on both machines and tell them to use. But the problem is that you are not yet finished development so constatly there will be updates to the application. So if you install in two machines, all the time you change the application you have to install the new version in both machines. (This is ok as you think because it is only two machines, but think is there are 50 users using in 50 machines.)

In this kind of a scenario, installing the application in one machine and sharing it and making the other user access the same installation can ease your life. Isn't it?

If you just try running the application from the remote location, application might not work correctly. This is because you have to set a code group for the remote application in the local machine. Then only the local .NET classes will be accessible without problem to the remote application. To configure the things follow the points.

1. Install your required application in one machine and share the application folder if possible. (It doesn't really matter whether it is shared or not. What matters is the accessibility to the folder.) Run the application from the installed machine first to make sure the application is working properly in the local environment.

2. Install the required .NET framework on all the client (user) machines. (In my scenario above, in both uiser machines.) This is because the application is actually ran on the users machine even though it is located on a remote machine.

3. Browse to the application installation folder from a client (user) machine.
Get the 'Run' window by clicking on Start -> Run. Type the machine name or IP address of the machine where your application is installed (Note that my application resides in the machine having the IP 192.168.1.165 in my LAN).If the login criteria is asked, enter them and login. It is ok even if you use the 'Guest' account to log into the system if you have access to the shared application by the guest.
4. Open the .NET Configuration window by clicking on Start -> Control Panel -> Administrative Tools -> Microsoft .NET Framework x.x Configuration.

5. Expand the 'Runtime Security Policy' node from the left hand pane. Then expand the 'Enterprise' node and finally 'Code Groups' node. Then right click on 'All_Code' and click on New....

6. Specify a Name and Description for the code group and click Next.

7. Choose the condition type of the code group as 'URL'. In the underneath URL text box type the path to the remote application folder and put a backslash and an asterisk . In my case I typed file://192.168.1.165/Bin/* (The asterisk is used to include all the items under the folder Bin into the code group that we are creating). Then press Next.

8. From the list of existing permission sets select 'LocalIntranet' and click Next. Then click Finish in the next screen to finish and setup the new code group.

9. Now the code group is created for our remote application. But to make the application really run you have to change one property in the Code Group Properties. Continue by right clicking on the new code group that we created named 'My Code Group' and selecting 'Properties'. 10. In the code group properties, check the 'Policy levels below this level will not be evaluated' check box and press 'Ok' to apply the setting.

11. Close the open .NET Configuration windows and launch the application from the share.

If any specific functionality or if the entire application is not working please contact me, I might be able to help you out of the problem.

Installing Office 2007 on Windows

Hi all,
This is my second post on installing Office 2007. The reasons behind this post are that I have seen that installing Office 2007 is a problem not only in Vista but also in all other operating systems and also to mention you a tried and tested way (by me :-)) to install Office 2007 in one shot.

As my hint above you can use this method to install Office 2007 in any operating system.
Before starting the setup I recommend you ti update windows by running Windows Update.

1. Run a Disk Cleanup on the partition that you are going to install Office by getting the drive properties by right clicking on the drive and clicking Properties.

2. Create a folder named 'Office' in one of the drives in your hard disk and copy the full contents of Office setup CD/DVD in to this folder.

3. Start the installation by double clicking on the Setup.exe.

4. Select the customized option of the setup and right click on the top node and select 'Install on first use'. This will make all the items install when you try to use them.5. Now continue with the installation.

6. If there are any problems the setup will bring up a window and tell you to browse for files that it is unable to find or sees as corrupt. If this happens to you,

i. Try pointing to the 'Office' directory that you created in the point number 2 and press Ok.

If the window again comes up then,

ii. Copy the entire folder which setup reports as having problems from the CD/DVD to the 'Office' directory again. (For example if the setup saying it is unable to process ExcelLR.cab, copy all the folders having the name Excel to the 'Office' directory again from the CD/DVD.)

iii. Point the setup again to the 'Office' directory. This time the setup will continue.

7. When the setup finishes, start one or two applications (Word, Excel, ...) and make the installer install the necessary files. If at this point it asks for any missing files, follow the same procedure as at point number 6.

8. After you have successfully opened at least two applications of Microsoft Office family of products, start the Office installer again from the 'Add or Remove Programs' section in Windows Control Panel. Select 'Add or Remove Features' and click Continue. Then choose the applications you want to run and proceed with the setup. (If the setup is asking for any missing files follow the same procedure as at point number 6.)

9. When the setup finishes successfully, you can carry out a Repair on Office by starting Office setup again from 'Add or Remove Programs' to fix any missing files.

Tuesday, September 25, 2007

Breakpoints are Not Working in Visual Studio - .NET Compact Framework (.NET CF)

Recently I had the issue while debugging a smart device application. All my breakpoints stop functioning. But if I ran the application in the device emulator the breakpoints are working fine.
So it was occurring only when I debug in an actual device (In my case Pocket PC).

After some trying I found that the problem is in the .NET CF which was installed in the Pocket PC.
To fix the thing,
1. Stop all the applications running in the Pocket PC (Do a soft restart or use the Runnning Programs tab in the System -> Memory).
2. Un install the .NET CF from the Pocket PC and soft reset the Pocket PC again.
3. Install the .NET CF in to the Pocket PC. (Also note that you can make the Visual Studio install the .NET CF by starting an application from Visual Studio.)
4. Connect the Pocket PC to the computer using Active Sync and try debugging. In most cases now the breakpoints should work.

If this did not fix the issue you will have to cold reset the Pocket PC and also I would instruct you to reinstall the SDKs (Windows Mobile 5/6 Pocket PC SDKs) if you have any installed.

Wednesday, September 12, 2007

Airbus A300
Airbus has delivered its last A300 to FedEx on 12th July 2007. This marks the closure of Airbus’ first production line and brings to a close a very special chapter of the company’s history.

To read more details and watch the first A300 being made pay a visit to Airbus.
http://www.airbus.com/en/corporate/people/company_evolution/a300/index.html
http://www.airbus.com/store/mm_repository/videos/att00010264/media_object_image_teaserA300_Airbus.swf

Monday, September 10, 2007

Accessing Windows XP Machines

Have you noted that when you try to access a Windows XP machine, in the Connect To window (Login screen) the User name field is disabled?
Earlier versions of Windows did not had this disabled so we were able to logon as any valid user by typing the account name and the password. But in Wondows XP this was disabled by a security policy.

This policy will also restrict the machine's ability of sharing files, per user sharing will not be possible.
Want to change it? Ok proceed by openning the Local Security Policy Settings window through Start -> Control Panel -> Administrative Tools -> Local Security Policy.
Now go to Network Access section and find out Net access : Sharing and security model for local accounts.
Then open the properties page of that by double clicking or right clicking and clicking on properties.

Did you note that the default is, Guest only - local users authenticate as Guest change this to Classic - local users authenticate as themselves.
Then press Ok to apply the setting and close all the opened windows.

Now from some other machine try to access your machine. See the difference. Now you can type any user name and the appropriate password and log in.

Also if you now go to folder properties you will see that the Sharing tab is having different content than earlier and also you will see a new tab named Security. You can use these tabs to set per user security and access rights.

For people who would like to know more, following is the explanation for the setting Net access : Sharing and security model for local accounts given by Microsoft.



Network access: Sharing and security model for local accounts
This security setting determines how network logons using local accounts are authenticated. If this setting is set to Classic, network logons that use local account credentials authenticate by using those credentials. If this setting is set to Guest only, network logons that use local accounts are automatically mapped to the Guest account.

The Classic model allows fine control over access to resources. By using the Classic model, you can grant different types of access to different users for the same resource. By using the Guest only model, you can have all users treated equally. All users authenticate as Guest, and they all receive the same level of access to a given resource, which can be either Read Only or Modify.

There are two models available:

  • Classic: Local users authenticate as themselves.
  • Guest only: Local users authenticate as Guest.

Default:Guest only on Windows XP Professional. Classic on the Windows Server 2003 family and Windows XP Professional computers joined to a domain.

Important:With the Guest only model, any user who can access your computer over the network (including anonymous Internet users) can access your shared resources. You must use the Internet Connection Firewall (ICF) or other similar device to protect your computer from unauthorized access. Similarly, with the Classic model, local accounts must be password protected; otherwise, those user accounts can be used by anyone to access shared system resources.
This setting only affects computers running Windows XP Professional which are not joined to a domain.This policy will have no impact on computers running Windows 2000.

Notes:This setting does not affect interactive logons that are performed remotely by using such services as Telnet or Terminal Services.When the computer is not joined to a domain, this setting also modifies the Sharing and Security tabs in the Windows Explorer to correspond to the sharing and security model that is being used.

The Car of the Future - M 200G

Have you seen the car of the future? Even though people call this a car this is more towards a personal helicopter. The M 200G is manufactured by Moller International located in Davis, California, USA. This is capable of vertical take-off and landing.

Read more at BBC.
http://news.bbc.co.uk/1/hi/business/6970031.stm

In the future there won't be necessary to us to wait in long traffic ques. But what will happen if all the people buys this car?

I think it will increase the Air Traffic :-).
Windows Vista Service Pack 1

Microsoft is going to release Service Pack 1 (SP1) for Windows Vista. It will have the updates that Microsoft had released up to now and also some reliability and performance improvements addressing the issues they have found.

The beta version is planned to be available in few weeks time from today (2007-September-09).

Thursday, August 30, 2007

Importing Yahoo contacts to Outlook
This was actually a doubt that I had in my mind after I had accidently deleted my contact list by synchronizing in wrong way. This is possible and the method is as follows.
1. Open your Yahoo Mail and click on the Options -> Mail Options on the top right corner of the page.2. Select Contacts Options from the left pane.
3. Click on Import/Export under Management column.
4. Go down to Export section and press on the button named Export Now which is infront of Microsoft Outlook and save the file to your hard disk when it prompts.
5. Open Outlook and click on File -> Import and Export..., then select Import from another program or file option and click next.
6. Select Comma Separated Values (Windows) from the list and click next.
7. Browse for the file that you saved in Step 4 then select what to do if it finds duplicate items and click next.

8. Select the Contacts item from the list and click next.
9. If you want to map the contact fields manually you can do so by clicking on Map Custom Fields..., most of the time this is not required.
10. To do the import click Finish.
WOW you have successfully imported Yahoo contacts to Outlook.

Wednesday, August 22, 2007

Changing Manufacturer Icon in System Properties

Changing Manufacturer Icon in System Properties
Recently a friend of mine did ask me how to change the manufacturer icon and supported by text in System Properties. Even though, I have changed the Boot Screens and Welcome screen languages when I was at my earlier employer I forgot how to achieve this. :-)

Then after some trying I found the way and thought it is better to blog it.

1. You have to create an icon to be shown as the manufacturer logo. Also remember that even though how large your image, System Properties will only show 180x114 pixels.
  • The point is that the image you create should be 180x114 pixels to be shown as a whole.
  • The image name should be OEMLogo.bmp.
2. Create an ini file to hold the Manufacturer, Model and Support Information.
Open notepad and create a file in the following structure.

[General]
Manufacturer= Arjuna
Model= My Model

[Support Information]
line1= Tele xxx - xxxxxx
line2= Fax ### - ######
line3= EMail ME@MyCompany.Com
line4= What ever you want

When saving you have to save this file as OEMInfo.ini.

3. Ok, since now files are ready, you have to copy them to system32 folder inside windows installation folder. The default location would be C:\WINDOWS\system32.

Job well done !, now if you go on to System Properties you will see the image that you have just created with the information that you have just saved in the notepad.

Thursday, August 16, 2007

Query Shortcuts in SQL Server 2005

There is a nice feature which I did not come accross until recently. That is Query Shortcuts. This can be very helpful when executing regularly used queries.

For example consider SELECT * statement that we use.

When ever we need to get the full record set of a table we are writing SELECT * FROM tblTable. So if we have 10 tables we need to write the same SELECT * FROM part 10 times or we may need to copy and paste that. Also mosstly, as developers we are using this statement for temporary purposes to just see what is there inside the table later we will delete the queries. In such cases the query shortcuts come in handy.


But to use them you have to set them up.
1. Open SQL Server Management Studio (SQL SMS) and go to Tools -> Options..., this will bring up the Options page.
2. In that, expand the Environment category and click on the Keyboard.
3. Now select a key combination which is easy for you to use (I selected Ctrl + 3.). Then in front of the key combination under Stored Procedure type SELECT * FROM and press ok.

Setup is done, now we'll use it.
4. Now open a new Query Window in SQL SMS. Then drag a table from the Object Explorer.
5. While the table name is selected, press the key combination (My case it is Ctrl + 3.).


See what happened?

It will run the SELECT * FROM tblTable query even though the query window is just having the table name.
Not only SELECT * FROM you can run what ever queries by using this method. But a limitation which I see is that we cannot create our own key combinations (I prefer assigning Ctrl + S or Ctrl + Space for SELECT * FROM rather than Ctrl + 3.).
I think this is useful to many developers to improve their productivity.

Wednesday, August 15, 2007

Nice Windows Shortcut

Do you know that you can use both sides of the title bar to close an application in Windows?
Obviously in the right side you have the Close button which you can left click to close the application.
What about the left side? Yes If you double click on the left side then also application will close.
  • Windows XP and earlier
In the left corner of the title bar there will be a small icon , if you double click on this that will trigger the same action of application exit.
  • Windows Vista
In vista there will be no icons, but if you click on the left corner that will still trigger the application exit.


  • Office 2007
The new Office version will have a big circle on its top left corner . If you double click on or near this again the application exit will be triggered.
Wireless Electricity

Did you get to know that people are trying to send electricity wireless. Even though this is still at testing I think when this succeeds lot of people will enjoy true wirelessness. Since nowadays even we have wireless devices we need a cable when charging them. This will remove that disadvantage.

Read more at,
http://gizmodo.com/gadgets/notag/mit-dudes-develop-mind+boggling-wireless-electricity-267238.php.

Tuesday, August 14, 2007

Intel Core 2 Quad Processors





Intel has released Intel Core 2 Quad Processors, these are capable of handling 4 threads simultaneously.
Read and experience more at Intel.

http://www.intel.com/products/processor/core2quad/index.htm
http://www.intel.com/products/processor/core2quad/demo/demo.html

All recent processors.
http://www.intel.com/performance/desktop/dighome/index.htm

Monday, August 13, 2007

Debugging Web Services

I tried debugging some Web Methods (WM) in a Web Service (WS) using Microsoft Visual Studio 2005 and noted the following things.

When your WM having simple parameters (Integers, Strings) if you run your project internet explorer will open up with text boxes to enter your parameters. After entering there will be a button named Invoke to invoke the WM. That will invoke your WM with the parameters you have provided.

But the thing is if your WM is accepting complex types as parameters (Objects, Datasets, Tables {Even though it is not recomended to supply complex objects like datasets to WMs there may be scenarios that it will save lot of development time of yours.}) then you will not see either textboxes or an Invoke button. As a result you will not be able to debug the WM.

Do not worry because I found the way to debug.

First you have to publish your WS to Internet Information Services (IIS). To make things simple for you Visual Studio will do the publishing for you. Before that make sure that your IIS is running by typing http://localhost/ in your web browser.

Then right click on your WS project in the Solution Explorer and click on Publish.... This will open up the Publish Web form to you. In that enter the target location as shown. Remember to change the IP address used to your IP address or you can put your machine name or localhost instead using IP address.



Click on Publish. This will create a virtual folder inside IIS and your compiled WS will be copied in to the virtual folder. Now your WS is hosted. In some cases you may have to give permission to the WS. If you needs then open IIS Manager by typing 'InetMgr' in the run windows. Browse to your newly created virtual folder, right click on the folder and click on properties.



In WebService properties window check if 'Script Source Access' check box is checked, if not then check that and click Apply and click Ok.

Now we have published the WS, we'll setup debugging.

Right click the WS in the Solution Explorer and click Properties. In the project properties page click on the Web tab. In that as the default, WS will be set to run on a virtual server comming with Visual Studio. We have to change this because we are not been able to debug on virtual server. To do this select the radio button 'Use IIS Web Server' and set the project URL to the same location you entered in the Publish Web screen.



Now close the WS properties screen and press F5 or Debug -> Start Debugging. This will start the Internet explorer and will load your web service. Keep that as it is and put some breakpoints in the WS code.

Then use the web service. I did use the WS from a PDA application. When ever the call is made the web service will break at the breakpoints you have put then you will be able to debug as usual (using the windows as such Immediate, Watch, etc)

Conclusion
In Visual Studio normally it will start the WS in its virtual server. We have to point that to IIS to make it debuggable. That can be done by setting Web properties in the WS properties.

Thursday, August 09, 2007

Making a normal Column, an Identity column in SQL Server CE

In SQL CE making a normal column an identity column is not possible. This is because the process involved in the making of identity columns. If you would like to know more about the Identity creation behaviour please read my earlier article.

http://arjunachith.blogspot.com/2007/08/making-normal-column-identity-column-in.html

In SQL CE the process mentioned in the article is not possible because that SQL CE does not support enabling and disabling IDENTITY INSERT.

If you did try it out, should have noted that even SQL CE table editor is not supporting this.

So if you really want to change a column in to an identity column (which already having unique values) then what you can do is, create a new table and copy the data your self. But the problem is that you will not get the old values in the identity column because there is no way to copy them without turning the IDENTITY INSERT off. So identity column data will be new from 1 to n, But all other information will be there in the table with the identity column in place. If you even wants to keep the old identity values you can keep that old identity column and create a new column for the Identity column.

Friday, August 03, 2007

Making a normal Column, an Identity column in SQL Server

Do you know that you cannot just change a normal column into an identity column in SQL Server? This is because that identity columns can only be created when creating new tables.

Now some people will say that how cannot that be? Because they are used to change using the SQL Server Management Studio (SQLSMS). What management studio will do is, it will create a temporary table with the Identity column and copy all your existing data there. Later it will delete the original table and will rename the temporary table to the original.

For example we will take Sales.Individual table in the AdventureWorks database.



Think that we need to add a column named Id as an identity column. What we will do is just type after ModifiedDate column and make the new column an identity column.

In such a case when we save the change SQLSMS will first create a temporary table which matches the new schema with the identity column.

Then it will set IDENTITY INSERT OFF and will copy the data from the original table to the newly created temporary table.

After this it will delete the original table and will rename the temporary table as the original table.

Did any one thought that the SQLSMS is doing this much of work for us without our knowledge?
Retrieving Schema Information of SQL CE Database

There are very limited features offered in SQL Compact Edition (SQL CE). But with those offered you can do many things if you know what is there and what is not there.

Following are some views available in SQL CE which you can use to retrieve information about the tables in the database.

-- Gets the list of Columns with their associated Tables. You will be able to retrieve the column properties such as Data Type, Allow Null, Default Values, etc.
SELECT * FROM INFORMATION_SCHEMA.COLUMNS

-- Retrieves information about the indexes contained in the database.
SELECT * FROM INFORMATION_SCHEMA.INDEXES

-- Retrieves information about the Primary Keys used in the tables.
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE

-- Retrieves all the Tables in the database including the System tables.
SELECT * FROM INFORMATION_SCHEMA.TABLES

-- Retrieves all the Constrains in the database.
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS

-- Retrieves all the Data Types available in the database.
SELECT * FROM INFORMATION_SCHEMA.PROVIDER_TYPES

-- If you have any referential integrity constraints in your database defined, those will be returned by this.
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
Did you ever thought why we are saying "Many Happy Returns of the Day" on someones Birthday

Visit this link and find out more.
http://www.smh.com.au/news/big-questions/why-do-you-wish-a-person-many-happy-returns-of-the-day-on-theirbirthday/2005/08/25/1124562965035.html

Thursday, August 02, 2007

Dual Booting Windows Vista

As I normally need several Operating Systems installed in my machine, after installing Vista also I tried the same. This made me to find, that the Vista boot loader is different to the earlier OS boot loaders. Because of this difference if you install earlier version of OS after installing Vista, you will not be able to start Vista.
These are the things which I found out.
If you need to multi boot Vista, then first install the oldest OS first. If the OSes are Windows XP, Windows 2003 and Windows Vista then install Windows XP first then Windows 2003 and finally Windows Vista.
Also note that if you install any earlier version after installing Vista you will have to fix the Vista boot loader. This can be done by booting the computer using the Vista installation CD and trying a start up recovery.
A good article is located at http://www.itnews.com.au/News/NewsStory.aspx?story=55148.
Retrieving MAC Address in Compact Framework

Recently I have seen that getting the MAC address of a Pocket PC network card using the .Net Compact Framework requires calling to the API 'iphlpapi.dll'. This is because the Windows Management Instrumentation (WMI) classes are not in Compact Framework. Otherwise you should have used WMI to get the MAC address.
But believe me that the process involved in Compact Framework to get the MAC address is complex. So as a suggestion I would say to use the OpenNETCF class libraries. You have to use OpenNETCF.Net and OpenNETCF to successfully get the MAC address. If you want to know what is happening underneath you also can download the OpenNETCF source code too.

OpenNETCF web site is http://www.opennetcf.com/, visit them and see.

The code for getting the MAC address of the first adapter using OpenNETCF would be,

' Creating a variable to hold all the retrieved adapters.
Dim adpcol As OpenNETCF.Net.AdapterCollection = OpenNETCF.Net.Networking.GetAdapters
If adpcol.Count = 1 Then
' adpcol.Item(0).MacAddress will be returning in Byte stream, you have to use Bit Converter to convert the stream to string.
GetDeviceMAC = BitConverter.ToString(adpcol.Item(0).MacAddress)
Else
GetDeviceMAC = "No Adapters Fetched"
End If

(You have to refer OpenNETCF.Net and OpenNETCF to make this code run.)
Yahoo! Go 2.0


Have you tried Yahoo Go 2.0? It has many new additions than the earlier version of Yahoo Go. In supported areas you can even get the traffic reports and maps.

Also note that Yahoo Go 1 service will be stopped on 27th of August 2007.

Try it out at http://mobile.yahoo.com/go.

I am sure that you will like the new version with many new features.

Thursday, July 12, 2007

Analyzing Device Application Performance


Recently I tried analyzing my applications' performance running on a Pocket PC. This can be achieved using .Net Compact Framework (.Net CF) Remote Performance Monitor (RPM). .Net CF RPM provides facility to monitor applications which run on devices that are connected to the computer using Active Sync or by general network.

To monitor your device application performance you have to have at least .Net CF SP1 since .Net CF RPM will come with .Net CF Service Pack 1. If you have not yet installed .Net CF SPs then download the SP2 from Microsoft using the following link.
http://www.microsoft.com/downloads/details.aspx?FamilyID=aea55f2f-07b5-4a8c-8a44-b4e1b196d5c0&DisplayLang=en


RPM consists of 3 main files.
1. NetCFRPM.exe - This is the application file which will run on your computer. This will show performance related data of the device application. This file can be found at C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\bin if you installed the Service Packs to the default location.

2. netcflaunch.exe - This will give you the connection parameters to the device. The details provided will be in handy if the device is not connected to the computer using Active Sync.

3. netcfrtl.dll - This dll facilitates the connection between the computer and the device.

You have to copy both above files to the device Windows folder (\Windows).


If you need more information on how to use .Net CF RPM visit Steven Pratschner's .Net CF weblog articles.
http://blogs.msdn.com/stevenpr/archive/2006/04/17/577636.aspx
http://blogs.msdn.com/stevenpr/archive/2007/03/08/finding-managed-memory-leaks-using-the-net-cf-remote-performance-monitor.aspx

Tuesday, July 10, 2007

Installing Office 2007 Ultimate on Windows Vista Ultimate

As it always happens, last few days I was busy with a curious error while trying to install Office 2007 Ultimate edition on my newly installed Windows Vista.

The errors I got were.


I have seen many posts on the internet but many were regarding upgrading to the released version from beta. But my case was different because it was a fresh copy of Vista and it was a DVD received from Microsoft.
After some struggle I got Office installed and would like to share how I succeeded. What I suspect was that it was having a problem copying files from source to destination at a stretch. The way I did was like this.

The first advice I give is, If you are installing office to some other directory than default given directory, please create that exact directory in your hard disk and point the setup to that directory.
Then try normal installation of Office 2007. If you are in my category it will fail after giving one of the above errors. Let it fail by pressing Abort button because we have no other option.

Again start the installation, this time select the top node, right click and select "Install on first use" (This will make all the software's install at the first attempt made to use them.) and continue with the setup.
In our earlier setup, it failed saying that one of the cabinet file was corrupt so cannot continue with the setup. This time because we used the option install on first use this error will not appear.

After successfully completing the setup. Try running Word for the first time. This will start the setup process. Sometimes you may be required to insert or point to the installation source during setup. If the same above mentioned error comes click Abort. Even you click Abort Word will start. Then after closing Word do the same on PowerPoint and let PowerPoint also start.

Now you have Word and PowerPoint up and running. Close all opened software's and insert you Office installation source and start the installation again. This time select "Run from Computer" option (or what ever options you want to select). Then start the installation. When Office setup starts the progress bar remove your installation source (CD, DVD,...). Because the new installer will keep the required files for the setup, it will run normally for sometime. If any files for the selected options are missing then installer will ask at that place to point to the source.

After sometime the setup will request for the files which are missing (My case it asked for ExcelLR.cab). This time it will allow you to browse for the file. Be careful this will allow you only once to browse, if you select the wrong location then it will give setup fail message and you have to restart setup after pressing Abort. When browsing for the file remember to just point to the folder above the actual file not to the actual file it is requesting. (In my case I directed to the folder CD:\English\OfficeSystem2007\ULTIMATE2007\Excel.en-us.)

If you properly followed everything setup will now continue without errors.
If you are still having problems then I recommend you to find another edition of Office 2007 (Enterprise, Professional) and try installing Excel with that edition. After successfully completing that setup run the Ultimate setup again. Then when the progress bar starts remove the installation source. You may have to browse for the installation source after sometimes. After you installed ultimate edition successfully remove the other edition using add remove programs. And perform a repair operation on the ultimate setup. This will fix any edition clashes and will configure ultimate edition properly.

Tuesday, June 19, 2007

Automating Actions in Photoshop

Recently I had to edit several hundred images. The point was that I had to do the same thing to all the images. So I struggled a bit to find a way to automate the process. In this way Adobe Photoshop will do the same actions to all the images without my involvement. Cool right, Ok then before explaining the way to do this I'll explain what I am going to do.


To make things simple, just imagine that you need to put some text to some images and needs to save the images as Jpeg. First things first, so open one image from your image set after starting Adobe Photoshop (Please note that I am using Adobe Photoshop CS2).

1. We need to record our actions to make Photoshop repeat them on other images.

Open the Actions pane by clicking on Window -> Actions or pressing Alt + F9.

Now create a new Set by clicking on the folder like icon at the bottom of the actions pane. When new set window comes put a name that you want. I kept the default name which was Set 1.

Then create a new Action by clicking on the small icon located little right to the New Set icon.

In the New Action window you can specify a name (Action 1), a set which this action will belong, a key combination to initiate the action and a color for the action if you want.

Now you are ready to record the actions. After double checking whether the Begin Record button (Circuler button as the second button from the left in the Action pane.) is activated, use the Horizontal Type Tool (T) to insert the required text into the image. Format the text as you want.

Since now we are done with the required actions, stop the Recording by clicking on the Stop Playing/Recording button (The left most button [rectangular] on the Action pane.) Note that not only putting text, you can do many things available in Photoshop at this point and record to Automate later.

2. Now you have successfully created the repitative tasks. What you have to do now is to perform all these tasks on the images you have.

If all the images you want to change are not in the same folder put all of them to one folder. Having images inside sub folders are ok.

Then Click on File -> Scripts -> Image Processor.


In Image Processor select the second radio button at Step 1 and click on Select Folder... button and select the folder where your images are.

Select the Step 2 as you like. (What I choose is to save the images on a folder named New Folder under my original folder)

Select the Save as Jpeg check box and type appropriate quality in Step 3 (5 in my case).

In the Step 4 select the set (Set 1) and action (Action 1) you have created above.

If you want any Copyright information you can enter them also.
After selecting everything click on Run to start the batch process.

You will be able to see Photoshop automating. How helpful is this? Was a lot to me.
Happy playing with images.