How you can help tsunami victims

While the government is still slow with publicising
details of how people can help those affected by tsunamis that hit south India
on Sunday morning, bloggers in India

and elsewhere seem to be doing their bit.

Some like this one, are educating potential donors and volunteers on the
options before them. Notably, it does not focus on India

According to messages posted on this site, Médecins
Sans Frontières is among the NGOs organising

volunteers, financial aid and experts for affeted
areas in Asia. Some individuals have also got into the

The Bharatiya Janata
Party announced an Emergency Relief Fund for Indians affected by the tsunami,
in New Delhi on Tuesday. A central
committee has been appointed to oversee the operations. People who wish to
contribute can contact local BJP offices, which will send the material to the
party’s headquarters in Delhi.

Indian Americans too have started organising aid
efforts. The National Federation of India Organizations has already collected
about $10,000 from its charitable accounts and is aiming for $100,000. Those
wishing to send money toward relief efforts can do so to the following organisations:

1. Tamil Nadu Chief Minister’s Public Relief Fund
Prime Minister’s National Relief Fund

2. BAPS Care International
Contact: Shailendra Adroja;
Checks payable to: BAPS Care International
195, Main Street, Suite # 304

New Jersey-08840
Payments can also be made online at

3. Association for India’s
Contact: Aniruddha Vaidya,
1-650-996-8249, 1-888-TALK-2-AID or (301) 422-4441

Contributions to AID can be made through secure on-line credit-card
deductions from AID’s website (,
where further details and updates will also be posted. Please indicate that
your contribution is for the "Relief and Rehabilitation Fund".
Checks payable to "AID" can be mailed to:
AID Zone 3,

P.O. Box 4801
Mountain View, CA 94040-0801
(Please indicate "Relief and Rehabilitation Fund" in the check memo)

4. The National Federation of India Organizations
Contact: Rajen Anand (703) 642-3156,
(562) 537-1077

Checks (tax-deductible) will be sent to the International Red Cross for the use
of ALL victims in all countries.
Checks payable to: NFIA
6912 Winter Lane,
Annandale VA 22003.

5. The Hindu Temple Society of North America

Contact: Dr Uma Mysorekar
(718) 460-8484
Checks (tax deductible) payable to: The Hindu Temple Society of North
Hindu Temple Society of North America
45-57 Bowne Street


6. India Development & Relief Fund (IDRF), USA
IDRF has already committed $10,000 towards immediate relief efforts and
will match dollar-to-dollar for donations up to $10,000. It will channel your
generous contributions to Sewa Bharati

(Panchvati, Chetpet, Chennai), Jana Sankshema Samiti (Vijaywada, Andhra Pradesh),
Vivekanand Kendra and other voluntary NGOs providing
relief and rehabilitation to affected families including:

· Medical services
· Distribution of fishing nets, assistance for purchasing and repairing fibre boats
· Repair of diesel engines and supply fuel
· Distribution of textbooks, notebooks and uniforms to students.
· Construction of houses, repair and construction of community infrastructure

Please make check payable to "IDRF" (mention "Tsunami"

in the memo) and mail it to: IDRF, 4807 Phebe Ave, Fremont, CA

* Suresh Deopura (510) 573-5100,

* Shri Narayan Chandak (309)- 662-8353,
* Raghu Verabelli 781-270-2349,
* Vijay Pallod (281) 568-4995,
Or email

Donate on-line through your VISA/MasterCard or Direct Debit from checking account.

IDRF is administered by volunteers without any honorarium or overhead. Thus,
100% of your contribution will be disbursed directly to the NGOs working in the
field. Please check out our website

for latest information.

7. Sewa International, in association with local organisations, is planning to work for the rehabilitation
of families affected by the tsunami waves in India
by providing them:

Please send your donations to:

a. Sewa Bharathi Tamil Nadu
Shakti, 1, M V Street, Panchvati, Chetpet, Chennai-
Tamil Nadu
Ph: 044-28361049, 28360243 E-mail:

b. Jana Sankshema Samiti
Madhava Sadhan,
Kaleshwara Rao Road,
Vijaywada- 520002,

Andhra Pradesh

All donations from outside India should be sent to:
Sewa International
Apte Bhavan, 10196, D. B.
Gupta Road,

Jhandewala, New Delhi- 110055, India
Ph: 91-11-23517373, 23684445, E-mail:
Bank Account No: 21290, State Bank of India,
Jhandewala Extn., New
Branch Code No: 9371

8. You can send donations through NDTV’s trust
fund, The Hope Trust. Donations can be made to: HOPE – Tsunami Relief Fund and
sent to:

The Company Secretary, New Delhi Television,
W-17, Greater Kailash-1,
New Delhi-110048.
All donations are tax deductible under section 80G of Income Tax Act, 1961.

9. Give India

10. Volunteers for India

Development and Empowerment or VIDE

Source : REDIFF


Memory Leaks in .NET applications and Some Tips To avoid them

Developers using .NET often make memory leak tracking a low
priority because the common language runtime takes care of garbage collection.
What few developers realize, however, is that their objects’ lifespans, along with their size and what other objects have
been instantiated, all affect how they are cleaned up. Depending on the
particular circumstances, these combinations can negatively affect performance,
especially over the lifetime of an application.

The tips for reducing the Memory

1) As we all have heard many times from the experts –
Strings are very expensive in .Net and we have not done well in using them

a. Use the .ToString() method intelligently which creates a new instance of the

b. Be aware of string comparisons,
especially when doing string insensitive comparisons. For example, do not do
“if ( string1.ToUpper() == string2.ToUpper() )” – this
creates 2 new strings. Instead – use the string.Compare


effective use of variables to prevent the re-creation of strings.

For example –

I have seen some code written by inexperienced programmers
such as:

If (! hashTable.Contains ( SomeGuidID.ToString() )

hashTable.Add (SomeGuidID.ToString(), 1)

What this line
effectively did was create 2 strings, when a string variable could have been
declared and the ToString() method called only once.

other case that I’ve seen is the use of concatenated strings to form a key for
a hash table. For example:

hashTable.Add( ID1.ToString() + ID2.ToString(), 1 )

This is again inefficient as strings are bigger (in Bytes)
than a string. A Guid is 24 bytes where as a Guid.ToString() string is
40. That is a 67% increase in size over what is needed If
you need a concatenated key for use in a hash table, you can create a small and
efficient in-line class to handle that.

2) Recursive functions – due to the way that the heap is
managed, apparently recursive functions are very expensive as well and should
be avoided. Always try to avoid recursive functions wherever possible and just
use loops.

3) Maintaining the data tables has proved a quite heavy on
memory (I guess when you think about it, it
effectively doubles the memory usage of the raw data). Use DataTables
in the sistuation only if the data changes very

More tips to come later……………………………


With Regards,

UVN PardhaSaradhi

CLR Profiler.

Developers using .NET often make
memory leak tracking a low priority because the common language runtime takes
care of garbage collection. What few developers realize, however, is that their
objects’ lifespans, along with their size and what
other objects have been instantiated, all affect how they are cleaned up.
Depending on the particular circumstances, these combinations can negatively
affect performance, especially over the lifetime of an application. Along the way, a sample application to
demonstrate these principles is built.


for more details

.NET Dotfuscator

The .NET.
platform realizes Microsoft’s vision for the next
paradigm in Windows computing: multiple programming languages interacting
harmoniously, sharing an enriched object-based framework, contained within a
common runtime engine, running using just-in-time compilation. Application
development for Windows has never been easier or more accessible.

The .NET architecture is
unprecedented in its degree of power and flexibility. Unfortunately, that
design inherently produces a problem for those trying to hide their program’s
intellectual property. One concept that Java and .NET mutually share is the use
of expressive file syntax for delivery of executable code: bytecode
in the case of Java, MSIL (Microsoft Intermediate Language) for .NET. Being
much higher-level than binary machine code, the intermediate files are laden
with identifiers and algorithms that are immediately observable and ultimately
understandable. After all, it is obviously difficult to make something easy to
understand, flexible and extendable while simultaneously hiding its crucial

Reverse engineering of programs
may be a serious problem for many reasons. Competitors can steal intellectual
property or even reuse your code in their products. Hackers can violate
application security and publish trade secrets or even redistribute the
application with trojan code
present. The threat is real, and luckily, so is the solution.

In early 1997, Preemptive
Solutions, Inc. released DashO, a product to help
prevent reversed engineer for Java. Today, DashO is
still the de-facto standard for enterprise code protection and size reduction
in the Java world.

In early 2002, Preemptive
introduced Dotfuscator to solve this problem in the
.NET space. With all the experience, know-how, and patents from DashO, Dotfuscator has hit the
ground running to protect .NET programs. Microsoft has acknowledged Dotfuscator’s abilities and has included a lite version of Dotfuscator in
every copy of Visual Studio..NET..

The lite version is called the Community Edition and
it will provide developers with a great introduction to the benefits of

More info at


Measuring the Performance of your .NET Applications

Performance affects the user’s impression of any product . Want to make some performance measures about your .NET Application?

DevPartner Profiler Community Edition is one way. With DevPartner Profiler Community Edition, you can collect and view performance data about your application directly from within the Visual Studio .NET user interface:

Compuware DevPartner Profiler Community Edition accelerates software development and improves the quality of your code by pinpointing performance bottlenecks in Visual Studio .NET applications. Whether you’re creating new applications using the latest .NET technologies, or are working both with .NET and legacy components such as COM, COM+ or ASP, DevPartner Profiler is the profiler of choice for detailed and accurate timing results.

DevPartner Profiler features:

  • pinpoints performance bottlenecks
  • profiles managed VB .NET, VC++, C#, JScript 7 and unmanaged VC++
  • highly accurate results
  • verify code changes have improved performance
  • tightly integrated to the VS .NET IDE
  • supports Visual Studio .NET 2003 and 2002.

goto for More info and download instructions for the same.

Mind you it is Free and very useful.

Getting System Environment Values in .NET

  1. Sometimes it is necessary to get the system environment values such as mydocuments folder, Temp Directory, System Directory and so on. .NET Framework allows you to get these values.

  1. Add some labels and text boxes as shown below in the figure:

  1. Now we need to write some code for Button Click event as follows:

private void cmdGet_Click(object sender, System.EventArgs e)


txtMachineName.Text = System.Environment.MachineName;

txtOSVersion.Text = System.Environment.OSVersion.Platform.ToString() + " " + System.Environment.OSVersion.Version.Major.ToString();

txtUserDomain.Text = System.Environment.UserDomainName;

txtUserName.Text = System.Environment.UserName;

string[] strDrives = System.Environment.GetLogicalDrives();

string drives = null;

foreach(string str in strDrives )


drives = drives + str + " , ";


txtSystemDrives.Text = drives;

txtMyDocuments.Text = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);

txtSystemFolder.Text = System.Environment.SystemDirectory;

txtTemporaryFolder.Text = System.Environment.GetEnvironmentVariable("TEMP");

txtProgramFiles.Text = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles);


  1. Run your program and test it out! You will get the important system environment values! That’s all for this Tutorial!

MSDN Product Feedback Center

Have a doubt or bug to report to Microsoft or a suggestion to make?.
Tired of posting the problem in NEWS group and not getting enough Reply??
You can go to The MSDN Product Feedback Center at and either search for the issue you have in hand or submit it (make sure you’re specifying all the steps needed to reproduce it).
The MSDN Product Feedback Center is Microsoft’s bug-tracking and suggestion database. It allows you to make suggestions to improve Microsoft’s developer tools, as well as to report bugs you find in Microsoft’s developer tools. You can search for existing bugs and suggestions, review their status, validate bugs, vote on the importance of bugs and suggestions, join discussions, and view published workarounds for the Bugs.
Microsoft responds on this site very promptly, so you’ll most likely get some advice.