Tuesday, July 06, 2010

REST Client


This is a feature rich rest client what I developed and released to open source under EPL 1.0 for developers to play with web services. It can be used to test any URL for all HTTP methods
  • GET
  • POST
  • PUT
  • DELETE
  • HEAD 
  • OPTIONS
  • TRACE

 

Main Features

  1. Simultaneous views of request, response and browser.
  2. Post raw data or file, text content or binary.
  3. Post params in either body or as part of URL (twitter style).
  4. Post multipart form data with same ease as of normal post.
  5. Handle response equally well even if it is binary e.g. image, pdf etc. No gibberish characters anymore.
  6. Play with headers and params.

Min. Requirement

  • Java 1.6
  • Eclipse 3.4 (for plugin)
  • HTTP 1.1 compatibility

Project Home:

http://tinyurl.com/rest-client

Approved by eclipse.org:

http://marketplace.eclipse.org/content/rest-client


Friday, May 28, 2010

Volatillity of "volatile" in Java Multi-threading

Many people say volatile keyword in Java is poorly understood and underused and I am not the exception. I would try to throw some light over it to make it simple to understand.

volatile has its meaning in context of multi-threading. Many explain it as

"If a variable is declared as volatile then it is guaranteed that any thread which reads it see the most recently written value."

Well first we need to understand that each thread has private memory (cache) in addition to access to shared main memory. Thread contains a copy of shared object, present in main memory, in its cache. There is time-to-time synchronization between cached value and value in main memory; it happens on event of obtaining or releasing lock. But this is not true if variable is declared as volatile. Volatile variables are read and written to main memory only. So there is no need of synchronization and any thread trying to read value will read from main memory.

Having said that there is still an open question of dead lock. Well access to volatile variable is like accessing a synchronized block without holding lock.

Monday, March 29, 2010

Ajax - Internal

Objective of this post is to expose behind the scene story of Ajax but lets start with classical definition of Ajax ...

1. What is Ajax?
Ajax is a web technology by which web client (web page) can interact with server asynchronously. Ajax stands for Asynchronous Javascript and XML. The whole story is around an object XMLHttpRequest which is an implementation, available in most browsers, of an interface XMLHttpRequest provided by scripting engine. IE has a different name of this object called XMLHTTP and instantiated as an activeX object. This object can be used by scripts to programmatically connect to their originating server via HTTP synchronously and asynchronously. Its asynchronous capability is exploited by AJAX for interactive communication with server.

2. Example
function ajaxCall(url) {
var req;

try {
req = new XMLHttpRequest();
} catch(e) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP"); // IE 6.0+
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP"); // Older IE
} catch(e) {
throw new Error("Your browser doesn't support AJAX => " + e); // Doesn't support AJAX
}
}
}

req.onreadystatechange = function() {
if(this.readyState == 4) {
var data = req.responseText;
document.getElementById('response').innerHTML = data; // create a div with id 'response'
// $("#response").html(data); // if using jquery
}
};
req.open("GET", url, true);
req.send(null);
}

Working with GET
Parameters can be passed as part of URL with GET e.g. http://server.com/getUser?fname=susan&lname=hank

Working with POST (sending JSON object, sending DOM)
With POST send() method can have a Document, DOM string, JSON string or any simple text string.

◆ A new instance of XMLHttpRequest object needs to be created for each new request. This is so because once readyState gets changed it is not reset to 0.
◆ Some browsers don't implement no argument send() method. So it would be better to pass 'null' if there is nothing to pass.

3. XMLHttpRequest Explained

XMLHttpRequest has the following methods

MethodDescription
abort()Aborts the current request
getAllResponseHeaders()Returns all of the HTTP headers as a string
getResponseHeader( headerName )Returns the specific value of the given HTTP header.
open( method, URL, async, userName, password )Opens a connection to the given URL using the given Method.
URL - The URL that you wish to connect to.
method - The HTTP method of which you wish to communicate by.
Possible Methods:
  • GET - most common
  • POST
  • HEAD
  • PUT
  • DELETE - least common
async - whether or not the connection should be asynchronous. For Ajax this is always true.
userName - username IF login is required
password - password IF login is required
send( content )Sends the request to the url in the open function. Content is any information that you wish to send to the server. This is typically null but depends on the method specified in the open function.
setRequestHeader( key, value )Adds a key-value pair to the HTTP header to be sent.

XMLHttpRequest has the following properties

PropertyDescription
onreadystatechangeA reference to an event handler for an event that triggers everytime the object changes state.
readyStateReturns the state of the object as follows:
  • 0 = uninitialized
  • 1 = open
  • 2 = sent
  • 3 = receiving
  • 4 = ready
responseTextThe response from the server contained in a single string.
responseXMLThe response from the server in XML format.
statusThe HTTP status code as a number
statusTextThe HTTP status as a string, ex: "Not Okay" or "Ok"

4. Interface of XMLHttpRequest object

XMLHttpRequest object is the implementation of interface provided by scripting engine as specified by W3C. Below is the interface


[NoInterfaceObject]
interface XMLHttpRequestEventTarget : EventTarget {
// for future use
};

[Constructor]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
// event handler attributes
attribute Function onreadystatechange;

// states
const unsigned short UNSENT = 0;
const unsigned short OPENED = 1;
const unsigned short HEADERS_RECEIVED = 2;
const unsigned short LOADING = 3;
const unsigned short DONE = 4;
readonly attribute unsigned short readyState;

// request
void open(DOMString method, DOMString url);
void open(DOMString method, DOMString url, boolean async);
void open(DOMString method, DOMString url, boolean async, DOMString? user);
void open(DOMString method, DOMString url, boolean async, DOMString? user, DOMString? password);
void setRequestHeader(DOMString header, DOMString value);
void send();
void send(Document data);
void send([AllowAny] DOMString? data);
void abort();

// response
readonly attribute unsigned short status;
readonly attribute DOMString statusText;
DOMString getResponseHeader(DOMString header);
DOMString getAllResponseHeaders();
readonly attribute DOMString responseText;
readonly attribute Document responseXML;
};


More information is provided by the W3C at http://www.w3.org/TR/XMLHttpRequest/

Friday, October 30, 2009

How to log Hibernate SQLs and parameters ?

These configs are handy to log Hibernate SQLs and parameters using log4j.

log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.bind=DEBUG

log4j.logger.org.hibernate.pretty=DEBUG
log4j.additivity.org.hibernate.SQL=true (optional)

Sunday, October 18, 2009

Practical Approach to Google's AdWords

These steps can be helpful in deciding best strategy for online Ad campaign using Google's AdWords.
  1. Find out your target customers and do customer segmentation.

  2. Coin proper keywords combination focusing on target segment. Choosing right keywords is most essential part of Ad campaign.

  3. Next step comes of refining chosen keywords and controlling the behavior of display of Ad in search results by using various options to define your keywords.
    • So once you have a number of alternative keyword combinations, go for that which is closest to your products/services.
    • Use quotes, brackets, exclamation mark (to negate words) to control display of Ad in search results.
  1. A realistic budget can be set on monthly basis so that you don't run out of advertising money if there are unexpectedly very high number of hits.

  2. A regular monitoring of ad campaign is necessary. You should do data mining to find out "customer conversion rates", "expense vs returns".

  3. Localization is very useful in targeting perspective customers having higher possibility of conversion. For example if your products/services are physically present only in certain cities or areas you should localize your Ads to these places only. This can save you ton of money by avoiding unnecessary hits from people outside of your focus area.

  4. Create specifically designed landing pages tied up with the Ad. Sending visitors to homepage can leave them lost in piles of information.

  5. Ad campaign can be outsourced to SEO companies for better returns. These companies have experts of this field. They properly launch, design, refresh and monitor Ad campaigns.

  6. There is a risk factor with AdWords. You may loose your money without return if any computer generated program hits your Ad. Money may be returned by Google in such cases if it had been proved but there would be additional pain in claiming your money back.

  7. If your business is very new of its kind and most of the people don't know about it, AdWords may not be the right choice for you. People generally avoid clicking on Ads in such a case. Traditional ways of promoting productions/services may be better choice to go with.



Saturday, August 01, 2009

Embed Code in Blog and Webpages with Syntax Highlighting

Ever wondered how one can embed code in blogs and web pages with language specific highlighting? Let's hit ground directly. It is a cakewalk by using js based open source Syntax Highlighter developed by Alex Gorbatchev.

Here We'll talk about embedding code with language specific syntax highlighting in blogger/blogspot. But it is pretty straight forward to do the same in any web page.

Setup Syntax Highlighter for Blogger
  1. Open template layout for editing in 'Edit Html' mode.
  2. Add following lines of code in head section (just before closing head tag </head>)
  3. <!-- Adding Syntax Highlighter -->

    <link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css">
    <link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css">
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>

    <!-- language specific brushes (js files) go here -->
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'/>

    <!-- Adding Syntax Highlighter Ends Here -->
    //enabling syntax highlighter for blogger
    <script type='text/javascript'>
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.all();
    </script>
  4. Save template and you are done with setting up syntax highlighter for your blogger!
Writing Post with Syntax Highlighting
Open editor in "Edit Html" mode and wrap code in language specific pre tags
  1. SQL Example

    <pre class="brush:sql">
    CREATE TABLE login_detail(user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    user_type VARCHAR(10),
    active CHAR(1) NOT NULL DEFAULT 'Y');
    </pre>

  2. Result:
    CREATE TABLE login_detail(user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    user_type VARCHAR(10),
    active CHAR(1) NOT NULL DEFAULT 'Y');
  3. Javascript Example

    <pre class="brush:js">
    <script type="text/javascript">
    // The Vehicle class
    Vehicle={
    wheels:2,
    setWheels:function(x){
    this.wheels=x
    },
    getWheels:function(x){
    return this.wheels
    }
    };
    </script>
    </pre>

    Result:





** Don't forget doing HTML encoding of text for getting properly formatted HTML.
HTML Encoder 1
HTML Encoder 2

Friday, January 23, 2009

Remote Debugging - SunOne+Eclipse


In server.xml ( for my installation it is at /opt/jsws70/https-<user>/config/server.xml )

1. Set debug option under jvm to true.
<debug>true</debug>

2. Set the port on which debugging to be enabled
<debug-jvm-options>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<desired port></debug-jvm-options>

3. Now for Eclipse configuration, go to debug configuration. Use server name or IP and in the port option, put the same port that you have set in server.xml <desired-port>

4. If you need more detail, please follow steps in Remote Debugging - Tomcat+Eclipse

Friday, January 16, 2009

Remote Debugging - Tomcat + Eclipse

I am assuming that you have setup Tomcat by exploding its zip distribution. Windows installer distribution of Tomcat doesn't contain all config and script files including catalina.bat or catalina.sh . I used
- Tomcat 6.0.18
- Eclipse 3.4

- Windows XP


Tomcat Configuration
  1. Go to CATALINA_HOME\bin and edit catalina.bat in any editor, say Notepad++ . Here CATALINA_HOME is your tomcat installation directory. For me it is C:\Tomcat6.0 .
  2. Find JPDA_TRANSPORT and set it as JPDA_TRANSPORT=dt_socket .
  3. Find JPDA_ADDRESS and set it as JPDA_ADDRESS=8000 (you can use any unused port).
  4. Check if port specified is not being already being used; by executing "netstat" at command prompt. Check list of local ports.
  5. Save your changes.
  6. Start your server in debug mode by hitting "catalina jpda start". You may like to add CATALINA_HOME\bin in you PATH environment variable.
Eclipse Configuration
  1. Click on green beetle -> debug configurations...
  2. At Remote Java Application, click new and configure the settings.
  3. Give a name to this debug configuration (homebase-tomcat for me).
  4. Type localhost at Host or any name you have given to you localhost, mapped to 127.0.0.1 in hosts file (localhost.mlbam.com for me).
  5. Type 8000 as the port. Please note that the port must be the same with the JPDA_ADDRESS in catalina.bat file.
  6. Browse the project that you would like to debug.
  7. Click on debug button.

Debugging
  1. Go to your code and put breakpoints by double clicking on the left panel, wherever you want to debug.
  2. Hit your server by opening pages, where you want to debug, in browser.
  3. You will see eclipse switches to debug perspective and debug control flow stops at first breakpoint on the way.
  4. Use following eclipse shortcuts to proceed debugging
  • F5 - Step into (you may like to go inside any method on the way)
  • F6 - Step over (line by line)
  • F7 - Step return (coming out back after going down into a call hierarchy)
  • F8 - Resume debugging (breakpoint to breakpoint)
  1. Use terminate and disconnect buttons to stop debugging
You all set to play with debugging!!

Monday, January 12, 2009

Joomla Vs Drupal

Here I'll try to compare two hottest PHP based content management system Joomla and Drupal, based on some prevailing factors, and my experience while working/evaluating Joomla and Drupal.

Joomla

Excels at:
  1. Eye candy themes and templates
  2. Great at functionalities
  3. Shopping Cart - Virtumart and OSCommerce
  4. Huge library of free/commercial extensions
  5. Events & Calendar - good support
  6. Document Management - Promising DocMan extension
  7. Excelent web admin interface
Under performs at:
  1. Architecture is poor
  2. No Multi-site management support (Separate installation for each site)
  3. Poor in standard's compliance
  4. SEO - You may hit your head against wall to make it working
Drupal

Excels at:

  1. Multi-Site Management
  2. Standard's Compliance
  3. Architecture - Very good
  4. SEO - Supports well (Search engine friendly pages)
  5. Better Documentation
  6. Internationalization (using i18n module)
  7. SSL Compatible
Under performs at:
  1. Themes and Templates - are very simple not eye candy
  2. Shopping Cart - addon is not as good (seems good option Ubercart )
  3. Event & Calendars - not great
  4. Document Management - nothing like DocMan in Joomla
Conclusion

Joomla as a CMS appears to excel in elements that can be identified as functional, while Drupal succeeds in the architectural elements. Which element is more important in a CMS, architecture or function? According to Deane Barker he believes it is more important for a CMS to have better architecture.

As a developer with the capability to write code, I find myself much more concerned with architectural matters. Functionality can be programmed, but I’m at the mercy of architecture. Put another way, give me the right tools and materials, and I can build anything. But give me nothing but a pile of sand and a toothbrush, and I’m pretty much screwed.

In other words, if you agree with Barker that architecture is more important than function you're likely going to want to choose Drupal. However, if you need to make a quick sell where function, third party integration, and eye candy is important right out the box... Joomla still has the advantage.

Learnig Curve - Joomla has relatively shallow learning curve. It is one of the very easiest CMS systems to learn and customize but you may find some mess at coding level. Drupal has a little steeper than Joomla, but still relatively easy to learn.

Reference:

http://www.alledia.com/blog/general-cms-issues/joomla-and-drupal-%11-which-one-is-right-for-you
http://cmsreport.com/node/543
http://kb.siteground.com/article/CMS_application_comparison_Joomla_vs_Drupal.html

Thursday, February 14, 2008

तेरे आने का शुक्रिया !

गिराते नहीं अगर तुम, तो मैं क्यों बनाता ये मंजिलें,
ऐ वक्त तेरा चोट देते जाने का शुक्रिया;

भुझाते नहीं अगर तुम, तो मैं क्यों जलाता ये दीये,
आँधियों मेरी महफ़िल में आने का शुक्रिया;

भीगाते नही अगर तुम, तो मैं क्यों बनाता ये छतरियाँ,
बादलों मेरे घर में बरसने का शुक्रिया;

आती नहीं अगर तुम, तो मैं क्यों बनाता ये सीढियां,
दीवारों मेरी राह में आने का शुक्रिया;

टूटते नहीं अगर तुम, तो मैं क्यों सजाता ये शमां,
ऐ ख्वाब मेरी जिंदगी में आने का शुक्रिया!

- यदु 'पगु'

Shimla Trip

Wednesday, October 03, 2007

Page Rank - How Search Engines Rank Web Pages?

Search for anything using your favorite crawler-based search engine. Nearly instantly, the search engine will sort through the millions of pages it knows about and present you with ones that match your topic. The matches will even be ranked, so that the most relevant ones come first.

Of course, the search engines don't always get it right. Non-relevant pages make it through, and sometimes it may take a little more digging to find what you are looking for. But, by and large, search engines do an amazing job.

As WebCrawler founder Brian Pinkerton puts it, "Imagine walking up to a librarian and saying, 'travel.' They’re going to look at you with a blank face."

OK -- a librarian's not really going to stare at you with a vacant expression. Instead, they're going to ask you questions to better understand what you are looking for.

Unfortunately, search engines don't have the ability to ask a few questions to focus your search, as a librarian can. They also can't rely on judgment and past experience to rank web pages, in the way humans can.

So, how do crawler-based search engines go about determining relevancy, when confronted with hundreds of millions of web pages to sort through? They follow a set of rules, known as an algorithm. Exactly how a particular search engine's algorithm works is a closely-kept trade secret. However, all major search engines follow the general rules below.

Location, Location, Location...and Frequency

One of the the main rules in a ranking algorithm involves the location and frequency of keywords on a web page. Call it the location/frequency method, for short.

Remember the librarian mentioned above? They need to find books to match your request of "travel," so it makes sense that they first look at books with travel in the title. Search engines operate the same way. Pages with the search terms appearing in the HTML title tag are often assumed to be more relevant than others to the topic.

Search engines will also check to see if the search keywords appear near the top of a web page, such as in the headline or in the first few paragraphs of text. They assume that any page relevant to the topic will mention those words right from the beginning.

Frequency is the other major factor in how search engines determine relevancy. A search engine will analyze how often keywords appear in relation to other words in a web page. Those with a higher frequency are often deemed more relevant than other web pages.

Spice In The Recipe

Now it's time to qualify the location/frequency method described above. All the major search engines follow it to some degree, in the same way cooks may follow a standard chili recipe. But cooks like to add their own secret ingredients. In the same way, search engines add spice to the location/frequency method. Nobody does it exactly the same, which is one reason why the same search on different search engines produces different results.

To begin with, some search engines index more web pages than others. Some search engines also index web pages more often than others. The result is that no search engine has the exact same collection of web pages to search through. That naturally produces differences, when comparing their results.

Search engines may also penalize pages or exclude them from the index, if they detect search engine "spamming." An example is when a word is repeated hundreds of times on a page, to increase the frequency and propel the page higher in the listings. Search engines watch for common spamming methods in a variety of ways, including following up on complaints from their users.

Off The Page Factors

Crawler-based search engines have plenty of experience now with webmasters who constantly rewrite their web pages in an attempt to gain better rankings. Some sophisticated webmasters may even go to great lengths to "reverse engineer" the location/frequency systems used by a particular search engine. Because of this, all major search engines now also make use of "off the page" ranking criteria.

Off the page factors are those that a webmasters cannot easily influence. Chief among these is link analysis. By analyzing how pages link to each other, a search engine can both determine what a page is about and whether that page is deemed to be "important" and thus deserving of a ranking boost. In addition, sophisticated techniques are used to screen out attempts by webmasters to build "artificial" links designed to boost their rankings.

Another off the page factor is clickthrough measurement. In short, this means that a search engine may watch what results someone selects for a particular search, then eventually drop high-ranking pages that aren't attracting clicks, while promoting lower-ranking pages that do pull in visitors. As with link analysis, systems are used to compensate for artificial links generated by eager webmasters.

Tuesday, January 09, 2007

Enjoy the coffee...

A group of alumni, highly established in their careers, got together to visit their old university professor.

Conversation soon turned into complaints about stress in work and life . Offering his guests coffee, the professor went to the kitchen and returned with a large pot of coffee and an assortment of cups--porcelain, plastic, glass, crystal; some plain looking, some expensive, some exquisite --telling them to help themselves to the coffee.

When all the students had a cup of coffee in hand, the professor said: "If you noticed, all the nice looking expensive cups were taken up, leaving behind the plain and cheap ones. While it is but normal for you to want only the best for yourselves, that is the source of your problems and stress.

"What all of you really wanted was coffee, not the cup, but you consciously went for the best cups and were eyeing each other's cups.



Now consider this:
Life is the coffee, and the jobs, money and position in society are the cups.


They are just tools to hold and contain Life, and do not change the quality of Life. Sometimes, by concentrating only on the cup, we fail to enjoy the coffee God has provided .

"So, don't let the cups drive you .... enjoy the coffee instead ."

Wednesday, December 06, 2006

How to remove yahoo messenger worm ?

Promblem:

If your yahoo messenger is affected by this worm it will send the nsl-school.org url (and other different urls) to all of your friend list in yahoo messenger using your ID . So with in few hours many of your friends will get infected with it if they click on any of these links.

I don't know the actual target of the idiot who created it. May be to advertise his site or to steal very imp data from your computer. I resolved the problem manually from 2 infected PC's. Just go through the below steps carefully.

What are those links ?

Nsl-school.org and other (Do not open this url in your browser).

After effects ?

1: It sets your default IE page to nsl-school.org, you can’t even change it back to other page. If you open IE from your comp some malicious code will automatically executed into your computer.

2: It will disables the Task manager / reg edit. So you can’t kill the malicious processes anymore.

3: Files that are gonaa installed by this virus are svhost.exe , svhost32.exe , internat.exe, enet.exe.

you can find these files in windows/ & temp/ directories.

4: It may send the secured & protected information to attacker.


Manual Removal:

1: Close the IE browser. Log out messenger / Remove Internet Cable.

2: To enable Regedit

Click Start, Run and type this command exactly as given below: (better - Copy and paste)

REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f

3: To enable task manager : (To kill the process we need to enable task manager)

Click Start, Run and type this command exactly as given below: (better - Copy and paste)

REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 0 /f

4: Now we need to change the default page of IE though regedit.

Start>Run>Regedit

From the below locations in Regedit chage your default home page to google.com or other.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main

HKEY_ LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main

HKEY_USERS\Default\Software\Microsoft\Internet Explorer\Main

Just replace the attacker site with google.com or set it to blank page.

5: Now we need to kill the process from back end. Press Ctrl + Alt + Del

Kill the process svhost32.exe . ( may be more than one process is running.. check properly)

6: Delete svhost32.exe , svhost.exe files from Windows/ & temp/ directories. Or just search for svhost in your comp.. delete those files.

7: Go to regedit search for svhost and delete all the results you get.

Start menu > Run > Regedit >

8: Restart the computer. That’s it now you are virus free.


Removal Tools:

I did not use these tools. Please make sure that they are appropriate for the purpose.

1. http://hot_kool_mohnish.tripod.com/sitebuildercontent/sitebuilderfiles/svhost32-removal.zip

2. http://www.reloadedlabs.com/ymworm.htm

3. Following steps can be taken to remove worm from your system:

1) Download this file: http://avsharath.googlepages.com/RepairRegistry.reg (repairs your registry which is damaged by the worm)

2) Double click on that downloaded registry file, you will be asked wheather you're sure to add this to registry, click yes.
3) Restart your system.
4) Delete the file svhost32.exe from your Windows folder( If it is present).
5) Delete the file svhost.exe from your Windows folder( If it is present).
6) Lastly, search for: ENET.EXE and delete it if found.

Thursday, December 01, 2005

Million Dollar : hoax

I have been receiving variants of the mail below for last few months. It shows how Internet criminals are trying to make people fool. Their first objective is to get account number of targeted person and then he/she will left with nothing in his/her account...


Dear Singh,
I am Barrister Kofo Williams (ESQ) a Solicitor; I am the PersonalAttorney to one Engr. Michael Singh a national of your country, whoUsed to be a contractor with NNPC here in Nigeria.
On the 10th October 2002 my client, his wife and entire family wereinvolved in a car accident along 3rd mainland bridge Express Road LagosIsland. Unfortunately they all lost their lives in the event of theaccident,since then I have made several inquiries to their Embassy tolocate any of my clients extended relatives, this has also provedunsuccessful.
After these several Unsuccessful attempts, I decided to trace hisRelatives, to locate any member of His family but of no avail, hence Icontacted you since you bear the same surname to my late client. Icontact you to assist in repatriating the money in addition, propertyleft behind by my client before they get Confiscated or declaredUnserviceable by the bank where these huge deposits were lodged.
Particularly, the Bank where the deceased had an account valued atabout US$10 million dollars. Consequently, the bank issued me a noticeto provide the next of kin or have the account confiscated within thenext ten official working days. Since I have been Unsuccessful inlocating the relatives for over 2 years now, I seek your consent topresent you as the next of kin of the deceased, regardless of yourcountry, with your name/address; some vitals will be obtained on yourfavor which will back you as the next of kin to the deceased. Theproceeds of this account valued at US$10 Million dollars can be Paid toyou and then you and me can share like this 45% for me and 45% for you,while we will set aside 10% to pay back for any expenses or tax as yourgovernment may require. I have all necessary legal documents that canbe used to back up any claim we may make.
All I require is your honest cooperation to enable us seeing this dealthrough. I guarantee that this will be executed under a legitimatearrangement that will protect you from any breach of the law.
Please Reply urgently to enable us discuss further. Via this E-mailaddress:kofoschamber005@katamail.com
Best Regards,
Barrister Kofo Williams. (ESQ)