You can have multiple instances of yahoo messenger which can be used to login with different IDs – without any download or patch .
To have multiple instances of yahoo messenger, follow these steps :
1. Go to Start —-> Run . Type regedit, then enter .
2.Navigate to HKEY_CURRENT_USER ——–> Software —>yahoo —–>pager—->Test
3.On the right page, right-click and choose new Dword value .
4.Rename it as Plural.
5.Double click and assign a decimal value of 1.

Yes, Google wave is a significant improvement over email and I’m glad to be having it already.
Whenever a person opens Wave for the first time, he is greeted by a 2 minute video of Dr. Wave who gives a brief explanation of what wave is about. When I compare that with the welcome email I got when I first signed up for Yahoo! Mail, I’ve already watched technology come a long way.
For those who are not familiar with Google Wave, I’d like to recommend a few excellent articles.
1. Mashable’s Google Wave : A complete guide
2. Mashable’s The top 6 game changing features of Google Wave
3. http://www.davidnaylor.co.uk/google-wave-review-first-impressions.html
4. Google’s own guide
5. List of Robots for Wave
There is even a Firefox addon, here.
Now briefly, let me write down a few things that are absolutely simplistic about wave – rephrazing Google’s own wave on wave.
1. Like you use gmail to send emails, you use wave to create and edit waves.
2. Think of a wave as document that you create and the document is available in a sever somewhere for another person to see.
3. You cant edit an email after you’ve sent it. But a wave is sitting there so that it can be edited any time. So hypothetically, you could have just one wave per person and keep on editing it to add more content. One wave can thus be equivalent to multiple emails.
4. Wave represents a closed set of users. Whatever is created remains within the closed set of users. A person who doesnt have a wave account, cannot send a email to a wave account.
5. A wave can be both a document and a conversation.
6. Like recipients for email, you have participants for wave. All participants on a wave can edit any part of the wave, at the same time.
7. A wave can have blips in it. A wave with blips is a rough equivalent of an email thread. To quickly read through unread blips in a wave, hit the spacebar.
8. You can have your own wave profile to help to help your contacts recognize you on a wave.
9. You can use the playback feature lets to move through the history of a wave. Awesome!
10. Extensions let you add rich content and interactions to waves, or integrate with other systems.
11. To attach a file to a wave, start in edit mode. Then either:
* Click the paperclip and select the file from your desktop or
* To drag and drop right from the desktop into a wave, install Gears in your browser.
12. Google Wave’s spelling correction uses the context of your message to correct your spelling.
13. You can remove waves from your inbox in two main ways:
* Archive: takes a wave out of your inbox until someone updates it
* Mute: takes a wave out of your inbox unless someone adds a private reply to you
You can always find these waves again by searching for them.
14. Tags are an easy way participants can share organization of waves. Any participant can add or remove a tag.
15. You can create folders to organize your waves.
So there are the basics. Happy waving!
Today, I am having an hour to kill at the new NewDelhi Airport. When I booted my laptop, my laptop detected two networks. But when I connected to either, internet connection didn’t happen by default.
Airtel’s network requires you to carry a mobile phone. When you start your browser it prompts you for a mobile number. The username and password are sent by SMS. You will need these login credentials to access the internet.
I’m done. I can kill the hour now. But I wonder if this would work for international passengers.
For many years till yesterday, I knew about OpenOffice.Org Calc. Today, I’m excited about it.
I tried OpenOffice many years ago. It could do few things back then, but I immediately dismissed as inadequate for my needs. I have always been a fan of what VBA could do for Excel.
Last week, I completed the most complex piece of VBA application I’d ever written. I am a VBA newbie and it took me a week to finish my code that could be printed on 28 A4 pages. My spreadsheet till date works flawlessly on XP/Office 2003 like it is supposed to, but I wrote most of my code in Vista/Office 2007.
When I upgraded to Debian Squeeze, Openoffice.org 3.1.1 came with it. I checked out the new version and was impressed that one could write macros in Python, Javascript, BeanShell in addition to BASIC.
I tried to open my most complex piece of VBA code in Openoffice.org and I was bombarded with hundreds of repetitive error messages that I had to kill the spreadsheet from the command line. I was convinced that VBA and OOoCalc are not compatible, till I discovered this site by accident when trying to learn to write Javascript Macros in OOo.
OK. All I needed to add was “Option VBA Support 1″. That didn’t sound too difficult, so I tried opening my spreadsheet again and had to again kill everything from command line.
Some thing was not right and I wasn’t being able to run VBA despite the promised compatibility.
So I decided to go slow. No matter how many times, I couldn’t run the macros when I opened the native excel file. So I decided to open the excel file with macros disabled. That let me open the spreadsheet, but nothing was working. I found that OOoCalc automatically had added “Option VBA Support 1″ to my modules.
I saved the file as .ODS and proceeded to debug by enabling macros again. This time, errors didn’t come in a flood.They came one at a time and it was easier to debug.
The first set of errors related to variables which did not have an explicit Dim statement. VBA in Excel seemed more forgiving in handling varaibles without proper Dim statements. But OOo Calc didn’t like it. So I ended up adding a few Dim statements for some variables.
The next set of errors was with Excel UDF names. OOo Calc likes to see Functions being invoked with uppercase letters. So if you’d used lower case letters in Excel, they would show up as errors. This could be easily fixed by use of find and replace feature.
With just these two things, fixed my new .ODS file worked perfectly. I then saved it as .xls and re-opened the .xls and everything was still working. Though OOo Calc documentation still says that not all VBA features are supported, VBA runs well on OOoCalc for all practical engineering calculations. So now is the time for me to make the switch.
Now if you have difficulties, in getting your VBA code to work in OOo Calc, dont give up soon.

Let us say there are three types of products:
Cakes, Drinks and Chocolates
Let us say each product type has varying number of sub-types:
Let us say we need to give the user two comboboxes, one to select the product type and one to select the product sub-type. In such a case, the choices and number of choices displayed in the sub-type combobox will depend on the users choice of product type.
Macros can be used change one combobox based on the selection in another.
Let us start by setting up the first combobox.
Let us next create the second combobox whose name is Drop Down 2. This combobox is still empty. To fill up this combobox we need four macros.
Let us start creating these macros in the VBA editor.
Sub menu_cakes()
ActiveSheet.Shapes(“Drop Down 2″).Select
With Selection
.ListFillRange = “$J$4:$J$5″
.LinkedCell = “$J$2″
.DropDownLines = 2
.Display3DShading = False
End With
Range(“A1″).Select
End SubSub menu_drinks()
ActiveSheet.Shapes(“Drop Down 2″).Select
With Selection
.ListFillRange = “$K$4:$K$7″
.LinkedCell = “$K$2″
.DropDownLines = 4
.Display3DShading = False
End With
Range(“A1″).Select
End SubSub menu_chocolates()
ActiveSheet.Shapes(“Drop Down 2″).Select
With Selection
.ListFillRange = “$L$4:$L$5″
.LinkedCell = “$L$2″
.DropDownLines = 3
.Display3DShading = False
End With
Range(“A1″).Select
End SubSub menu_product_selector()
Dim n As Integer
n = Range(“H2″).Value
‘This is where the user input is taken into account
Select Case n
Case 1
Call menu_cakes
Case 2
Call menu_drinks
Case 3
Call menu_chocolates
Case Else
MsgBox “Error is selecting product from Menu”
End Select
End Sub
The last part is to tie-all these macros for execution.
We do this by right clicking on the product type combobox (Drop Down 1), selecting Assign Macro and asking it to run the macro menu_product_selector. This way every time the user makes a selection on this menu, it will invoke the macro menu_product_selector which in turn will invoke other macros that control the second combobox.
One assumption made is that all combobox objects will be on the activesheet. It is not a bad assumption to make as the user would definitely be present on the worksheet containing the comboboxes to make a selection.
Is there a better way of doing this?
Howto: Call one Excel Macro from another
If you have a spreadsheet that has multiple macros, it is possible to invoke one from the other. You need to use the statement “call [name of macro to be called]” each time you want a particular macro to be called.
eg: Body of macro0 could contain following code to invoke other macros
if x=1
call macro1
else if x=2
call macro2
else
call macro3
endif
*Edited later*
This applies only to Macros and it does not seem to be possible to invoke macros using the call function from user defined functions.
Howto: Add buttons, checkboxes, comboboxes in Excel2007
Office 2003 had “Forms toolbar” that contained all the objects like buttons, checkboxes, comboboxes etc.
In Office 2007, this functionality has been moved to the Developer tab. You have to manually enable the Developer tab in the ribbon bar as follows.
In the Developer tab now should appear in the Ribbon bar. If you open the developer tab, you can find the Controls section which has a drop-down menu labeled Insert where the form and ActiveX controls are placed.
Howto: Change values of individual cells through macros
To store number 3 in cell F3, use the following command in the body of the macro:
Range(“F3″).Value = 3
This would place the value 3 into cell F3 of the active worksheet of the active workbook.
To place the value in another workbook use the following command.
Workbooks(“BookName”).Worksheets(“SheetName”).Range(“F3″).Value = 3
The .Value property can also read a value from a cell.
x = Range(“F3″).Value
Whether .Value property is used to read a value or assign a value depends on which side of the equal sign it is placed.
However, this applies only to Macros and not user defined functions. Though it is possible to read a value to a user defined function and it does not seem to be possible to assign a value to a cell.
Public Function MyFunc(MacroName As String) Dim Msg, Style, Title, Help, Ctxt, Response, MyString \r\nMsg = \"Do you want to continue ?\" ' Define message. \r\nStyle = vbYesNo + vbCritical + vbDefaultButton2 ' Define buttons. \r\nTitle = \"MsgBox Demonstration\" ' Define title. \r\nHelp = \"DEMO.HLP\" ' Define Help file. \r\nCtxt = 1000 ' Define topic \r\n ' context. \r\n ' Display message. \r\nResponse = MsgBox(Msg, Style, Title, Help, Ctxt) \r\nIf Response = vbYes Then ' User chose Yes. \r\n MyString = \"Yes\" ' Perform some action. \r\nElse ' User chose No. \r\n MyString = \"No\" ' Perform some action. \r\nEnd If
“, “style=\”background: #FFFFFF;padding: 2px;font-size: 10px;width: 550px;\”");” onmouseout=”GAL_hidepopup();”>MsgBox “Inside MyFunc. Passed argument ” & MacroName
Application.Run MacroName
End Function
Traditionally, Linux users mount NTFS partitions for read-write by first obtaining the libfuse2 and ntfs-3g packages and then manually editing the /etc/fstab file. This process required you to remember several things tedious and there was a risk of making the system non-bootable if the /etc/fstab file was incorrectly written.
Today, I was able to do the same thing with the help of a new module called disk-manage on Debian Lenny and Gnome.
Disk-manager detects, mount new unmounted partitions, including NTFS-partitions in real time without requiring a reboot. Disk-manager can be also used to set mount point for the partitions.
To install disk-manager:
# apt-get install disk-manager
To start disk-manager
System->Administration->Disk Manager

Today, while running Debian I noticed that I was able to run some programs as a normal user. But when I logged in as a super user, the program wont run.
eg:
$ gedit starts gedit
# gedit fails giving the following error
———————————————
krishnanondebian:/home/krishnan# gedit
No protocol specified
cannot open display:
Run ‘gedit –help’ to see a full list of available command line options.
———————————————-
X authorisation for the superuser seems to be an issue that has been discussed several times. There is a sux command which is technically “su+x authorisation”. I didn’t know about the sux command so I took the longer route:
1. open a console and login as ROOT : su
2. see who can launch an “X program” : xauth list
if you get an error or the list is empty(you dont get anything) then continue to read on-probably this is you solution.
3. open a console and as USER see who is authorized to open the X programs : xauth list
This should give you something like this :
desktop/unix:0 MIT-MAGIC-COOKIE-1 395a5228d995d958a0cc59a5afe9d521
193.5.93.21:0 MIT-MAGIC-COOKIE-1 45891337dd1f30ea26f45bb6b70449b0
desktop:0 MIT-MAGIC-COOKIE-1 370116e6e873fc798aa4f1429f536219
4. now as ROOT add the ones (hostnames) you want to be able to launch X programs on your DISPLAY :
xauth add desktop/unix:0 . 395a5228d995d958a0cc59a5afe9d521
Do the same for the other entries as well(if you want to be able to launch from other hosts too-try adding all if you dont know which one is the correct one).Notice that the long numbers at the end are the same with the users before!ALSO NOTICE THE DOT “.” between the “desktop/unix:0″ and the number. Now you should be ok.Try to launch the program as ROOT. Should work
Source : http://ubuntuforums.org/archive/index.php/t-166863.html

My first attempt to upgrade to Debian Squeeze failed. It was because I lost power in the middle of the upgrade and my PC got switched off. It was so bad that I could not get the installation to work again. I had to re-install.
I made a second attempt today and succeeded. Briefly, this is what happened.
18:45 hrs
I pop in the Debian 5.03 DVD 1 and start a vanilla install of Lenny with GNOME.
20:35 hrs
Debian Lenny installation completes.
20:40 hrs
I edit the /etc/apt/sources.list file to change all instances of “lenny” to “squeeze” and all instances of “.in” to “.us”. This is the only preparatory step required. Nothing else is necessary as the entire squeeze installation happens by a download.
20.41 hrs
I use the update manager to check for updates. Smart Upgrade feature identifies 1101 packages adding to 881 MB.
20:42 hrs
I begin to download the squeeze upgrades on my 512 KBPS connection
12:58 hrs
All 1101 package downloads complete and squeeze installation starts. Thankfully, I didn’t lose power this time.
01:25 hrs
Installation freezes when attempting to restart the hardware abstraction layer.
01:27 hrs
After waiting for two minutes, I press Enter a few times and Ctrl+c a few times. Disk whirls and installation continues.
01:35 hrs
Installation completes. Update Manager throws out a long list of dependency problems reproduced below. PC freezes again and wont power down.
01:36 hrs
I manually power down the machine, wondering if the upgrade worked
01:38 hrs
When I boot, I notice that the Vanilla installation of Squeeze is near perfect. Everything works flawlessly.
The addition of multimedia drivers, third party software etc. are for another day.
————————————————————-
Dependency problems during a normal squeeze install.
————————————————————-
E: dbus: subprocess installed post-installation script killed by signal (Interrupt)
E: dbus-x11: dependency problems – leaving unconfigured
E: gconf2-common: dependency problems – leaving unconfigured
E: libgconf2-4: dependency problems – leaving unconfigured
E: gconf2: dependency problems – leaving unconfigured
E: libgnomevfs2-common: dependency problems – leaving unconfigured
E: libgnomevfs2-0: dependency problems – leaving unconfigured
E: libgnomevfs2-extra: dependency problems – leaving unconfigured
E: libedataserver1.2-11: dependency problems – leaving unconfigured
E: libcamel1.2-14: dependency problems – leaving unconfigured
E: libebook1.2-9: dependency problems – leaving unconfigured
E: libecal1.2-7: dependency problems – leaving unconfigured
E: python-evolution: dependency problems – leaving unconfigured
E: libgnome2-common: dependency problems – leaving unconfigured
E: gvfs: dependency problems – leaving unconfigured
E: libgnome2-0: dependency problems – leaving unconfigured
E: libbonoboui2-0: dependency problems – leaving unconfigured
E: libgnomeui-0: dependency problems – leaving unconfigured
E: libpanel-applet2-0: dependency problems – leaving unconfigured
E: python-gnomeapplet: dependency problems – leaving unconfigured
E: libgnome-desktop-2-11: dependency problems – leaving unconfigured
E: python-gnomedesktop: dependency problems – leaving unconfigured
E: gnome-media-common: dependency problems – leaving unconfigured
E: libgnome-media0: dependency problems – leaving unconfigured
E: python-mediaprofiles: dependency problems – leaving unconfigured
E: metacity-common: dependency problems – leaving unconfigured
E: libmetacity-private0: dependency problems – leaving unconfigured
E: python-metacity: dependency problems – leaving unconfigured
E: libtotem-plparser12: dependency problems – leaving unconfigured
E: python-totem-plparser: dependency problems – leaving unconfigured
E: python-gnome2-desktop: dependency problems – leaving unconfigured
E: python-gconf: dependency problems – leaving unconfigured
E: python-gnome2: dependency problems – leaving unconfigured
E: consolekit: dependency problems – leaving unconfigured
E: policykit: dependency problems – leaving unconfigured
E: hal: dependency problems – leaving unconfigured
E: xserver-xorg: dependency problems – leaving unconfigured
E: xserver-xorg-core: dependency problems – leaving unconfigured
E: xserver-xorg-input-kbd: dependency problems – leaving unconfigured
E: libebackend1.2-0: dependency problems – leaving unconfigured
E: libedata-book1.2-2: dependency problems – leaving unconfigured
E: libedata-cal1.2-6: dependency problems – leaving unconfigured
E: libegroupwise1.2-13: dependency problems – leaving unconfigured
E: libsoup-gnome2.4-1: dependency problems – leaving unconfigured
E: libgweather-common: dependency problems – leaving unconfigured
E: libgweather1: dependency problems – leaving unconfigured
E: libedataserverui1.2-8: dependency problems – leaving unconfigured
E: libexchange-storage1.2-3: dependency problems – leaving unconfigured
E: libgtkhtml3.14-19: dependency problems – leaving unconfigured
E: libgtkhtml-editor0: dependency problems – leaving unconfigured
E: evolution-data-server: dependency problems – leaving unconfigured

Some times, some of us may need to start a program when starting Debian. One example could be the instant messenger program Pidgin or it could be Vuze for people who want their downloads to start automatically.
GNOME has an elegant solution for this. Go to System -> Preferences -> Sessions and here you can add a list of programs you want to start with every session.
*Edited later*
In KDE4 there is a similar choice in Control center -> autostart.
If you are using KDE 3.5, which comes with Debian Lenny as a default, you will need to add the program manually to ~/.kde/Autostart
