rp({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$georss":"http://www.georss.org/georss","id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761"},"updated":{"$t":"2009-11-21T02:21:08.521+05:30"},"title":{"type":"text","$t":"Technical Essentials"},"subtitle":{"type":"html","$t":"Counter Strike 1.6, Linux, Modems/Routers, \nBSD, Windows-xp Tweaks and Commands, \nWeb Servers, Programming,\nMusic Downloads,Search Engines, SEO, Hardware"},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/posts/default"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default?alt\u003djson-in-script\u0026orderby\u003dpublished"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"},{"rel":"next","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default?alt\u003djson-in-script\u0026start-index\u003d26\u0026max-results\u003d25\u0026orderby\u003dpublished"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"119"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"25"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-2140747431317891580"},"published":{"$t":"2009-08-25T19:11:00.003+05:30"},"updated":{"$t":"2009-08-25T20:20:18.272+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"webserver"},{"scheme":"http://www.blogger.com/atom/ns#","term":"apache"}],"title":{"type":"text","$t":"Installing mod_ssl on apache: X.509,Certificate Authority,digital signatures explained"},"content":{"type":"html","$t":"If you want to secure connection to a resource on your apache web-server by using public key encryption technique then you can add the mod_ssl module into the apache web-server for that purpose.\u003cbr /\u003e\u003cbr /\u003eHere are the list of things that are explained in this tutorial:-\u003cbr /\u003e\u003col style\u003d\"font-weight: bold;\"\u003e\u003cli\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#installing\"\u003eInstalling OpenSSL\u003cbr /\u003e\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#pkes\"\u003ePublic key encryption standard.\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#cads\"\u003e Certificate Signing Authority(CA) and Digital Signatures\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#x.509\"\u003eCreating the Digital Certificate.\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#certificate\"\u003eInstalling the certificate's and keys in proper directory\u003cbr /\u003e\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#apache\"\u003eSetting up the apache configuration(httpd.conf)\u003cbr /\u003e\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#testing\"\u003eTesting the configuration \u003c/a\u003e\u003c/li\u003e\u003c/ol\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#installing\"\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/a\u003e\u003cp id\u003d\"installing\"\u003e1.Installing OpenSSL\u003cbr /\u003e\u003cbr /\u003eThe apache web server comes now bundled with  and mod_ssl module.You can directly download the version 2.13 of apache web server from \u003ca href\u003d\"http://httpd.apache.org/download.cgi\" target\u003d\"_blank\"\u003ethis link.\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003eWe need OpenSSL for producing digital certificates and what are these will be examined later on.\u003cbr /\u003e\u003cbr /\u003eJust open and run the installer and after you have done that proceed to the second step and note that you may also need to download the OpenSSL module seperately for windows and also need to have the visual C++ modules for it to run. You can download these from \u003ca href\u003d\"http://www.openssl.org/related/binaries.html\" target\u003d\"_blank\"\u003ethis link\u003c/a\u003e.\u003cbr /\u003e\u003c/p\u003e\u003cbr /\u003e\u003cp id\u003d\"pkes\"\u003e 2.\u003cspan style\u003d\"font-weight: bold;\"\u003ePublic key encryption standard:\u003c/span\u003e The public key encryption in short works as follows:-\u003cbr /\u003e\u003cbr /\u003eThe Server generates a secret private key that is used for encrypting the contents and also generates a corresponding public key that is forwarded to the Client which is used to decrypt the contents of the message.\u003cbr /\u003e\u003cbr /\u003eThe client's on the other hand sends its private information by encrypting it with the server's public key so that only the server is able to decrypt the contents, as it is presumed that only the server is in possession of the private key.\u003c/p\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cp id\u003d\"cads\"\u003e3.\u003cspan style\u003d\"font-weight: bold;\"\u003e Certificate Signing Authority(CA) and Digital Signatures\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eThe only problem with the previous scheme was that the client cannot be sure that the sender is who he claims to be and this is where a CA comes in as it is responsible for verifying the details of the sender and issuing the  \u003cspan style\u003d\"font-weight: bold;\"\u003eX.509 digital certificate \u003c/span\u003eto it. The X.509 digital certificate contains the sender's public key and the hashed data about the CA itself which is encrypted using its  private key (The hashed data encrypted using CA'S key serves as Digital signature of the CA) which is send back to the sender.\u003cbr /\u003e\u003cbr /\u003eThe sender (server), when sending information to the client may choose to encrypt the entire contents or just calculate an SHA-1 hash and encrypt it using it's private key and sends the X.509 digital certificate it obtained from the CA along with this.\u003cbr /\u003e\u003cbr /\u003eThere are many well known certificate authorities such as Verisign etc whose certificates are not to be signed by any authority as they are the root certificate authorities and there certificates already come pre-installed in the browsers like Firefox, Internet Explorer etc. you can view them in mozilla firefox by going to \u003cspan style\u003d\"font-weight: bold;\"\u003eTools-\u003eOptions-\u003eAdvanced-\u003e Encyption\u003c/span\u003e and then choosing \u003cspan style\u003d\"font-weight: bold;\"\u003eView Certificates\u003c/span\u003e.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eOn the client side\u003c/span\u003e firstly the \u003cspan style\u003d\"font-weight: bold;\"\u003ex.509 digital certificate\u003c/span\u003e is verified by using the CA's public key (stored in the browser in the CA certificate public key info) and decrypting the hash sent in the x.509 digital certificate and comparing  it with the hash that is calculated over the rest of the x.509 digital certificate that was sent. If these hash values match then client can be sure that this certificate really was signed by the CA and hence can be sure of the server that is sending the data because it was signed by the CA. The client then can decrypt the contents of the message by using the public key found in the x.509 digital certificate.\u003cbr /\u003e\u003cbr /\u003eThis trusted third party scheme is secure because case the sender(server) loses its private key then it can ask the CA to revoke its certificate and this can ensure that no one else can pretend to be the sender.\u003cbr /\u003e\u003cbr /\u003eIt may happen that once in a while you may encounter that if you are viewing a site in mozilla you may encounter that mozilla displays you a warning message as shown below which warns you that you may be at risk viewing the website, this happens only due to the fact that the certificate may be self-signed by the server or a CA not known to the browser and therefore the authenticity of the sender cannot be known and hence you should avoid sending personal details to a web server like that.However, if you do trust the server you can click on proceed and this leads to saving of the CA certificate of the server's CA on your browser and then you can view the certificate as mentioned above. In our sample installation we are going to create our own CA and we are going to sign that certificate signing request to produce a X.509 digital certificate.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca target\u003d\"_blank\" onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg4Z4vwiI/AAAAAAAAAUU/egMyG00UbY8/s1600-h/Untrusted_CA.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 283px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg4Z4vwiI/AAAAAAAAAUU/egMyG00UbY8/s400/Untrusted_CA.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5373886040009327138\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/p\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eI hope this was informational enough theory and now we can really proceed with the installation of mod_ssl on apache.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cp id\u003d\"x.509\"\u003e4.\u003cspan style\u003d\"font-weight: bold;\"\u003eCreating the x.509 digital certificate\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eTo create the digital certificate we have to do the 5 following steps:-\u003cbr /\u003e\u003c/p\u003e\u003col\u003e\u003cli\u003eGenerate the Server's Private and Public key\u003cbr /\u003e\u003c/li\u003e\u003cli\u003eGenerate the CA's Private and Public key\u003c/li\u003e\u003cli\u003eGenerate the CA's x.509 Digital Certificate (Self-Signed)\u003c/li\u003e\u003cli\u003eGenerate the Server's Certificate Signing Request\u003c/li\u003e\u003cli\u003eCA signing the certificate signing request\u003c/li\u003e\u003c/ol\u003e\u003col\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e\u003cli\u003eGenerate the Server's Private and Public key:-\u003c/li\u003e\u003c/span\u003e\u003cbr /\u003eTo generate the server's private key execute the following command in the directory above the directory that contains the OpenSSL module which in windows would be (if you have installed it using the windows binary) \"C:\\OpenSSL\\bin\" :-\u003cbr /\u003e\u003cblockquote\u003e openssl genrsa -out server.key 1024\u003c/blockquote\u003e\u003cbr /\u003eThis command produces an private rsa key of 1024 bits long and you do not have to create a separate public key. You can choose to encrypt these key by adding -des3 oprion after the genrsa option which will encrypt this key by using 3-DES symmetric encryption standard.\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eGenerate the CA's Private and Public key:-\u003c/span\u003e\u003cbr /\u003eRepeat the same step as  above and generate the private key for the CA and also encrypt this key. You will be asked for the pass-phrase for the key that would be required in case you want to use that key. Now execute the following command.\u003cbr /\u003e\u003cblockquote\u003e\u003cbr /\u003eopenssl genrsa -des3 -out CA.key 1024\u003c/blockquote\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eGenerate the CA's x.509 Digital Certificate (Self-Signed)\u003c/span\u003e:-\u003cbr /\u003eExecute the following command to generate a self signed x.509 digital certificate.\u003cbr /\u003e\u003cblockquote\u003eopenssl req -new -x509 -key CA.key -out cacert.pem -days 1095\u003c/blockquote\u003e\u003cbr /\u003eWhen you execute this command you would be asked for the pass-phrase of the key which you entered in the previous step so enter it and fill in the details asked for.\u003cbr /\u003eThis command produces a self signed certificate(cacert.pem) using the encrypted rsa key CA.key with validity of 1095 days.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eGenerate the Server's Certificate Signing Request\u003c/span\u003e:-\u003cbr /\u003eNow execute the following command to generate the server's certificate signing request (CSR).\u003cbr /\u003e\u003cblockquote\u003eopenssl req -new -key server.key -out server.csr \u003c/blockquote\u003e\u003cbr /\u003eEnter the details as requested and this will produce the csr that is sent to real CA authorities but in our case we are our own CA so we'll sign the certificate on our own.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eCA signing the certificate signing request:-\u003c/span\u003e\u003cbr /\u003eThis command when executed will sign the certificate request server.csr to produce a x.509 digital certificate signed by our own CA.\u003cbr /\u003e\u003cblockquote\u003eopenssl x509 -CA cacert.pem -CAkey CA.key -in server.csr -req -days 365 -out server.crt -CAcreateserial\u003cbr /\u003e\u003c/blockquote\u003e\u003cbr /\u003eThis command signs the certificate signing request and note that the last option(CAcreateserial)is required because there has to be a serial file server.crl for CA to sign the certificate and is required only the first time.\u003c/li\u003e\u003c/ol\u003e\u003cp id\u003d\"certificate\"\u003e 5.\u003cspan style\u003d\"font-weight: bold;\"\u003eInstalling the certificate's and keys in proper directory:-\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eThe certificate's and the key files should be installed anywhere outside the web root directory of apache like a directory c:/secret and placed in that directory. The certificate's should be installed outside of the directory because they are inaccessible to visitor of your site.\u003c/p\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cp id\u003d\"apache\"\u003e6.\u003cspan style\u003d\"font-weight: bold;\"\u003eSetting up the Apache configuration(httpd.conf):-\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eThere are many mod_ssl  directives that you can implement i am just going to discuss some basic ones for more information there is an excellent tutorial available at this link \u003ca href\u003d\"http://www.modssl.org/docs/\" target\u003d\"_blank\"\u003ewww.modssl.org\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eHere's the sample configuration\u003cbr /\u003e\u003cbr /\u003eFew of the mod_ssl directives:-\u003cbr /\u003e\u003c/p\u003e\u003col\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSSLEngine on/off\u003c/span\u003e  :- This is the basic directive which enables or disables the ssl on apache. Prior to version 2 of apache this was called as SSLEnable /SSLDisable.\u003cbr /\u003e\u003c/li\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSSLCertificateFile\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003eserver_cert_file\u003c/span\u003e :- This specifies the certificate file for the server ie the server's x.509 digital certificate. Use /for absolute path or dir-name/file for the relative directory under the apache directory. In this case server.cert .\u003cbr /\u003e\u003c/li\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSSLCertificateKeyFile server_key_file\u003c/span\u003e :-This specifies the private key file for the certificate file. In this case server.key .\u003c/li\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSSLCACertificateFile ca_cert\u003c/span\u003e_\u003cspan style\u003d\"font-weight: bold;\"\u003efile\u003c/span\u003e:- This specifies the certificate file of the CA  ie the CA's self signed x.509 digital certificate. Use /for absolute path or dir-name/file for the relative directory under the apache directory. In this case cacert.pem  .\u003c/li\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSSLRequireSSL\u003c/span\u003e:- This forbids access to resource unless http over ssl is enabled for the current active connection. \u003c/li\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSSLProtocol (SSLv2,SSLv3,TLSv1,All)\u003c/span\u003e:- By default all the protocols are enabled.You can disable a particular protocol like this: SSLProtocol all -TLSv1 which disables the Transport layer security protocol v1.\u003c/li\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSSLSessionCacheTimeout\u003c/span\u003e time_in_sec:- This sets the time in seconds till which the session key will be cached locally after which the key will be changed.\u003cbr /\u003e\u003c/li\u003e\u003c/ol\u003eNow you have to setup a virtual host for which http over ssl i.e https would be enabled.\u003cbr /\u003eYou can create a named host or a host based on ip address. In this we are going to setup the ip based virtual host.\u003cbr /\u003e\u003cbr /\u003eThen we have to add the AddType directives so that apache recognizes the certificate files and their extensions. We will be adding the following two directives:\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eAddType application/x-x509-ca-cert .crt\u003c/span\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e AddType application/x-pkcs7-crl    .crl\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eFrom the code box below just copy and paste the code into the httpd.conf.\u003cbr /\u003e\u003cbr /\u003eBut before that you would have to enable the mod_ssl module in the httpd.conf. To do that just open the httpd.conf and scroll down to the LoadModule directives and find one with the name \u003cspan style\u003d\"font-weight: bold;\"\u003emod_ssl \u003c/span\u003eand remove the # comment from before it as shown in the following figure.\u003cbr /\u003e\u003cbr /\u003e\u003ca target\u003d\"_blank\" onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg34-ZCeI/AAAAAAAAAUM/KQc_1Jii1ys/s1600-h/mod_ssl.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 355px; height: 28px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg34-ZCeI/AAAAAAAAAUM/KQc_1Jii1ys/s400/mod_ssl.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5373886031174633954\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eFrom the code box below just copy and paste the code into the httpd.conf\u003cbr /\u003e\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width: 400px; height: 300px;\"\u003e\u003cbr /\u003e\u003cblockquote\u003e\u003cp\u003e\u003cbr /\u003e##############################################\u003cbr /\u003e############# mod_ssl configuration ############\u003cbr /\u003eAddType application/x-x509-ca-cert .crt\u003cbr /\u003eAddType application/x-pkcs7-crl    .crl\u003cbr /\u003eSSLEngine off\u003cbr /\u003e#change this to directory where your certificate's are installed\u003cbr /\u003eSSLCertificateFile conf/server.cert\u003cbr /\u003eSSLCertificateKeyFile conf/server.key\u003cbr /\u003eSSLCACertificateFile conf/cacert.pem\u003cbr /\u003e#set the server to listen on port 8080\u003cbr /\u003eListen 127.0.0.1:8080\u003cbr /\u003e\u0026lt;VirtualHost 127.0.0.1:8080\u0026gt;\u003cbr /\u003e#enable ssl engine for port 8080\u003cbr /\u003eSSLEngine on\u003cbr /\u003eSSLSessionCacheTimeout 300\u003cbr /\u003eSSLProtocol SSLv3\u003cbr /\u003e# here you can setup access to directories and authentication\u003cbr /\u003e# by using the \u0026lt;directory dir_name\u003d\"\"\u0026gt; directive and AuthType,AuthName,etc\u003cbr /\u003e##############################################\u003cbr /\u003e############# end mod_ssl conf ###############\u003cbr /\u003e\u0026lt;/VirtualHost\u0026gt;\u003c/p\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/div\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cp id\u003d\"testing\"\u003e7. \u003cspan style\u003d\"font-weight: bold;\"\u003eTesting the configuration:\u003c/span\u003eNow all you have to do is just open the browser and type in the url \u003cspan style\u003d\"font-weight: bold;\"\u003ehttps://localhost:8080\u003c/span\u003e and after which you will be displayed with a warning message by your browser as was mentioned before. The warning message look like the following in Mozilla Firefox.\u003cbr /\u003e\u003cbr /\u003e\u003ca target\u003d\"_blank\" onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg4Z4vwiI/AAAAAAAAAUU/egMyG00UbY8/s1600-h/Untrusted_CA.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 283px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg4Z4vwiI/AAAAAAAAAUU/egMyG00UbY8/s400/Untrusted_CA.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5373886040009327138\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/p\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eYou should add an exception for this after which the browser will download the CA certificate and you should see default apache web server page if successful. In mozilla certificate details can be seen by clicking on the navigation bar as shown below.\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg4lLmlKI/AAAAAAAAAUc/DLWLeBBPnGA/s1600-h/success.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 210px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg4lLmlKI/AAAAAAAAAUc/DLWLeBBPnGA/s400/success.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5373886043041207458\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eThis is about it now we have set up and tested the SSL over http and hope this tutorial was helpful in making you understand the concept behind digital certificates(X.509) public key encryption standard and setting up mod_ssl on your apache installation.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-2140747431317891580?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/2140747431317891580/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2140747431317891580"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2140747431317891580"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/08/installing-modssl-on-apache.html","title":"Installing mod_ssl on apache: X.509,Certificate Authority,digital signatures explained"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://2.bp.blogspot.com/_s4Oz51luJRA/SpPg4Z4vwiI/AAAAAAAAAUU/egMyG00UbY8/s72-c/Untrusted_CA.JPG","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-8643941571622271399"},"published":{"$t":"2009-08-24T17:50:00.007+05:30"},"updated":{"$t":"2009-08-24T19:23:54.876+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Virus"}],"title":{"type":"text","$t":"sysdate.exe:How to remove the trojan"},"content":{"type":"html","$t":"The sysdate.exe file is a trojan and it binds itself with the help of windows registry with the explorer.exe process.So that whenever you start the explorer.exe it starts alongwith it. It has various names like 604.exe,408.exe etc. The sysdate.exe process is stored in the recycle bin or the recycler folder which is hidden.\u003cbr /\u003e\u003cbr /\u003eTo heal your computer from the trojan follow these steps:-\u003cbr /\u003e\u003cbr /\u003e\u003col\u003e\u003cli\u003eThe first thing you need to do is empty your temp folder where this trojan maybe stored with different names like 604.exe etc. For this open the run prompt and type %temp% and delete all the executable files in that.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow you have to delete the actual sysdate.exe file and for that you will have to manually delete it from the RECYCLER folder but the folder is a hidden and system folder so you can not see it in the c drive. So just execute the attrib command with parameters -r -h -s  to remove the the attributes(r(Read-only) ,-h(Hidden) ,-s(System)).\u003cbr /\u003eTo do the aforementioned task, open the command prompt and type the following command.\u003cbr /\u003e\u003cblockquote\u003e \u003cp\u003e attrib -r -h -s C:/RECYCLER\u003cbr /\u003e\u003c/p\u003e\u003c/blockquote\u003e\u003cbr /\u003eAlso you have to repeat this step with the actual folder containing the sysdate.exe under the recycler folder. Execute the following command \u003cblockquote\u003e\u003cp\u003eattrib -r -h -s C:/RECYCLER /S-1-5-21-832453443-4443154761-431384085-6428\u003cbr /\u003e\u003c/p\u003e\u003c/blockquote\u003e\u003cbr /\u003eHere the folder name may vary because the trojan might be stored with a different folder name.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow actually to delete  the file sysdate.exe,  you would have to first kill the explorer.exe process from the task manager. Press ctrl+alt+del , Now from the processes tab select explorer.exe process and press delete key or click on end process. Now in the task-manager go to the file menu and select new task and then click on the browse button and navigate to the folder under the Recycler folder containing the file sysdate.exe and  Shift+Delete it. Now delete the Recycler folder as well, Don't worry the recycler folder will come back so there's no risk in deleting it.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SpKYy-AP1RI/AAAAAAAAAUE/mLOR-FNlCZg/s1600-h/taskmanager.JPG\" target\u003d\"_blank\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 261px;\" src\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SpKYy-AP1RI/AAAAAAAAAUE/mLOR-FNlCZg/s320/taskmanager.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5373525306811340050\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003eNow in the new task menu of task manager, type regedit and then navigate to the following key\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eHKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\u003c/span\u003e\u003cbr /\u003eNow from the right window pane delete the \u003cspan style\u003d\"font-weight: bold;\"\u003eTaskman\u003c/span\u003e key. Press F5 to check whether it reappears or not. If it does not then you would have successfully removed the trojan.\u003cbr /\u003e\u003cbr /\u003e\u003ca target\u003d\"_blank\" onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SpKYgKS2LLI/AAAAAAAAAT0/RF_nkmgK4xk/s1600-h/taskman.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 86px;\" src\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SpKYgKS2LLI/AAAAAAAAAT0/RF_nkmgK4xk/s320/taskman.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5373524983693061298\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003eNow navigate to the following registry key.\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eHKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\u003c/span\u003e\u003cbr /\u003eand modify the shell key by removing anything that follows the \u003cspan style\u003d\"font-weight: bold;\"\u003eexplorer.exe\u003c/span\u003e.\u003cbr /\u003e\u003cbr /\u003e\u003ca target\u003d\"_blank\" onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SpKYf0w1CpI/AAAAAAAAATs/_-l3CdpQhpw/s1600-h/shell.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 219px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SpKYf0w1CpI/AAAAAAAAATs/_-l3CdpQhpw/s320/shell.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5373524977913236114\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003eNow in the new task menu of task manager type explorer which will restart the explorer process and your system would be free from the trojan.\u003c/li\u003e\u003c/ol\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eAlternate Solution\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eThe attrib command can be skipped if you have a dual boot os then just mount the windows partition and delete the files under the recycler folder with ease.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eNote:\u003c/span\u003e It is always recommended before opening the external drive just open it under the command prompt and delete the autorun.inf file from it.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-8643941571622271399?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/8643941571622271399/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/08/sysdateexehow-to-remove-trojan.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/8643941571622271399"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/8643941571622271399"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/08/sysdateexehow-to-remove-trojan.html","title":"sysdate.exe:How to remove the trojan"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://3.bp.blogspot.com/_s4Oz51luJRA/SpKYy-AP1RI/AAAAAAAAAUE/mLOR-FNlCZg/s72-c/taskmanager.JPG","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-8761765865138090922"},"published":{"$t":"2009-08-16T18:03:00.001+05:30"},"updated":{"$t":"2009-08-20T10:40:41.948+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Counter Strike 1.6"}],"title":{"type":"text","$t":"Get 100fps in Counter Strike 1.6"},"content":{"type":"html","$t":"This tutorial provides you with tips on how to get a \u003cspan style\u003d\"font-weight: bold;\"\u003econsistent\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003e100fps\u003c/span\u003e or round about that.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003ePrerequisites:\u003c/span\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003ea graphics card external but it maybe the case that  an on-board card would suffice.I use \u003cspan style\u003d\"font-weight: bold;\"\u003envidia geforce\u003c/span\u003e 5200fx 8x agp(accelerated graphics port) slot card. It is pretty cheap and old technology as now pc's come with the pci express slot.\u003cbr /\u003e\u003c/li\u003e\u003cli\u003ea dsl connection \u003e256 kbits/sec: I am pretty sure people would have that much by now.\u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSettings \u003c/span\u003e:\u003cbr /\u003e\u003cbr /\u003e\u003col\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eGraphics card Setting\u003c/span\u003e:\u003c/li\u003e\u003c/ol\u003e\u003cul\u003e\u003cli\u003eI am displaying with examples of nvidia display driver you should have similar options in ati cards or any other gfx card.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eOk so \u003cspan style\u003d\"font-weight: bold;\"\u003efirst step\u003c/span\u003e is to open \u003cspan style\u003d\"font-weight: bold;\"\u003envidia control panel\u003c/span\u003e from nvidia icon in taskbar by right clicking on it and choosing \u003cspan style\u003d\"font-weight: bold;\"\u003envidia control panel\u003c/span\u003e. You can do the same by going to \u003cspan style\u003d\"font-weight: bold;\"\u003econtrol panel \u003c/span\u003eand opening it from there.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow Choose \u003cspan style\u003d\"font-weight: bold; font-style: italic;\"\u003e\"3d settings\"\u003c/span\u003e option from the nvidia control panel. After that choose \"\u003cspan style\u003d\"font-weight: bold;\"\u003eadjust image settings with preview\u003c/span\u003e\" don't worry if you don't find that option the important point is you have to edit \u003cspan style\u003d\"font-weight: bold;\"\u003e3d settings\u003c/span\u003e.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThen choose \u003cspan style\u003d\"font-weight: bold;\"\u003e\"use advanced 3d settings \"\u003c/span\u003e and \u003cspan style\u003d\"font-weight: bold;\"\u003eclick on\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003etake me there\u003c/span\u003e as shown in figure.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeDUlJfjSGI/AAAAAAAAAE4/-6UgcuCdOC4/s1600-h/gfx_image1.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 219px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeDUlJfjSGI/AAAAAAAAAE4/-6UgcuCdOC4/s400/gfx_image1.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5323488494220429410\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003eChoose \u003cspan style\u003d\"font-weight: bold;\"\u003eGlobal Settings\u003c/span\u003e tab and then choose \u003cspan style\u003d\"font-weight: bold;\"\u003etexture filtering\u003c/span\u003e option and select \u003cspan style\u003d\"font-weight: bold;\"\u003ehigh performance\u003c/span\u003e from drop down list as shown in the figure below. This option is most important as it will cause sharp rise in your fps.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SeDW-VXxt1I/AAAAAAAAAFA/HmsL-SLJsbg/s1600-h/gfx_image2.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 225px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SeDW-VXxt1I/AAAAAAAAAFA/HmsL-SLJsbg/s400/gfx_image2.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5323491125929031506\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003eNow choose \u003cspan style\u003d\"font-weight: bold;\"\u003eVertical sync option\u003c/span\u003e and select\u003cspan style\u003d\"font-weight: bold;\"\u003e force off \u003c/span\u003e,Also turn the \u003cspan style\u003d\"font-weight: bold;\"\u003eanisotropic filtering\u003c/span\u003e to \u003cspan style\u003d\"font-weight: bold;\"\u003eapplication controlled \u003c/span\u003e(as it is not allowed to be turned off in tournaments)\u003cspan style\u003d\"font-weight: bold;\"\u003e \u003c/span\u003eand \u003cspan style\u003d\"font-weight: bold;\"\u003eanti aliasing\u003c/span\u003e to \u003cspan style\u003d\"font-weight: bold;\"\u003eoff\u003c/span\u003e. One more thing if your graphics card is \u003cspan style\u003d\"font-weight: bold;\"\u003edual display card \u003c/span\u003ethen choose \u003cspan style\u003d\"font-weight: bold;\"\u003e hardware acceleration\u003c/span\u003e to \u003cspan style\u003d\"font-weight: bold;\"\u003esingle display performance mode.\u003c/span\u003e Apply these settings and move to game configuration part.\u003c/li\u003e\u003c/ul\u003e     2. \u003cspan style\u003d\"font-weight: bold;\"\u003eConfiguring Counter Strike/CS1.6\u003c/span\u003e :\u003cbr /\u003e\u003col\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eConfiguring start up options\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003eand launch parameters\u003c/span\u003e:\u003c/li\u003e\u003c/ol\u003e\u003cul\u003e\u003cli\u003eRight click on the shortcut to your game and select \u003cspan style\u003d\"font-weight: bold;\"\u003eproperties \u003c/span\u003ethen in the \u003cspan style\u003d\"font-weight: bold;\"\u003etarget field append\u003c/span\u003e the parameters \u003cspan style\u003d\"font-weight: bold;\"\u003e-noipx -sv_lan 0 +heapsize 250000 +sys_ticrate 1000. \u003c/span\u003eFor example \u003cspan style\u003d\"font-weight: bold;\"\u003e\"C:\\Counter-Strike 1.6 + Half-Life\\hl.exe\" -game cstrike -noipx -sv_lan 0 +heapsize 250000 +sys_ticrate 1000\u003cspan style\u003d\"font-weight: bold;\"\u003e\"\u003c/span\u003e \u003c/span\u003eand\u003cspan style\u003d\"font-weight: bold;\"\u003e \u003c/span\u003ein case\u003cspan style\u003d\"font-weight: bold;\"\u003e of steam \u003c/span\u003eappend it after the\u003cspan style\u003d\"font-weight: bold;\"\u003e -applaunch 10\u003c/span\u003e  parameter.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow \u003cspan style\u003d\"font-weight: bold;\"\u003elaunch the game\u003c/span\u003e and open the console by  pressing \u003cspan style\u003d\"font-weight: bold;\"\u003e'`' \u003c/span\u003echaracter and type \u003cspan style\u003d\"font-weight: bold;\"\u003efps_max 101\u003c/span\u003e and after that  \u003cspan style\u003d\"font-weight: bold;\"\u003er_decals 300\u003c/span\u003e , \u003cspan style\u003d\"font-weight: bold;\"\u003erate 25000\u003c/span\u003e , \u003cspan style\u003d\"font-weight: bold;\"\u003ecl_updaterate 101\u003c/span\u003e ,\u003cspan style\u003d\"font-weight: bold;\"\u003ecl_cmdrate 101\u003c/span\u003e . because they must match your fps rate for better registry.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow go to \u003cspan style\u003d\"font-weight: bold;\"\u003evideo options\u003c/span\u003e and select \u003cspan style\u003d\"font-weight: bold;\"\u003eopen gl \u003c/span\u003emode with resolution of your choice, i personally use 800*600 resolution.\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cbr /\u003eThat's it you should get 100 fps (hovering around 99-100). Do post your comments in case you find this post helpful or encounter any problem .\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-8761765865138090922?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/8761765865138090922/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/get-100fps-in-counter-strike-16_14.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/8761765865138090922"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/8761765865138090922"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/get-100fps-in-counter-strike-16_14.html","title":"Get 100fps in Counter Strike 1.6"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://2.bp.blogspot.com/_s4Oz51luJRA/SeDUlJfjSGI/AAAAAAAAAE4/-6UgcuCdOC4/s72-c/gfx_image1.JPG","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-5443422164601187007"},"published":{"$t":"2009-08-16T18:02:00.000+05:30"},"updated":{"$t":"2009-08-16T17:55:52.814+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Hardware"}],"title":{"type":"text","$t":"Dual core processors: The main logic"},"content":{"type":"html","$t":"The \u003cspan style\u003d\"font-weight: bold;\"\u003edual core and quad core processors\u003c/span\u003e have become very popular nowadays but the main reason behind their success is the power management.\u003cbr /\u003e\u003cbr /\u003eThere are two basic concepts that one must know, they are :-\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eOverclocking the processor\u003c/span\u003e :-\u003cbr /\u003e\u003cbr /\u003eLet's say that ideally a normal single core processor takes x units of power to give x units of performance. But users generally tend to increase the performance by \u003cspan style\u003d\"font-weight: bold;\"\u003eoverclocking\u003c/span\u003e the \u003cspan style\u003d\"font-weight: bold;\"\u003eprocessor\u003c/span\u003e ie essentially increasing the \u003cspan style\u003d\"font-weight: bold;\"\u003eclock frequency of the processor.\u003c/span\u003e If a user follows the process of overclocking the processor, then the \u003cspan style\u003d\"font-weight: bold;\"\u003eperformance increase is about 12-13 percent\u003c/span\u003e  but the power increase required for that would be about \u003cspan style\u003d\"font-weight: bold;\"\u003e70 percent\u003c/span\u003e.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eUnder-clocking  the processor \u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eNow the interesting concept is what if we under-clock the processor that is decrease the clock frequency of the processor?\u003cbr /\u003e\u003cbr /\u003eIn this case we could get about 80 percent of the performance at roughly half the power. For example we would get .8x units of performance at .5x units of power.\u003cbr /\u003e\u003cbr /\u003eNow this is the concept that is utilized by the \u003cspan style\u003d\"font-weight: bold;\"\u003edual core processors \u003c/span\u003eand instead of using a single processor we combine the two processors and operate each one of them at half of it's power and so for the same power taken by the normal single core processor we get about\u003cspan style\u003d\"font-weight: bold;\"\u003e 70 percent increase\u003c/span\u003e in performance. The aforementioned reason is the core reason behind the success of dual core processors.\u003cbr /\u003e\u003cbr /\u003eAnother major factor in dual core processors is as they operate at lower clock rates it helps in reducing the \u003cspan style\u003d\"font-weight: bold;\"\u003espeed mismatch \u003c/span\u003ebetween\u003cspan style\u003d\"font-weight: bold;\"\u003e the processor \u003c/span\u003eand\u003cspan style\u003d\"font-weight: bold;\"\u003e the memory\u003c/span\u003e and this is a relevant factor because with processor clock rates increasing at very faster speeds the corresponding increase in clock rates of cache memory  is not their, therefore a processor's clock cycles are not utilized properly and are wasted in memory read/write cycles.\u003cbr /\u003e\u003cbr /\u003eHence the concept of under-clocking helps also in reducing the speed mismatch b/w the memory and the processor.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-5443422164601187007?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/5443422164601187007/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/05/dual-core-processors-main-logic.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/5443422164601187007"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/5443422164601187007"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/05/dual-core-processors-main-logic.html","title":"Dual core processors: The main logic"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-5524583725633985983"},"published":{"$t":"2009-08-16T18:00:00.000+05:30"},"updated":{"$t":"2009-08-16T18:00:10.743+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Counter Strike 1.6"}],"title":{"type":"text","$t":"Configure Hlds Server for Counter Strike 1.6"},"content":{"type":"html","$t":"There are a few steps that you have to follow before you can create a \u003cspan style\u003d\"font-weight: bold;\"\u003ededicated server\u003c/span\u003e (\u003cspan style\u003d\"font-weight: bold;\"\u003eHlds\u003c/span\u003e) for \u003cspan style\u003d\"font-weight: bold;\"\u003ecounter strike 1.6 \u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eThe steps are :-\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e1.\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003eConfiguring the router/modem\u003c/span\u003e: Follow these steps:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eOpen any web browser and in the address bar type 192.168.1.1/main.html or 192.168.1.1/index.html or 192.168.1.1 , whichever provides you with advanced configuration menu.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eAfter this a pop-up will ask you about the user name and password. The default user name and password  pair's are\u003cspan style\u003d\"font-weight: bold;\"\u003e admin, admin \u003c/span\u003e\u003cspan\u003eor\u003c/span\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e admin, password, \u003c/span\u003eenter other values if you have modified the default settings.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThen choose advanced setup-\u003e Nat -\u003e Virtual servers (don't worry if you cannot find the exact sequence, what really matters is that you must be able to  find the virtual servers option)\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow, choose add a virtual server and repeat the following steps for opening the ports shown in the table.\u003cbr /\u003e\u003cbr /\u003ea) Type the service name as shown in the table\u003cbr /\u003eb) Type  start port as start port shown in the table\u003cbr /\u003ec) Type end port as port shown in the table\u003cbr /\u003ed) Choose the protocol as shown in the table\u003cbr /\u003ee) Type 192.168.1.5 as server ip\u003cbr /\u003ef) Press add server button.\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ctable bordercolorlight\u003d\"#00000\" bgcolor\u003d\"#3333ff\" border\u003d\"1\" cellpadding\u003d\"5\" cellspacing\u003d\"5\"\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd align\u003d\"left\"\u003e Server name \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e Start port \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e End Port \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e Protocol\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd align\u003d\"left\"\u003eHalf life  \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 6003 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 6003 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e TCP and UDP\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd align\u003d\"left\"\u003eHalf life \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 7001\u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 7001 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e TCP and UDP \u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd align\u003d\"left\"\u003eHalf life \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 27005 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e27005\u003c/td\u003e\u003ctd align\u003d\"left\"\u003eUDP\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd align\u003d\"left\"\u003eHalf life \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 27010\u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 27015 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003eUDP\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd align\u003d\"left\"\u003eHalf life Server \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 27015 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 27015 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003eUDP\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd align\u003d\"left\"\u003eHalf life Server \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 27016 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003e 27016 \u003c/td\u003e\u003ctd align\u003d\"left\"\u003eUDP\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003cbr /\u003e\u003cbr /\u003eAfter these steps the virtual server configuration of the modem should look like the following figure.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/Sf8DfvXVtKI/AAAAAAAAALk/7dkeuUmESz0/s1600-h/server+ports.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 208px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/Sf8DfvXVtKI/AAAAAAAAALk/7dkeuUmESz0/s400/server+ports.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5331984327655142562\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003eThis finishes the modem's setup. Just note the DNS (Domain Name server)  ip in the modem's wan info page, it will be used later.\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e2. Configuring the Local area Connection \u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003eOpen the control panel and switch to classic view.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThen open network connections.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eRight click on the Local area Connection and choose properties.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThen scroll down and select The \u003cspan style\u003d\"font-weight: bold;\"\u003eInternet protocol( Tcp/Ip)\u003c/span\u003e option and click on properties button (refer to the following figure).\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/Sf8HSm-LcpI/AAAAAAAAALs/31Boo8mtogs/s1600-h/localareaconnection.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 232px;\" src\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/Sf8HSm-LcpI/AAAAAAAAALs/31Boo8mtogs/s400/localareaconnection.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5331988500110340754\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003eChoose the \"use following ip address\" radio button and enter the following:-\u003cbr /\u003ea) Ip address: 192.168.1.5\u003cbr /\u003eb) Subnet mask: 255.255.255.0\u003cbr /\u003ec) Default gateway: 192.168.1.1\u003cbr /\u003ed) Preffered DNS server: Enter the address that you noted in at the end of  step 1 \u003c/li\u003e\u003c/ul\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e3) Adding the exception to windows firewall\u003c/span\u003e: The last step is to add the exception in the windows firewall for the hlds server.\u003cbr /\u003e\u003cbr /\u003eThat's it you are done . Do post comments in case you encounter any problem\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-5524583725633985983?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/5524583725633985983/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/05/configure-hlds-server-for-counter.html#comment-form","title":"2 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/5524583725633985983"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/5524583725633985983"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/05/configure-hlds-server-for-counter.html","title":"Configure Hlds Server for Counter Strike 1.6"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://1.bp.blogspot.com/_s4Oz51luJRA/Sf8DfvXVtKI/AAAAAAAAALk/7dkeuUmESz0/s72-c/server+ports.JPG","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"2"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-2064635222695845006"},"published":{"$t":"2009-08-16T17:00:00.001+05:30"},"updated":{"$t":"2009-08-20T10:44:13.573+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Counter Strike 1.6"}],"title":{"type":"text","$t":"Create custom Sprays/Images for counter strike"},"content":{"type":"html","$t":"In this tutorial i will be explaining about following two things\u003cbr /\u003e\u003cbr /\u003e1) Creating your own \u003cspan style\u003d\"font-weight: bold;\"\u003espray paint image\u003c/span\u003e.\u003cbr /\u003e2) Converting images to \u003cspan style\u003d\"font-weight: bold;\"\u003ecounter strike sprays\u003c/span\u003e.\u003cbr /\u003e\u003cbr /\u003e1) Creating your own spray paint image : for this follow these steps\u003cbr /\u003e\u003cul\u003e\u003cli\u003eopen a simple paint program, i am using microsoft paint for this example.\u003c/li\u003e\u003cli\u003epaint your own image and then there are following  2 options available to you.\u003c/li\u003e\u003c/ul\u003e\u003col\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eTransparent Background\u003c/span\u003e: If you want your images to have a transparent background then in microsoft paint or any other paint program set its background to blue.\u003c/li\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eNormal background\u003c/span\u003e: This is rarely the case that you would want to have because it displays a big background to your image that looks cheap.\u003c/li\u003e\u003c/ol\u003e\u003cul\u003e\u003cli\u003eNow that you have created your image save it as .bmp extension for clarity and then proceed to second step.\u003c/li\u003e\u003c/ul\u003e2) Converting images to counter strike sprays : for this follow these steps\u003cbr /\u003e\u003cul\u003e\u003cli\u003eDownload decal converter \u003ca href\u003d\"http://rapidshare.com/files/255374414/Decal_Converter.rar\"\u003efrom here\u003c/a\u003e and extract the rar archive file.\u003c/li\u003e\u003cli\u003eOpen the folder decal converter and then open decal converter.\u003c/li\u003e\u003cli\u003eNow you \u003cspan style\u003d\"font-weight: bold;\"\u003ewill have to set the path \u003c/span\u003ein decal converter where you have installed your counter strike. For this go to the\u003cspan style\u003d\"font-weight: bold; font-style: italic;\"\u003e options\u003c/span\u003e menu and select \u003cspan style\u003d\"font-weight: bold;\"\u003e\"half life Games folders\"\u003c/span\u003e option then choose browse and find your cs installation, check the \u003cspan style\u003d\"font-weight: bold;\"\u003e\"default game for decals \"\u003c/span\u003e option and then press OK.\u003c/li\u003e\u003cli\u003eNow go to the file menu and select \u003cspan style\u003d\"font-weight: bold;\"\u003e\"open picture option\"\u003c/span\u003e then choose the image for which  you want to make the spray.\u003c/li\u003e\u003cli\u003eThe decal converter will automatically re size the image. You have the option of resizing image by increasing the height or the width of the image but since the maximum number of pixels allowed is limited you would have to decrease the width or height correspondingly.\u003c/li\u003e\u003cli\u003eNow go to the \u003cspan style\u003d\"font-weight: bold;\"\u003e\"decal\"\u003c/span\u003e menu and choose \u003cspan style\u003d\"font-weight: bold;\"\u003e\"makedecal\"\u003c/span\u003e option, Then the decal file will be created in the game directory as \u003cspan style\u003d\"font-weight: bold;\"\u003e\"pldecal.wad\"\u003c/span\u003e.\u003c/li\u003e\u003cli\u003eNow \u003cspan style\u003d\"font-weight: bold;\"\u003edelete\u003c/span\u003e the old \"tempdecal.wad\" and \"custom.hpk\" files and \u003cspan style\u003d\"font-weight: bold;\"\u003erename\u003c/span\u003e the pldecal.wad to tempdecal.wad and make it read only.\u003c/li\u003e\u003cli\u003eNow you are done, go in game and start spraying :)\u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eNote:\u003c/span\u003e if your spray is not working go to the game directory and delete the custom.hpk file again (that sick file will keep on reappearing :(  )\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-2064635222695845006?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/2064635222695845006/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/create-custom-spraysimages-for-counter_14.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2064635222695845006"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2064635222695845006"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/create-custom-spraysimages-for-counter_14.html","title":"Create custom Sprays/Images for counter strike"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-3715483996855430668"},"published":{"$t":"2009-08-16T11:37:00.001+05:30"},"updated":{"$t":"2009-08-16T22:19:29.537+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Search engine Optimization"}],"title":{"type":"text","$t":"Verify blogger or blogspot site on msn"},"content":{"type":"html","$t":"If you want to \u003cspan style\u003d\"font-weight: bold;\"\u003everify your blogger site on msn\u003c/span\u003e follow these simple steps:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eGo to the \u003ca href\u003d\"http://search.live.com/docs/submit.aspx\"\u003emsn site\u003c/a\u003e \u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThen do not directly submit your site url, first visit the link at bottom that says \u003cspan style\u003d\"font-weight: bold;\"\u003ewebmasters\u003c/span\u003e (as shown in figure below). I could  have provided you this link directly but i did not because most of the users end up entering their site at the first link and that gives them no control over the site information.\u003c/li\u003e\u003c/ul\u003e\u003cbr /\u003e\u003cul\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://4.bp.blogspot.com/_s4Oz51luJRA/SegfRlNvBKI/AAAAAAAAAGU/RIaDrN2E02M/s1600-h/msnsubmit.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 203px;\" src\u003d\"http://4.bp.blogspot.com/_s4Oz51luJRA/SegfRlNvBKI/AAAAAAAAAGU/RIaDrN2E02M/s320/msnsubmit.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5325540946273567906\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003eThen the page will have a button that says \u003cspan style\u003d\"font-weight: bold;\"\u003e\"sign in to use the tools\"\u003c/span\u003e press this button and then login with your userid and password. you will be redirected to webmasters tool and then there will be a button that says \u003cspan style\u003d\"font-weight: bold;\"\u003e\"add a site\"\u003c/span\u003e, click on it.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThen fill up the form as follows:-\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003col\u003e\u003cli\u003eEnter the web site address. For example if you have your site address as http://abc.blogspot.com then enter only abc.blogspot.com. \u003cspan style\u003d\"font-weight: bold;\"\u003eNote\u003c/span\u003e: this is the place where people generally mess up the url and in previous example may end up entering www.abc.blogspot.com. it is to be noted that your blog address \u003cspan style\u003d\"font-weight: bold;\"\u003edoes not have a www prefix\u003c/span\u003e so do not enter the www prefix.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow submit a sitemap link as yoursite.blogspot.com/atom.xml . Here replace yoursite.blogspot.com with your blog address. After this enter the email address that you want to use as contact information and then press submit.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003c/ol\u003e\u003cul\u003e\u003cli\u003eAfter the last step you would be redirected to authentication part. Now scroll down to see meta tag verification, copy the meta tag and then proceed to the next step.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eAdding meta tag in your blogger\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003esite\u003c/span\u003e : Login to your blogger account and then Go to the \u003cspan style\u003d\"font-weight: bold;\"\u003eLayout option\u003c/span\u003e after that click on the \u003cspan style\u003d\"font-weight: bold;\"\u003eEdit Html tab\u003c/span\u003e and then in the \u003cspan style\u003d\"font-weight: bold;\"\u003eedit template section \u003c/span\u003epaste the meta below the code fragment as shown below. Make sure that you append the closing tag if it is missing. for example if tag is like this \u0026lt;meta name\u003d\"xyz\" content\u003d\"ahshshhsh\" \u0026gt;  then change it to  \u0026lt;meta name\u003d\"xyz\" content\u003d\"ahshshhsh\" /\u0026gt;\u003c/li\u003e\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width: 300px;text-align:center;height: 150px;\"\u003e\u003cblockquote\u003e\u003cp\u003e\u0026lt;head\u0026gt;\u003cbr /\u003e\u0026lt;b:include data\u003d'blog' name\u003d'all-head-content'/\u0026gt;\u003c/p\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/div\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003eClick the save template button and then login back to the webmasters tool in msn and click on the site after which it will be authenticated.\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-3715483996855430668?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/3715483996855430668/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/verify-blogger-or-blogspot-site-on-msn.html#comment-form","title":"1 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/3715483996855430668"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/3715483996855430668"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/verify-blogger-or-blogspot-site-on-msn.html","title":"Verify blogger or blogspot site on msn"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://4.bp.blogspot.com/_s4Oz51luJRA/SegfRlNvBKI/AAAAAAAAAGU/RIaDrN2E02M/s72-c/msnsubmit.JPG","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"1"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-1734268642905756994"},"published":{"$t":"2009-08-15T23:43:00.000+05:30"},"updated":{"$t":"2009-08-16T17:53:15.650+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"winxp"}],"title":{"type":"text","$t":"Contig defragment single files/folders"},"content":{"type":"html","$t":"Here i discuss about the tool that is of paramount importance in a situation where you do not have time to defragment the entire drive and just want to defragment \u003cspan style\u003d\"font-weight: bold;\"\u003esingle file /folder\u003c/span\u003e in windows xp.\u003cbr /\u003e\u003cbr /\u003eThe tool i am discussing about is \u003cspan style\u003d\"font-weight: bold;\"\u003eContig\u003c/span\u003e it was developed by sysinternals and can be downloaded here. It is a tool that is operated through the \u003cspan style\u003d\"font-weight: bold;\"\u003ecommand line.\u003cbr /\u003e\u003cbr /\u003eThe first thing you should do is download the tool it's only 100kb in size.\u003cbr /\u003e\u003ca href\u003d\"http://download.sysinternals.com/Files/Contig.zip\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 123px; height: 67px;\" src\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SiIvoN3-tiI/AAAAAAAAANs/qvRioczFOBc/s400/download_buttons.jpg\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5341884475980559906\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003eHow To Use it ?\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003e1. After downloading and \u003cspan style\u003d\"font-weight: bold;\"\u003eextracting\u003c/span\u003e it, Open the command prompt on the folder containing the tool(use command prompt here tool) or for example If the tool is extracted in C:\\abc then open command prompt and type \u003cspan style\u003d\"font-weight: bold;\"\u003ecd \"C:\\abc\"\u003c/span\u003e  to make it the current directory. You can also set the path variable once and for all, see the tutorial on how to set the path variable \u003ca href\u003d\"http://technicalessentials.blogspot.com/2009/04/setting-path-variable-in-windows-xp.html\"\u003e[link]\u003c/a\u003e and after that the command can be invoked from any folder.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e2.The tool has the following  command line structure and options:\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eCommand Structure \u003c/span\u003e: Contig [-options] filename.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eOptions\u003c/span\u003e:\u003cbr /\u003e\u003cbr /\u003e1) v : for providing verbose output of the ongoing operation.\u003cbr /\u003e\u003cbr /\u003e2) a : for analysis that is providing information of how fragmented a file or files have become.\u003cbr /\u003e\u003cbr /\u003e3) q: The quiet mode switch , which over-rides the -v switch, makes \u003cem\u003eContig\u003c/em\u003e run in \"quiet\" mode, where the only thing it prints during a defrag run is summary information and no information regarding the ongoing operation is displayed.\u003cbr /\u003e\u003cbr /\u003e4)\u003cstrong style\u003d\"font-weight: normal;\"\u003e s\u003c/strong\u003e: Use the -s switch to perform a recursive processing of subdirectories when you specify a filename with wildcards.\u003cbr /\u003e\u003cbr /\u003eFor more options just type contig it will display the command help\u003cbr /\u003e\u003cbr /\u003eUsage Examples:\u003cbr /\u003e\u003cbr /\u003e1)If  you want to defragment the entire directory and all the files under it then use the following command\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003econtig -v -s \"directory path\\*.*\"\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eFor example\u003c/span\u003e: in my case directory is \"C:\\wamp\" and i am using \u003cspan style\u003d\"font-weight: bold;\"\u003equiet mode\u003c/span\u003e ie -q option, So the command will be\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003econtig -q -s \"C:\\wamp\\*.*\"\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eOutput Image:\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SdHgaxlqumI/AAAAAAAAADo/8lv94kgapqQ/s1600-h/contig_image.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 167px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SdHgaxlqumI/AAAAAAAAADo/8lv94kgapqQ/s320/contig_image.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5319279385493813858\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e2)If you want to just defrag one file then simply use contig \u003cspan style\u003d\"font-weight: bold;\"\u003ec:\\dir_path\\file_name\u003c/span\u003e .\u003cbr /\u003e\u003cbr /\u003eDo leave your comment if post was helpfull.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-1734268642905756994?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/1734268642905756994/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/contig-defragment-single-filesfolders.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/1734268642905756994"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/1734268642905756994"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/contig-defragment-single-filesfolders.html","title":"Contig defragment single files/folders"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://3.bp.blogspot.com/_s4Oz51luJRA/SiIvoN3-tiI/AAAAAAAAANs/qvRioczFOBc/s72-c/download_buttons.jpg","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-9075803504971898702"},"published":{"$t":"2009-08-15T12:00:00.000+05:30"},"updated":{"$t":"2009-08-16T17:54:59.715+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"music downloads"}],"title":{"type":"text","$t":"Taylor Swift Fearless Download"},"content":{"type":"html","$t":"\u003cspan style\u003d\"font-weight: bold;\"\u003eRating: 4.5/5\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eGenre: Country/pop\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eFearless is the second studio album by American country pop artist \u003cspan style\u003d\"font-weight: bold;\"\u003eTaylor Swift\u003c/span\u003e. She has  a very nice voice for a country pop artist and pulchritude to match her voice. \u003ci\u003eFearless\u003c/i\u003e has received generally positive reviews from music critics.\u003cbr /\u003e\u003cbr /\u003e\u003ci\u003eFearless\u003c/i\u003e topped the \u003ci\u003eBillboard\u003c/i\u003e 200 for eleven non-consecutive weeks. It spent \u003cspan style\u003d\"font-weight: bold;\"\u003eseven consecutive\u003c/span\u003e weeks at number one on the Billboard 200.\u003cbr /\u003e\u003cbr /\u003eDownload the \u003ca href\u003d\"http://rapidshare.com/files/255368051/Taylor_Swift_-_Fearless.rar\"\u003ealbum from here\u003c/a\u003e .\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeMtfQj7h8I/AAAAAAAAAFY/WcNNA7QX0oU/s1600-h/Fearless+Album+Cover.jpg\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 320px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeMtfQj7h8I/AAAAAAAAAFY/WcNNA7QX0oU/s320/Fearless+Album+Cover.jpg\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5324149199526922178\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-9075803504971898702?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/9075803504971898702/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/taylor-swift-fearless-download_15.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/9075803504971898702"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/9075803504971898702"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/04/taylor-swift-fearless-download_15.html","title":"Taylor Swift Fearless Download"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://2.bp.blogspot.com/_s4Oz51luJRA/SeMtfQj7h8I/AAAAAAAAAFY/WcNNA7QX0oU/s72-c/Fearless+Album+Cover.jpg","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-583367702049133461"},"published":{"$t":"2009-07-31T10:19:00.017+05:30"},"updated":{"$t":"2009-08-16T15:06:30.766+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"webserver"},{"scheme":"http://www.blogger.com/atom/ns#","term":"website on pc"},{"scheme":"http://www.blogger.com/atom/ns#","term":"php"}],"title":{"type":"text","$t":"Installing php on windows"},"content":{"type":"html","$t":"\u003cspan style\u003d\"font-weight: bold;\"\u003eInstalling php\u003c/span\u003e:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eDownload the zip archive of php from \u003ca target\u003d\"_blank\" href\u003d\"http://www.php.net/downloads.php\"\u003ethis site.\u003c/a\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eExtract the archive to a  c:\\php or any name that you like but in the entire explanation c:\\php is assumed to be the path where php is installed so replace it with the path to your directory in case you choose to install it in another directory .\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eRename the php-ini-dist to php.ini because it is the configuration file for  php.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThis completes the basic install and now you can change the configuration parameters in the php.ini like the timezone,  displaying errors etc.\u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e Configuring apache web server\u003c/span\u003e(almost all people use it):-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eThen you will have to configure apache web server and that's the tricky part because there are compatibility issues between the apache web server version and the php installation.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eIf you have the php version 5.2.10 then you can configure it for apache web server 2.0.x but the php version 5.3.0 comes with support only for the apache web server 2.2 or greater so you should check the version of apache that you have before  downloading php or vice versa.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eConfiguring Apache 2.0.x\u003c/span\u003e :-\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003eIf you have apache 2.0.x then you should download php version lower than 5.30 as it only supports the apache web server  2.2.x\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eOpen the apache configuration file httpd.conf and search for \"LoadModule\" and after the last LoadModule directives just copy and past the following code.\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width:400;height:200;\"\u003e\u003cbr /\u003e\u003cblockquote\u003e\u003cbr /\u003e\u003cp\u003e\u003cbr /\u003e#php5 module for apache 2.0.x web server\u003cbr /\u003eLoadModule php5_module \"c:/php/php5apache2.dll\"\u003cbr /\u003e#Tell apache web server to recognize the .php extension\u003cbr /\u003eAddType application/x-httpd-php .php\u003cbr /\u003e#The php.ini directory assuming it to be the same as c:/php\u003cbr /\u003ePHPIniDir \"c:/php\"\u003cbr /\u003e#end of php5 module\u003cbr /\u003e\u003cp\u003e\u003cbr /\u003e\u003c/blockquote\u003e\u003cbr /\u003e\u003c/pre\u003e\u003c/div\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNote that we are loading php as a module into the apache web server but you can also load it as a cgi binary. Also note that the dll that was loaded is php5apache2.dll which supports apache 2.0 web server.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003c/ul\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eConfiguring Apache 2.2.x \u003c/span\u003e:-\u003cbr /\u003e\u003cul\u003e\u003cbr /\u003e\u003cli\u003e The steps remain the same but in this case you have the option to download the php 5.3.0  version but lower versions of php also support the apache 2.2.x web server because they contain the php5apache2_2.dll required for the apache 2.2.x server.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eJust copy and paste the following code at the end of \u003cspan style\u003d\"font-weight: bold;\"\u003eLoadModule\u003c/span\u003e directives in the \u003cspan style\u003d\"font-weight: bold;\"\u003ehttpd.conf\u003c/span\u003e file and i am assuming the installation directory of php is c:\\php.\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width:380px;height:200px;\"\u003e\u003cbr /\u003e\u003cblockquote\u003e\u003cbr /\u003e\u003cp\u003e\u003cbr /\u003e#php5 module for apache 2.2.x web server\u003cbr /\u003eLoadModule php5_module \"c:/php/php5apache2_2.dll\"\u003cbr /\u003e#Tell apache web server to recognize the .php extension\u003cbr /\u003eAddType application/x-httpd-php .php\u003cbr /\u003e#The php.ini directory assuming it to be the same as c:/php\u003cbr /\u003ePHPIniDir \"c:/php\"\u003cbr /\u003e#end of php5 module\u003cbr /\u003e\u003c/p\u003e\u003cbr /\u003e\u003c/blockquote\u003e\u003cbr /\u003e\u003c/pre\u003e\u003cbr /\u003e\u003c/div\u003e\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eIn this case note that only change is in the \u003cspan style\u003d\"font-weight: bold;\"\u003eLoadModule\u003c/span\u003e directive which loads the \u003cspan style\u003d\"font-weight: bold;\"\u003ephp5apache2_2.dll\u003c/span\u003e which is loaded by the apache 2.2.x web server.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003c/ul\u003e\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003eSave the http.conf file, restart the apache web server and create a simple test script and place it in the apache htdocs directory. In the test script type  and save it as test.php in the apache htdocs directory. Open the browser and type http://localhost/test.php, the installation if successful will show the page containing details about php installation and apache web server.\u003c/li\u003e\u003cbr /\u003e\u003c/ul\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eActivating mysql\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003esupport for php\u003c/span\u003e:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eOpen the installation directory of php i.e \u003cspan style\u003d\"font-weight: bold;\"\u003ec:\\php\u003c/span\u003e and then open the php.ini file and  search for  \u003cspan style\u003d\"font-weight: bold;\"\u003e;extension\u003dphp_mysqli.dll\u003c/span\u003e and remove the semicolon  in front of it if you have mysql version 4.1 or greater because the mysqli(improved) dll file is for mysql version 4.1 or greater but if you have an older version (although it is highly unlikely) then remove the semicolon from the line that says \u003cspan style\u003d\"font-weight: bold;\"\u003e;extension\u003dphp_mysql.dll\u003c/span\u003e .\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eOpen the ext directory under the directory where php is installed and if your mysql version is  4.1 or newer then copy and paste the \u003cspan style\u003d\"font-weight: bold;\"\u003ephp_mysqli.dll\u003c/span\u003e file from it to the main directory i.e  directly under the \u003cspan style\u003d\"font-weight: bold;\"\u003ec:\\php\u003c/span\u003e directory or else copy and paste the file php_mysql.dll.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNote that there should also be a \u003cspan style\u003d\"font-weight: bold;\"\u003elibmysql.dll\u003c/span\u003e file directly under the main directory,if not then copy and paste that file from the directory similar to the \"C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\" directory.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow you have to set the path variable by appending \u003cspan style\u003d\"font-weight: bold;\"\u003ec:\\php\u003c/span\u003e directory path into it so that php can find the 2 above mentioned dlls required for mysql support. To see how to set the path variable see \u003ca target\u003d\"_blank\" style\u003d\"font-weight: bold;\" href\u003d\"http://ramannanda.blogspot.com/2009/04/setting-path-variable-in-windows-xp_14.html\"\u003ethis link\u003c/a\u003e.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eReboot the pc\u003c/span\u003e and start the apache webserver, open browser and type the url to the file we created earlier i.e http://localhost/test.php and if everything goes fine you should see the output similar to the image shown below. This completes the installation of mysql support for php.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca target\u003d\"_blank\" onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SnKVcFDkhSI/AAAAAAAAASA/pFolHnC7tu4/s1600-h/mysql_php.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 317px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SnKVcFDkhSI/AAAAAAAAASA/pFolHnC7tu4/s400/mysql_php.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5364514415777711394\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-583367702049133461?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/583367702049133461/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/installing-php-on-windows.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/583367702049133461"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/583367702049133461"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/installing-php-on-windows.html","title":"Installing php on windows"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://1.bp.blogspot.com/_s4Oz51luJRA/SnKVcFDkhSI/AAAAAAAAASA/pFolHnC7tu4/s72-c/mysql_php.JPG","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-4140915252771381310"},"published":{"$t":"2009-07-23T18:02:00.005+05:30"},"updated":{"$t":"2009-07-23T18:35:19.527+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"website on pc"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Computer Networking"}],"title":{"type":"text","$t":"Dynamic Dns:Host your website on pc"},"content":{"type":"html","$t":"The \u003cspan style\u003d\"font-weight: bold;\"\u003edynamic dns\u003c/span\u003e service  can be used by any person with a non-static ip address to \u003cspan style\u003d\"font-weight: bold;\"\u003ehost a website on pc\u003c/span\u003e. Non- static ip address means that a person who is  using services of an isp and so generally every time he resets his router or modem a new ip address is assigned, so  the binding of a domain name to the ip address  just cannot happen. The \u003cspan style\u003d\"font-weight: bold;\"\u003edynamic dns\u003c/span\u003e service can be used for this purpose to bind the non-static ip-address to a domain name by constantly updating the ip-address with the domain name provider thus a normal user can host his/her website on pc.\u003cbr /\u003e\u003cbr /\u003eTo get the dynamic-dns service up and running for no cost, follow these steps:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eRegister yourself at this site: http://www.dyndns.com/\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eGet a free or paid dynamic domain name registered with the site.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eDownload and install the tool dynamic dns updater from this \u003ca href\u003d\"http://www.dyndns.com/support/clients/\"\u003elink\u003c/a\u003e.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eLaunch the tool and open the groups tab, then click on the add button, choose a name for the group, enter the user-name and password for the account that you had earlier established with the site (dyndns.com) and finally click on the download button.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eAfter clicking on the download button it will download the details of the domains that  have been registered for that user account after which it will update the domain name with your ip-address.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eIf you want to host your website on your own pc and want complete configuration for it then check the following link, where i have explained all the topics like configuring modem, apache, php,  etc on your pc.\u003cbr /\u003e\u003cbr /\u003e\u003ca href\u003d\"http://ramannanda.blogspot.com/2009/04/host-website-on-pc.html\"\u003e Host Website on Pc\u003c/a\u003e\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-4140915252771381310?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/4140915252771381310/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/dynamic-dnshost-your-website-on-pc.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4140915252771381310"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4140915252771381310"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/dynamic-dnshost-your-website-on-pc.html","title":"Dynamic Dns:Host your website on pc"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-4672710064986592491"},"published":{"$t":"2009-07-21T10:40:00.015+05:30"},"updated":{"$t":"2009-08-16T15:09:20.316+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"java"}],"title":{"type":"text","$t":"Using Timer class in java swing"},"content":{"type":"html","$t":"The first thing  that you should know is that Timer class is available both in \u003cspan style\u003d\"font-weight: bold;\"\u003ejava.util\u003c/span\u003e and \u003cspan style\u003d\"font-weight: bold;\"\u003ejavax.swing\u003c/span\u003e packages and they both are different from each other.\u003cbr /\u003e\u003cbr /\u003eI will be discussing  code example about the Timer class in javax.Swing package which you can use to make a countdown timer, JprogressBar or do other  operations.\u003cbr /\u003e\u003cbr /\u003eBelow is the code example and then the explanation follows:-\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width: 400px; height: 250px;\"\u003e\u003cblockquote\u003e\u003cp\u003e\u003cbr /\u003eimport java.awt.event.*;\u003cbr /\u003eimport javax.swing.Timer;\u003cbr /\u003e/**\u003cbr /\u003e*\u003cbr /\u003e* @author  morph\u003cbr /\u003e*/\u003cbr /\u003epublic class timer_Example extends javax.swing.JFrame implements ActionListener {\u003cbr /\u003eTimer timer\u003dnull;\u003cbr /\u003ejavax.swing.JLabel label\u003dnull;\u003cbr /\u003estatic int counter\u003d0;\u003cbr /\u003e/** Creates new form timer_Example */\u003cbr /\u003e\u003cbr /\u003epublic timer_Example(){\u003cbr /\u003e//your code goes here\u003cbr /\u003elabel\u003dnew javax.swing.JLabel(\"The time is 0 seconds\");\u003cbr /\u003ethis.getContentPane().add(label);\u003cbr /\u003ethis.pack();\u003cbr /\u003etimer\u003dnew Timer(1000,this);/*create a timer that generates an event after 1 second and pass it the frame object which handles the action event by implementing the ActionListener interface*/\u003cbr /\u003etimer.start();\u003cbr /\u003e}\u003cbr /\u003e\u003cbr /\u003epublic void actionPerformed(ActionEvent e){\u003cbr /\u003eif(counter\u003d\u003d100)\u003cbr /\u003e{\u003cbr /\u003etimer.stop();\u003cbr /\u003e}\u003cbr /\u003ejavax.swing.SwingUtilities.invokeLater(new updateCount());\u003cbr /\u003e}\u003cbr /\u003e\u003cbr /\u003epublic class updateCount implements Runnable{\u003cbr /\u003epublic void run(){\u003cbr /\u003ecounter\u003dcounter+1;//update the counter value\u003cbr /\u003elabel.setText(\"the time is \"+counter+\" seconds\");\u003cbr /\u003e//your JProgressBar code can go here\u003cbr /\u003e//or any other code that you may like\u003cbr /\u003e}\u003cbr /\u003e}\u003cbr /\u003epublic static void main(String args[]) {\u003cbr /\u003e  \u003cbr /\u003e     timer_Example form\u003dnew timer_Example();\u003cbr /\u003e     form.setVisible(true);\u003cbr /\u003e     form.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);\u003cbr /\u003e     }\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e}\u003c/p\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/div\u003e\u003cbr /\u003e\u003cbr /\u003eThe code is pretty  basic but this code can be used to perform various tasks. In the code we initialize the counter to 0 and then create the timer object by calling its constructor and passing it 2 arguments the time in milliseconds after which the timer shall generate an event (timer generates an ActionEvent) and second parameter is an event handler for the action event which in this case is the form object itself.\u003cbr /\u003e\u003cbr /\u003eThe actionPerformed function just simply checks whether the count has reached 100 or not and if it has it stops the timer.  Otherwise it creates a new runnable object of a \u003cspan style\u003d\"font-weight: bold;\"\u003enested class\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003eupdateCount\u003c/span\u003e which updates the count value and displays the count value through the JLabel. Here you can do other things like updating the JProgressBar or any other event that you may wish to implement. I have used \u003cspan style\u003d\"font-weight: bold;\"\u003eSwingUtilities.invokeLater()\u003c/span\u003e function because it is always recommended that you should place the call to some other class on an event queue and not directly call the class.\u003cbr /\u003e\u003cbr /\u003eI have used a similar concept to develop a simple application in java that performs various operations like Shutdown, Hibernate, Standby, lock etc but in that case the counter is countdown counter. You can also create beautiful application launcher windows with changing backgrounds and  updating progress bar with it.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-4672710064986592491?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/4672710064986592491/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/using-timer-class-in-java-swing.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4672710064986592491"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4672710064986592491"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/using-timer-class-in-java-swing.html","title":"Using Timer class in java swing"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-569383492836387831"},"published":{"$t":"2009-07-20T09:34:00.009+05:30"},"updated":{"$t":"2009-08-01T08:50:24.165+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Wordpress"},{"scheme":"http://www.blogger.com/atom/ns#","term":"php"}],"title":{"type":"text","$t":"phpMyAdmin log in error"},"content":{"type":"html","$t":"In case you change the password for root account using \u003cspan style\u003d\"font-weight: bold;\"\u003ephpMyAdmin\u003c/span\u003e and then try to login into mysql database using phpmyadmin you will receive a \u003cspan style\u003d\"font-weight: bold;\"\u003elog in error\u003c/span\u003e and you won't be able to login, this happens because phpmyadmin has no way of knowing what's the root password that you have set.\u003cbr /\u003e\u003cbr /\u003eThe \u003cspan style\u003d\"font-weight: bold;\"\u003ephpmyadmin\u003c/span\u003e uses it's config.inc.php file for storing mysql user related information and that is where you should enter the root password so that on next log in it can successfully log in to the mysql database.\u003cbr /\u003e\u003cbr /\u003eThe solutions to update the password  are explained below:-\u003cbr /\u003e\u003cbr /\u003e\u003col\u003e\u003cli\u003eFor \u003cspan style\u003d\"font-weight: bold;\"\u003eWamp Server\u003c/span\u003e:- If you have installed wamp server then follow these instructions\u003cbr /\u003e\u003cul\u003e\u003cli\u003eOpen the apps directory under the directory of wamp server. i.e /wamp/apps\u003c/li\u003e\u003cli\u003eNow open the phpmyadmin directory and then open the config.inc.php file \u003c/li\u003e\u003cli\u003eNavigate to the line that says \"\u003cspan style\u003d\"font-weight: bold;\"\u003e$cfg['Servers'][$i]['password'] \u003d 'xxxx '\u003c/span\u003e\" and replace the xxxx with the  password for the root user and save changes.\u003c/li\u003e\u003cli\u003eNow log into the mysql database using phpmyadmin and your login will be successful\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eFor \u003cspan style\u003d\"font-weight: bold;\"\u003eStandalone installation\u003c/span\u003e:- In case you have installed phpmyadmin as a standalone version then just navigate to the directory of \u003cspan style\u003d\"font-weight: bold;\"\u003ephpmyadmin\u003c/span\u003e and then you can follow the aforementioned solution steps.\u003cbr /\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-569383492836387831?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/569383492836387831/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/phpmyadmin-log-in-error.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/569383492836387831"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/569383492836387831"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/phpmyadmin-log-in-error.html","title":"phpMyAdmin log in error"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-2060771684256185439"},"published":{"$t":"2009-07-06T13:36:00.007+05:30"},"updated":{"$t":"2009-07-06T15:04:57.761+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Unix/Linux"}],"title":{"type":"text","$t":"Linux hack: Symbolic and Hard links"},"content":{"type":"html","$t":"This is a issue that most admins take care off and so if you are a admin and don't know about this threat then pay attention.\u003cbr /\u003e\u003cbr /\u003eWhat are Symbolic links and Hard links in linux file system?\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSymbolic/Soft links\u003c/span\u003e:- These links can be created by executing the following command.\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e\u003cbr /\u003eln -s original-file  symbolic-file \u003c/span\u003e\u003cbr /\u003eHere the -s option specifies that the link is symbolic.  and when we invoke the \u003cspan style\u003d\"font-weight: bold;\"\u003els -il \u003c/span\u003ecommand  on it we can see that the inode numbers on the files will be different and the symbolic file would be pointing to the original file like this.\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003esymbolic-file-\u0026gt;original-file \u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eWhen we delete the original file and try to do a read operation on the symbolic file it will raise an error because the original file does not exist but if we try to write to the symbolic-file this leads to recreation of the original file (this is what you don't want).\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eHard links\u003c/span\u003e :- This type of link can be created by using the following command.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eln original-file new-file\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eIn this case if you execute the ls -il command you will see that the inode numbers of both the files are same which shows that the file names are both references to the same location and in case you delete the original file only the original reference is destroyed but still the file name new-file points to that location and the file can still be accessed.\u003c/li\u003e\u003c/ul\u003eOk, So now what's the risk or hack in it ?\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eThe hard link trouble \u003c/span\u003e:- When someone obtains a hard link to your file then he/she gets the same access rights to the file as the file itself has. So if the file has read, write and executable rights then you get to have those rights to.\u003cbr /\u003e\u003cbr /\u003eGenerating \u003cspan style\u003d\"font-weight: bold;\"\u003eSoft link's \u003c/span\u003e is a \u003cspan style\u003d\"font-weight: bold;\"\u003efatuous\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003emistake\u003c/span\u003e:- when somebody is able to make a soft link to your file, then he/she gets \u003cspan style\u003d\"font-weight: bold;\"\u003eall the access rights\u003c/span\u003e to the file (all means all) , even those rights which are not set for the file which effectively means that they have more access rights to the file than the file has.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eScenario 1\u003c/span\u003e :- the user creates a symbolic link to your \u003cspan style\u003d\"font-weight: bold;\"\u003e/etc/passwd or /etc/shadow\u003c/span\u003e file . Hmm, considering the case with  soft link's that implies the user can edit, delete entries or make new ones into the file, the user can take both your /etc/passwd and /etc/shadow file and can then use a cracking tool like \u003cspan style\u003d\"font-weight: bold;\"\u003eJohn the ripper\u003c/span\u003e to crack the password's in it and  hence the user will be able to own the system.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSolution\u003c/span\u003e:-\u003cbr /\u003eThe basic solution is that if you are a power user then don't create symbolic link's to the sensitive files and even if you do want to create them, you should use the \u003cspan style\u003d\"font-weight: bold;\"\u003echmod\u003c/span\u003e command to change the default permissions of the symbolic link files to somewhat more restrictive permissions.\u003cbr /\u003e\u003cbr /\u003eSecondly you can make sure that an average user does not have rights to access the directories like etc (containing most of the configuration files including the passwd and shadow files). So that they cannot create soft links on them.\u003cbr /\u003e\u003cbr /\u003e\u003cblockquote\u003e \"Linux is a safe platform but just requires the configuration's to make it safe\" \u003c/blockquote\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-2060771684256185439?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/2060771684256185439/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/linux-hack-symbolic-and-hard-links.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2060771684256185439"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2060771684256185439"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/linux-hack-symbolic-and-hard-links.html","title":"Linux hack: Symbolic and Hard links"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-7311176569606333746"},"published":{"$t":"2009-07-06T12:24:00.003+05:30"},"updated":{"$t":"2009-07-06T13:20:42.604+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"java"}],"title":{"type":"text","$t":"java.lang.NoClassDefFoundError on executing jar file"},"content":{"type":"html","$t":"\u003cspan style\u003d\"font-weight: bold;\"\u003eProblem\u003c/span\u003e:-You encounter this error while executing your jar file then it is likely due to missing library files that your jar file needs to run.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSolutions\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eFor applications made using \u003cspan style\u003d\"font-weight: bold;\"\u003eNetBeans\u003c/span\u003e Ide:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eNetbeans while making your jar file adds the\u003cspan style\u003d\"font-weight: bold;\"\u003e classpath\u003c/span\u003e of the libraries needed for your application to the \u003cspan style\u003d\"font-weight: bold;\"\u003emanifest.mf\u003c/span\u003e file and creates the folder\u003cspan style\u003d\"font-weight: bold;\"\u003e lib\u003c/span\u003e in the \u003cspan style\u003d\"font-weight: bold;\"\u003edist\u003c/span\u003e folder containing the jar files that your application needs to execute.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eIf you copy and paste just the jar file and try to execute it it will raise an error, so  instead of just copying the jar file copy the entire \u003cspan style\u003d\"font-weight: bold;\"\u003edist\u003c/span\u003e folder and then execute the jar. It will work.\u003c/li\u003e\u003c/ul\u003eFor applications made without the Ide:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eTo add the path of class libraries that are missing just create a plaint text file and then add the class path  of the libraries to it.  for example if you are getting error for the missing class file \u003cspan style\u003d\"font-weight: bold;\"\u003eorg.apache.tools.bzip2.jar\u003c/span\u003e  located under the \u003cspan style\u003d\"font-weight: bold;\"\u003exyz\u003c/span\u003e directory then you should add  the variable as it is shown \u003cspan style\u003d\"font-weight: bold;\"\u003eClass-Path: xyz/org.apache.tools.bzip2.jar \u003c/span\u003e and save the text file. Then you should execute the following command.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-style: italic; font-weight: bold;\"\u003ejar cfm \u003c/span\u003e\u003cspan style\u003d\"font-style: italic; font-weight: bold;\"\u003e\"Your jar File\"\u003c/span\u003e\u003cspan style\u003d\"font-style: italic; font-weight: bold;\"\u003e \"The text file you edited\" \"the files to add into the jar\"\u003c/span\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow run the application using the command \"\u003cspan style\u003d\"font-weight: bold;\"\u003ejava -jar application_name.jar\" \u003c/span\u003eand it should work fine.\u003c/li\u003e\u003c/ul\u003eIn case you still face problems regarding this issue post your problem and i'll solve it.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-7311176569606333746?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/7311176569606333746/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/javalangnoclassdeffounderror-on.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/7311176569606333746"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/7311176569606333746"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/javalangnoclassdeffounderror-on.html","title":"java.lang.NoClassDefFoundError on executing jar file"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-5677865813755994982"},"published":{"$t":"2009-07-06T10:52:00.007+05:30"},"updated":{"$t":"2009-07-06T12:00:11.253+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"winxp"},{"scheme":"http://www.blogger.com/atom/ns#","term":"java"}],"title":{"type":"text","$t":"Automated shutdown utility/Tool java based"},"content":{"type":"html","$t":"In case you want to \u003cspan style\u003d\"font-weight: bold;\"\u003eschedule or automate tasks like shutting down, restarting, hibernating , Standby and Locking \u003c/span\u003ethen you can use this simple application made by me. It utilizes the \u003cspan style\u003d\"font-weight: bold;\"\u003epsshutdown\u003c/span\u003e application and has a automated counter for planning the aforementioned tasks.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eInstallation\u003c/span\u003e:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eJust extract the rar file and after you extract there will be two folders, one will be install and the other one will be the application (under the dist directory) and there will also be an executable psshutdown utility.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eRun the installer application by using the command \u003cspan style\u003d\"font-weight: bold;\"\u003e\"java -jar Installer.jar\"\u003c/span\u003e(without the quotes) on the install folder and click on the \"Select extracted file psshutdown\" button, select the extracted\u003cspan style\u003d\"font-weight: bold;\"\u003e psshutdown file\u003c/span\u003e, click on the install button and the application will be ready to use.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow just navigate to the \u003cspan style\u003d\"font-weight: bold;\"\u003eapplication\u003c/span\u003e directory execute the command \u003cspan style\u003d\"font-weight: bold;\"\u003ejava -jar Shutdown.jar \u003c/span\u003efrom command prompt to launch the application.\u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eUsing the application\u003c/span\u003e:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eJust launch the application by opening command prompt at the application folder and invoking \u003cspan style\u003d\"font-weight: bold;\"\u003e\"java -jar Shutdown.jar\"\u003c/span\u003e (without the quotes) command .\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eSpecify the time in \u003cspan style\u003d\"font-weight: bold;\"\u003ehours:minutes:seconds\u003c/span\u003e format. For example if you want to automate the task 36 hours from now then enter 36 in the field. The field is auto correcting so you can enter values like 23:78:65 and it will correct those values to proper format.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eSelect the operation from the drop down box that you want to execute and click on the submit button.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eOne can always abort the current operation in between by clicking on the abort button.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThe label at the bottom will display the time left for the execution of the operation.\u003c/li\u003e\u003c/ul\u003eDownload the application from the link below:-\u003cbr /\u003e\u003cbr /\u003e\u003ca href\u003d\"http://rapidshare.com/files/252490161/Shutdown.rar\"\u003e\u003cbr /\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 123px; height: 67px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SiDpLNzyyNI/AAAAAAAAANc/6O2CV2BPFrg/s400/download_buttons.jpg\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5341525536956139730\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eFollowing are the snapshots of the application:-\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SlGZtG_vOEI/AAAAAAAAARo/uIQB72gpAmk/s1600-h/Shutdown_image1.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 321px;\" src\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SlGZtG_vOEI/AAAAAAAAARo/uIQB72gpAmk/s400/Shutdown_image1.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5355230432171341890\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SlGZte3kY1I/AAAAAAAAARw/5jDVZLNmaUw/s1600-h/Shutdown_image2.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 320px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SlGZte3kY1I/AAAAAAAAARw/5jDVZLNmaUw/s400/Shutdown_image2.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5355230438579528530\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-5677865813755994982?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/5677865813755994982/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/automated-shutdown-utilitytool-java.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/5677865813755994982"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/5677865813755994982"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/07/automated-shutdown-utilitytool-java.html","title":"Automated shutdown utility/Tool java based"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://1.bp.blogspot.com/_s4Oz51luJRA/SiDpLNzyyNI/AAAAAAAAANc/6O2CV2BPFrg/s72-c/download_buttons.jpg","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-3428424231093375614"},"published":{"$t":"2009-06-28T16:01:00.013+05:30"},"updated":{"$t":"2009-08-16T15:19:41.874+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"java"}],"title":{"type":"text","$t":"Java Servlets:Introduction,Compiling,Deploying and Running"},"content":{"type":"html","$t":"What is a \u003cspan style\u003d\"font-weight: bold;\"\u003eservlet\u003c/span\u003e  ?\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eServlet\u003c/span\u003e:a short introduction:-\u003cbr /\u003eA servlet handles the requests from the server, that require servlet to add something or do some operations in response to the client request so that a dynamic page can be generated, rather than the same old monotonous static html pages.\u003cbr /\u003e\u003cbr /\u003eThe \u003cspan style\u003d\"font-weight: bold;\"\u003eservlet API's\u003c/span\u003e are generally provided along with \u003cspan style\u003d\"font-weight: bold;\"\u003eContainers\u003c/span\u003e like \u003cspan style\u003d\"font-weight: bold;\"\u003etomcat, JBoss \u003c/span\u003eetc and you have to import the servlet-api.jar for compiling your servlet .java files. A java servlet does not have a main method so it is the container that controls the execution of servlet methods. The container initializes the servlet by calling it's init method, after which it's service method is called which determines that which of the servlet's method is to be called depending upon the client request and after a servlet's job is done it purges it's resources by calling it's destroy method.\u003cbr /\u003eThe container also provides support for JSP.\u003cbr /\u003e\u003cbr /\u003eThe servlet class that you will implement let it's name be MyServlet , will generally extend the HttpServlet class that extends the GenericServlet class so the class hierarchy will be as shown in the following figure.\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SkdORR7UpTI/AAAAAAAAARg/yq1NfDJbPXk/s1600-h/ServletHierarchy.gif\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 170px;\" src\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SkdORR7UpTI/AAAAAAAAARg/yq1NfDJbPXk/s400/ServletHierarchy.gif\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5352332740930086194\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eThe servlet class that you will implement will most likely implement either of the following two methods:-\u003cbr /\u003e\u003cbr /\u003e\u003col\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003epublic void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{  //code here}\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eIf the client uses the http Get query, then this will be the method that will be invoked by the container to handle the Get request. It takes reference to two objects HttpServletRequest and HttpServletResponse object, these objects are created by the container and their reference is passed to this method. A client will use a Get http request, If  the amount of data to be sent is less, the data sent using get request is visible in the browser navigation bar, so you would not want to display sensitive information like user password, for that you will want to use the Http Post request .\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003epublic void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{ // code here }\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eIf the client uses the http post request then this will be the method called by the container by looking at the client request. It is used when  the amount of data to be sent is more, like filling up the html form and sending it to the server to process it and also when sensitive information like user password is to sent.\u003c/li\u003e\u003c/ol\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eAn example servlet\u003c/span\u003e :-\u003cbr /\u003e\u003cbr /\u003eThe example servlet(infoServlet) will be the most basic servlet, It will take the parameter user-name and password, perform some fake authentication (authentication won't actually be done) and display a welcome message to the user along with the current date and time.\u003cbr /\u003e\u003cbr /\u003eThe servlet code is given below and the explanation follows:-\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width: 380px; height: 250px;\"\u003e\u003cblockquote\u003e\u003cp\u003eimport javax.servlet.*;\u003cbr /\u003eimport javax.servlet.http.*;\u003cbr /\u003eimport java.io.*;\u003cbr /\u003epublic class infoServlet extends HttpServlet{\u003cbr /\u003epublic void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException\u003cbr /\u003e{\u003cbr /\u003eresponse.setContentType(\"text/html\");\u003cbr /\u003ePrintWriter output\u003dresponse.getWriter();\u003cbr /\u003eString name\u003drequest.getParameter(\"text_field\");\u003cbr /\u003eString password\u003drequest.getParameter(\"password_field\");\u003cbr /\u003eDate now \u003d new Date();\u003cbr /\u003e//No authentication will be done\u003cbr /\u003eoutput.println(\"\u0026lt;html\u0026gt;\"+\"\u0026lt;head\u0026gt;\"+\"\u0026lt;title\u0026gt;\"+\u003cbr /\u003e\"Welcome page\"+\"\u0026lt;/title\u0026gt;\"+\"\u0026lt;/head\u0026gt;\"+\u003cbr /\u003e\"\u0026lt;body\u0026gt;\"+\"Welcome \"+name+\"\u0026lt;br/\u0026gt;\"+\u003cbr /\u003e\"The time is\"+now+\"\u0026lt;/body\u0026gt;\"+\"\u0026lt;/html\u0026gt;\");\u003cbr /\u003e}\u003cbr /\u003e}\u003cbr /\u003e\u003c/p\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/div\u003e\u003cbr /\u003e\u003cbr /\u003eIn this servlet we have implemented the doPost method as the client will be sending the sensitive information in a post request.\u003cbr /\u003e\u003cbr /\u003eThe method \u003cspan style\u003d\"font-weight: bold;\"\u003esetContentType\u003c/span\u003e(\"content_type\"); tells about the response mime type to the client browser so that it can display the page received properly.\u003cbr /\u003eThen we obtain a \u003cspan style\u003d\"font-weight: bold;\"\u003eprintwriter\u003c/span\u003e object reference by invoking the \u003cspan style\u003d\"font-weight: bold;\"\u003egetWriter() \u003c/span\u003emethod on the  \u003cspan style\u003d\"font-weight: bold;\"\u003eresponse\u003c/span\u003e object, which is used to generate the dynamic response page for the client.\u003cbr /\u003e\u003cbr /\u003eThe \u003cspan style\u003d\"font-weight: bold;\"\u003egetParameter\u003c/span\u003e(\"field_name\") gets the parameter value entered by the user in the form.\u003cbr /\u003e\u003cbr /\u003eNow save the java file as \u003cspan style\u003d\"font-weight: bold;\"\u003einfoServlet.java\u003c/span\u003e .\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eCompiling the servlet\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eTo compile the servlet follow these steps:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eOpen the command prompt and navigate to the directory where the infoServlet java file is saved.\u003c/li\u003e\u003cli\u003eNow to compile the servlet execute the following command.\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width: 380px; height: 150px;\"\u003e\u003cblockquote\u003e\u003cp\u003e javac -classpath \"C:/Program files/Tomcat6.0/lib/servlet_api.jar\" infoServlet.java\u003cbr /\u003e\u003c/p\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/div\u003e\u003cbr /\u003eHere replace the classpath (the path between the quotes) with the path to your servlet_api.jar file provided by the container that you are using. \u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eDeploying the servlet\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eI am here using the tomcat container, the deploying part may vary depending upon the container that you use.\u003cbr /\u003e\u003cul\u003e\u003cli\u003eCreate a directory under the \u003cspan style\u003d\"font-weight: bold;\"\u003etomcat6.0/webapps\u003c/span\u003e directory, name it \u003cspan style\u003d\"font-weight: bold;\"\u003eproj1\u003c/span\u003e then under the proj1 directory create a directory \u003cspan style\u003d\"font-weight: bold;\"\u003eWEB-INF\u003c/span\u003e , then create a directory \u003cspan style\u003d\"font-weight: bold;\"\u003eclasses\u003c/span\u003e under the WEB-INF directory.\u003c/li\u003e\u003cli\u003eCopy the generated class file into the classes directory. \u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eDeployment Descriptor (DD)\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003eNow you would have to create the deployment descriptor ie the web.xml file that tells the container about information such as where the servlet class file is placed, what is the deployment name that you are using, what will be the name by which client will call the servlet and obviously various other parameters.\u003cbr /\u003e\u003cbr /\u003eThe deployment descriptor is given in the following code-box, copy the contents and save it as web.xml\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width: 380px; height: 250px;\"\u003e\u003cblockquote\u003e\u003cp\u003e\u0026lt;?xml version\u003d\"1.0\"?\u0026gt;\u003cbr /\u003e\u003cbr /\u003e\u0026lt;web-app xmlns\u003d\"http://java.sun.com/xml/ns/javaee\"\u003cbr /\u003exmlns:xsi\u003d\"http://www.w3.org/2001/XMLSchema-instance\"\u003cbr /\u003exsi:schemaLocation\u003d\"http://java.sun.com/xml/ns/javaee\u003cbr /\u003ehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"\u003cbr /\u003eversion\u003d\"2.5\"\u0026gt;\u003cbr /\u003e\u003cbr /\u003e\u0026lt;servlet\u0026gt;\u003cbr /\u003e\u0026lt;servlet-name\u0026gt;TestServlet\u0026lt;/servlet-name\u0026gt;\u003cbr /\u003e\u0026lt;servlet-class\u0026gt;infoServlet\u0026lt;/servlet-class\u0026gt;\u003cbr /\u003e\u0026lt;/servlet\u0026gt;\u003cbr /\u003e\u003cbr /\u003e\u0026lt;servlet-mapping\u0026gt;\u003cbr /\u003e\u0026lt;servlet-name\u0026gt;TestServlet\u0026lt;/servlet-name\u0026gt;\u003cbr /\u003e\u0026lt;url-pattern\u0026gt;/submit\u0026lt;/url-pattern\u0026gt;\u003cbr /\u003e\u0026lt;/servlet-mapping\u0026gt;\u003cbr /\u003e\u0026lt;/web-app\u0026gt;\u003cbr /\u003e\u003c/p\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/div\u003e\u003cbr /\u003eExplanation:-\u003cbr /\u003e\u003cbr /\u003eOne should not worry about the webapp tag just copy and paste it.\u003cbr /\u003e\u003cbr /\u003eThe \u003cspan style\u003d\"font-weight: bold;\"\u003e\u0026lt;\u003cspan\u003eservlet\u003c/span\u003e\u0026gt;\u003c/span\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e \u003c/span\u003etag:- It defines the properties relating to your servlet. In this case we map the deployment name ie the name specified by \u0026lt;servlet-name\u0026gt; tag , to the path to actual class file i.e the name specified by the \u0026lt;servlet-class\u0026amp;gt tag; i.e the infoservlet, notice here that we do not specify the name as infoServlet.java as it is the java class file.\u003cbr /\u003e\u003cbr /\u003eThe \u003cspan style\u003d\"font-weight: bold;\"\u003e\u0026lt;servlet-mapping \u0026gt;\u003c/span\u003e tag :-It is used to map the name by which the client will access the servlet to the deployment name. Here the \u0026lt;url-pattern\u0026gt; specifies the name by which the client accesses the servlet.\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eDeploying (Contd .....)\u003c/span\u003e : Copy the web.xml file and save it under the \u003cspan style\u003d\"font-weight: bold;\"\u003eWEB-INF\u003c/span\u003e directory. \u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow we would have to create the simple html form in which user will enter the details and when he clicks on the submit button the post request will be send to the server. The container will then invoke the servlet to do its operation and servlet will generate the response which will be converted to http repsonse by the container and send back to the client. Simple isn't it. The code for the form is given below, copy and paste the code and \u003cspan style\u003d\"font-weight: bold;\"\u003esave it\u003c/span\u003e as \u003cspan style\u003d\"font-weight: bold;\"\u003eform.html \u003c/span\u003eunder the \u003cspan style\u003d\"font-weight: bold;\"\u003eproj1\u003c/span\u003e directory.\u003cbr /\u003e\u003cdiv id\u003d\"codebox\"\u003e\u003cbr /\u003e\u003cpre id\u003d\"prestyle\" style\u003d\"width: 350px; height: 250px;\"\u003e\u003cblockquote\u003e\u0026lt;html\u0026gt;\u003cbr /\u003e\u0026lt;head\u0026gt;\u003cbr /\u003e\u0026lt;title\u0026gt; A temporary page \u0026lt;/title\u0026gt;\u003cbr /\u003e\u0026lt;/head\u0026gt;\u003cbr /\u003e\u0026lt;body\u0026gt;\u003cbr /\u003e\u0026lt;h1\u0026gt;\u003cbr /\u003eFill up the following form\u003cbr /\u003e\u0026lt;/h1\u0026gt;\u003cbr /\u003e\u0026lt;form id\u003d\"2314\" method\u003d\"post\" action\u003d\"submit\"\u0026gt;\u003cbr /\u003e\u0026lt;center\u0026gt;\u003cbr /\u003eEnter your name \u0026lt;input name\u003d\"text_field\" type\u003d\"text\" value\u003d\"\"/\u0026gt;\u0026lt;br/\u0026gt;\u0026lt;br/\u0026gt;\u003cbr /\u003eEnter your password \u0026lt;input name\u003d\"password_field\" type\u003d\"password\" value\u003d\"\" /\u0026gt; \u0026lt;br/\u0026gt;\u0026lt;br/\u0026gt;\u003cbr /\u003e\u0026lt;br/\u0026gt;\u003cbr /\u003e\u0026lt;input type\u003d\"submit\" value\u003d\"submit form\"\u0026gt;\u003cbr /\u003e\u0026lt;/center\u0026gt;\u003cbr /\u003e\u0026lt;/form\u0026gt;\u003cbr /\u003e\u0026lt;/body\u0026gt;\u003cbr /\u003e\u0026lt;/html\u0026gt;\u003c/p\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/div\u003e\u003cbr /\u003eThe html code is pretty simple and you should note only 2 things :-\u003cbr /\u003e\u003cbr /\u003e\u003col\u003e\u003cli\u003e The form is using the post method so a post query is generated when the user clicks on the submit button.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThe input field name property is used by the servlet to access the parameter values entered by the user.\u003cbr /\u003e\u003c/li\u003e \u003c/ol\u003e\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eRunning the servlet\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003ePhew! everything is done now just the working of application is to be seen.\u003cbr /\u003e\u003cul\u003e\u003cli\u003eStart the apache tomcat service. Note in case you have problems launching it just go to its binary directory i.e the bin directory and launch it from there, it will be launched in a command prompt.\u003cbr /\u003e\u003c/li\u003e\u003cli\u003eOpen the browser and access the html form and type \u003cspan style\u003d\"font-weight: bold;\"\u003ehttp://localhost:8080/proj1/form.html\u003c/span\u003e  in your browser  navigation bar.\u003c/li\u003e\u003cli\u003eFill up the details and click on the submit button and voila! you will see the response generated by the servlet which will be the user-name and the date that you entered in the form.\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003eNote:If you have any problems do post a comment and i will post the solution.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-3428424231093375614?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/3428424231093375614/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/java-servletsintroductioncompilingdeplo.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/3428424231093375614"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/3428424231093375614"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/java-servletsintroductioncompilingdeplo.html","title":"Java Servlets:Introduction,Compiling,Deploying and Running"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://3.bp.blogspot.com/_s4Oz51luJRA/SkdORR7UpTI/AAAAAAAAARg/yq1NfDJbPXk/s72-c/ServletHierarchy.gif","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-7477648982038230667"},"published":{"$t":"2009-06-28T11:21:00.003+05:30"},"updated":{"$t":"2009-06-28T11:40:05.051+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Counter Strike 1.6"}],"title":{"type":"text","$t":"Change cs 1.6 start-up/menu music"},"content":{"type":"html","$t":"To \u003cspan style\u003d\"font-weight: bold;\"\u003echange cs 1.6 start-up or menu music\u003c/span\u003e, follow these simple steps:-\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003eOpen the directory where counter strike is installed and navigate to the cstrike directory.\u003cbr /\u003e\u003cbr /\u003eFor \u003cspan style\u003d\"font-weight: bold;\"\u003enon steam cs 1.6\u003c/span\u003e:-\u003cbr /\u003eIf you don't know where the installation directory is just right click on the shortcut, choose properties and then click on the find target button.\u003cbr /\u003e\u003cbr /\u003eFor \u003cspan style\u003d\"font-weight: bold;\"\u003esteam cs 1.6\u003c/span\u003e:-\u003cbr /\u003eRight click on the steam shortcut, choose properties and then click on the find target button.\u003cbr /\u003eNow navigate to under the cstrike folder by following this sequence:-  \u003cspan style\u003d\"font-weight: bold;\"\u003eSteamApps-\u0026gt;\"your steam id\"-\u0026gt;counter-strike -\u0026gt;cstrike.\u003c/span\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow under the cstrike directory, \u003cspan style\u003d\"font-weight: bold;\"\u003eif \u003c/span\u003ethere is a folder named \u003cspan style\u003d\"font-weight: bold;\"\u003emedia\u003c/span\u003e then open it else you should create the media folder.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eIn the media folder delete the \u003cspan style\u003d\"font-weight: bold;\"\u003egamestartup.mp3\u003c/span\u003e file and replace it with a \u003cspan style\u003d\"font-weight: bold;\"\u003emp3 \u003c/span\u003emusic file of your choice, then rename the music file to \u003cspan style\u003d\"font-weight: bold;\"\u003egamestartup.\u003c/span\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow Launch the game and listen to your favorite music in the game.\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeILSPtptpI/AAAAAAAAAFQ/hqzJckf2mAI/s1600-h/2s8ivfc.jpg\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 331px; height: 400px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeILSPtptpI/AAAAAAAAAFQ/hqzJckf2mAI/s400/2s8ivfc.jpg\" alt\u003d\"counter strike image\" id\u003d\"BLOGGER_PHOTO_ID_5323830117588907666\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-7477648982038230667?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/7477648982038230667/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/change-cs-16-start-upmenu-music.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/7477648982038230667"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/7477648982038230667"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/change-cs-16-start-upmenu-music.html","title":"Change cs 1.6 start-up/menu music"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://2.bp.blogspot.com/_s4Oz51luJRA/SeILSPtptpI/AAAAAAAAAFQ/hqzJckf2mAI/s72-c/2s8ivfc.jpg","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-4964769151744638773"},"published":{"$t":"2009-06-27T19:42:00.009+05:30"},"updated":{"$t":"2009-06-28T20:07:42.658+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Cool Tutorials"}],"title":{"type":"text","$t":"Related posts widget for blogger/blogspot site"},"content":{"type":"html","$t":"The \u003cspan style\u003d\"font-weight: bold;\"\u003erelated posts widget\u003c/span\u003e is really helpful for your site because of the following reasons:-\u003cbr /\u003e\u003cbr /\u003e\u003col\u003e\u003cli\u003eIt attracts the attention of the user viewing your website to other articles filed under the similar category i.e the posts filed under the same label. So a user generally ends up viewing those articles and in effect stays at your site for longer period of time.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eIt generates a lot of internal links from which a user might be able to find related information on your site and these internal links are good for SEO also. \u003c/li\u003e\u003c/ol\u003eTo add the widget to your just follow these simple steps:-\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003eOpen the \u003cspan style\u003d\"font-weight: bold;\"\u003elayout section\u003c/span\u003e of your blog and then go to the \u003cspan style\u003d\"font-weight: bold;\"\u003eEdit Html\u003c/span\u003e Section. \u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow add the following code just above the \u0026lt;/head\u0026gt; tag. This code is added in the head section because  style-sheets  are generally defined in the head section.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 400px; height: 250px;\"\u003e\u003cblockquote\u003e\u0026lt;style\u0026gt;\u003cbr /\u003e#related-posts {\u003cbr /\u003efloat : left;\u003cbr /\u003ewidth : 540px;\u003cbr /\u003emargin-top:20px;\u003cbr /\u003emargin-left : 5px;\u003cbr /\u003emargin-bottom:20px;\u003cbr /\u003efont : 12px Verdana;\u003cbr /\u003emargin-bottom:10px;\u003cbr /\u003e}\u003cbr /\u003e#related-posts .widget {\u003cbr /\u003elist-style-type : none;\u003cbr /\u003emargin : 5px 0 5px 0;\u003cbr /\u003epadding : 0;\u003cbr /\u003e}\u003cbr /\u003e#related-posts .widget h2, #related-posts h2 {\u003cbr /\u003ecolor : #940f04;\u003cbr /\u003efont-size : 20px;\u003cbr /\u003efont-weight : normal;\u003cbr /\u003emargin : 5px 7px 0;\u003cbr /\u003epadding : 0 0 5px;\u003cbr /\u003e}\u003cbr /\u003e#related-posts a {\u003cbr /\u003ecolor : #054474;\u003cbr /\u003efont-size : 12px;\u003cbr /\u003etext-decoration : none;\u003cbr /\u003e}\u003cbr /\u003e#related-posts a:hover {\u003cbr /\u003ecolor : #054474;\u003cbr /\u003etext-decoration : none;\u003cbr /\u003e}\u003cbr /\u003e#related-posts ul {\u003cbr /\u003eborder : medium none;\u003cbr /\u003emargin : 10px;\u003cbr /\u003epadding : 0;\u003cbr /\u003e}\u003cbr /\u003e#related-posts ul li {\u003cbr /\u003edisplay : block;\u003cbr /\u003ebackground : url(\"http://ramannanda9.fileave.com/0041_sparklet.png\") no-repeat 0 0;\u003cbr /\u003emargin : 0;\u003cbr /\u003epadding-top : 0;\u003cbr /\u003epadding-right : 0;\u003cbr /\u003epadding-bottom : 1px;\u003cbr /\u003epadding-left : 16px;\u003cbr /\u003emargin-bottom : 5px;\u003cbr /\u003eline-height : 2em;\u003cbr /\u003eborder-bottom:1px dotted #cccccc;\u003cbr /\u003e}\u003cbr /\u003e\u003cbr /\u003e\u0026lt;/style\u0026gt;\u003cbr /\u003e\u0026lt;script src\u003d'http://ramannanda9.fileave.com/related_widgets.js' type\u003d'text/javascript'/\u0026gt;\u003c/blockquote\u003e\u003c/pre\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow click on the expand widget template and search for \u0026lt;data:post.body\u0026gt; and add the following code after the \u0026lt;/p\u0026gt; tag.\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 400px; height: 150px;\"\u003e\u003cblockquote\u003e\u0026lt;b:if cond\u003d'data:blog.pageType \u003d\u003d \"item\"'\u0026gt;\u003cbr /\u003e\u0026lt;div id\u003d\"related-posts\"\u0026gt;\u003cbr /\u003e\u0026lt;font face\u003d'Arial' size\u003d'3'\u0026gt;\u0026lt;b\u0026gt;Related Posts : \u0026lt;/b\u0026gt;\u0026lt;/font\u0026gt;\u0026lt;font color\u003d'#FFFFFF'\u0026gt;\u0026lt;b:loop values\u003d'data:post.labels' var\u003d'label'\u0026gt;\u0026lt;data:label.name/\u0026gt;\u0026lt;b:if cond\u003d'data:label.isLast !\u003d \"true\"'\u0026gt;,\u0026lt;/b:if\u0026gt;\u0026lt;b:if cond\u003d'data:blog.pageType \u003d\u003d \"item\"'\u0026gt;\u003cbr /\u003e\u003cbr /\u003e\u0026lt;script expr:src\u003d'\"/feeds/posts/default/-/\" + data:label.name + \"?alt\u003djson-in-script\u0026amp;callback\u003drelated_results_labels\u0026amp;max-results\u003d5\"' type\u003d'text/javascript'/\u0026gt;\u0026lt;/b:if\u0026gt;\u0026lt;/b:loop\u0026gt; \u0026lt;/font\u0026gt;\u003cbr /\u003e\u0026lt;script type\u003d'text/javascript'\u0026gt; removeRelatedDuplicates(); printRelatedLabels();\u003cbr /\u003e\u0026lt;/script\u0026gt;\u003cbr /\u003e\u0026lt;/div\u0026gt;\u0026lt;/b:if\u0026gt;\u003c/blockquote\u003e\u003c/pre\u003e\u003cbr /\u003eNow you can customize the number of related posts that are displayed by changing the value of the variable \u003cspan style\u003d\"font-weight: bold;\"\u003emax_results \u003c/span\u003eto any number you want (try to keep it small, 5 is the default value). Just use ctrl+f to find the variable max_results with ease. The data for related posts is read from your site feed.\u003cbr /\u003e\u003cbr /\u003eNow just click on save the template and you will have the \u003cspan style\u003d\"font-weight: bold;\"\u003eworking related posts widget for your blogger site\u003c/span\u003e.\u003c/li\u003e\u003c/ul\u003eYou should not encounter any problems in case of install but in case you do, post a comment i will post the solution.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-4964769151744638773?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/4964769151744638773/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/related-posts-widget-for.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4964769151744638773"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4964769151744638773"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/related-posts-widget-for.html","title":"Related posts widget for blogger/blogspot site"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-1070367687229727503"},"published":{"$t":"2009-06-26T17:06:00.009+05:30"},"updated":{"$t":"2009-06-26T19:25:44.883+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Unix/Linux"}],"title":{"type":"text","$t":"Changing the Linux root password"},"content":{"type":"html","$t":"There are a couple of ways in which you can change the \u003cspan style\u003d\"font-weight: bold;\"\u003eroot password of a \u003c/span\u003elinux\u003cspan style\u003d\"font-weight: bold;\"\u003e system\u003c/span\u003e, if you have forgotten it.\u003cbr /\u003e\u003cbr /\u003eThe efficacious and fast way of doing this is:-\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e1.\u003c/span\u003eGetting the shell in read write mode :-\u003cbr /\u003e\u003col\u003e\u003cli\u003eAt the lilo prompt type \" \u003cspan style\u003d\"font-weight: bold;\"\u003elinux init\u003d/bin/bash rw\u003c/span\u003e \" without the quotes . Now what this does is, it gives us the bash shell (Bourne again shell) in read write mode and does not start with \u003cspan style\u003d\"font-weight: bold;\"\u003e/sbin/init\u003c/span\u003e , \u003cspan style\u003d\"font-weight: bold;\"\u003e/etc/rc.d/*\u003c/span\u003e and rc.local and so on and so forth routines.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow use the \u003cspan style\u003d\"font-weight: bold;\"\u003epasswd\u003c/span\u003e command and type the new password for root but you should not restart the system yet as it can cause data crash.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eAfter you have changed the password, remount the partition in read only mode, this can be done by using the command  \u003cspan class\u003d\"docEmphBold\"\u003e\"\u003cspan style\u003d\"font-weight: bold;\"\u003e \u003c/span\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003emount -o remount,ro /\u003c/span\u003e\u003c/span\u003e \" without the quotes.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow you can reboot manually without the risk of loosing the data as the partition is in read only mode\u003cbr /\u003e\u003c/li\u003e\u003c/ol\u003e\u003cbr /\u003eThe other way of doing it is also efficacious but it does take a step more and is really a oaf thing to do if you know the first way.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e2.\u003c/span\u003e Getting the shell in read mode :-\u003cbr /\u003e\u003col\u003e\u003cli\u003eAt the lilo prompt type \"\u003cspan style\u003d\"font-weight: bold;\"\u003el\u003c/span\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003einux init\u003d/bin/bash\u003c/span\u003e\" . This does that same but gives us the bash shell in read mode.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eBut we want it in read-write mode so that the changes can be written to the /etc/passwd and /etc/shadow file. So for that execute the command \u003cspan style\u003d\"font-weight: bold;\"\u003e\"\u003c/span\u003e\u003cspan class\u003d\"docEmphBold\"\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e mount -o remount,rw / \"\u003c/span\u003e\u003c/span\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e  \u003c/span\u003e(without the quotes). This remounts the /(root partition) in read write mode.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow you can follow the steps 2 to 4 in the aforementioned solution for accomplishing the task.\u003cbr /\u003e\u003c/li\u003e\u003c/ol\u003e\u003cbr /\u003e\u003cbr /\u003eThe last and most dreaded way:-\u003cbr /\u003e\u003cbr /\u003e3. \u003cspan style\u003d\"font-weight: bold;\"\u003eRunning the system at init runlevel 1\u003c/span\u003e:- This should be done with complete caution because even if you misplace a single letter or white-space while editing the kernel line in the boot menu, the system would give you the error that it cannot find the kernel and if you still want to follow this method then do so with utmost caution.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eNote:\u003c/span\u003eAlmost all the  system administrators password protect the boot menu  but in case it is not password protected then you can easily change the\u003cspan style\u003d\"font-weight: bold;\"\u003e root password.\u003cbr /\u003e\u003cbr /\u003e\u003c/span\u003eJust follow these steps:-\u003cbr /\u003e\u003col\u003e\u003cli\u003eIf you are using a dual boot system, then you would be using Grub boot loader and at the start-up you would be given the time to select which os you want to boot to. Interrupt the normal boot process by pressing any key (except enter of course) and select the linux partition and press e (for editing the Grub boot option).\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eThe boot commands will be displayed to you, Select the command representing the linux kernel from the list. The line would be of the form \u003cspan style\u003d\"font-weight: bold;\"\u003e\"kernel /vmlinuz-....\"\u003c/span\u003e and press e again to edit this line.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eBe careful in this step, for changing the boot process to init run-level 1 , type the space followed by 1\u003cspan style\u003d\"font-weight: bold;\"\u003e at the end of the line \u003c/span\u003e\u003cspan\u003e(after the /rhgb)\u003c/span\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e. \u003c/span\u003eThis tells the system to run only the scripts of run-level 1 ie rc1.d (remember we by passed this in the first 2 solutions). Now just press b to continue the boot process which will leave you with a bare shell with #prompt.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eType the \u003cspan style\u003d\"font-weight: bold;\"\u003epasswd\u003c/span\u003e command, you will be asked to enter the new root password and after you confirm it, reboot the system.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eNow you can log into the system with the new root password that you entered in the previous step.\u003cbr /\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-1070367687229727503?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/1070367687229727503/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/changing-linux-root-password.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/1070367687229727503"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/1070367687229727503"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/changing-linux-root-password.html","title":"Changing the Linux root password"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-2037168862153649590"},"published":{"$t":"2009-06-23T15:06:00.006+05:30"},"updated":{"$t":"2009-06-23T17:14:50.701+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Counter Strike 1.6"}],"title":{"type":"text","$t":"Configure Hlds server for counter strike 1.6:Launch options and rates"},"content":{"type":"html","$t":"This tutorial of \u003cspan style\u003d\"font-weight: bold;\"\u003eHlds server  \u003c/span\u003efor \u003cspan style\u003d\"font-weight: bold;\"\u003ecounter strike 1.6\u003c/span\u003e mainly concentrates upon the following aspects:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eLaunching\u003c/span\u003e the \u003cspan style\u003d\"font-weight: bold;\"\u003ehlds\u003c/span\u003e and its \u003cspan style\u003d\"font-weight: bold;\"\u003elaunch options\u003c/span\u003e.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eServer rates\u003c/span\u003e for lag and choke free game-play.\u003c/li\u003e\u003c/ul\u003eThis tutorial does not cover the configuration of modem/router as it has been already covered, visit this \u003ca href\u003d\"http://ramannanda.blogspot.com/2009/05/configure-hlds-server-for-counter.html\"\u003elink\u003c/a\u003e for that.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e1. Launching HLDS and it's launch options\u003c/span\u003e :- It can be launched in the following modes\u003cbr /\u003e\u003col\u003e\u003cli\u003e GUI mode\u003c/li\u003e\u003cli\u003e Console mode\u003c/li\u003e\u003c/ol\u003eYou should prefer launching the server from the console mode as it consumes less resources and runs smoothly.\u003cbr /\u003e\u003cbr /\u003eTo launch it in the console mode follow these steps:-\u003cbr /\u003e\u003cul\u003e\u003cli\u003eCreate a shortcut of hlds on the desktop.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003eRight click on the shortcut, select properties , select shortcut tab and in the target field \u003cspan style\u003d\"font-weight: bold;\"\u003eafter\u003c/span\u003e the game path (the path b/w the quotes),  copy and paste the following code.\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 400px; height: 50px;\"\u003e\u003cblockquote\u003e-console -game cstrike +sys_ticrate 1000 +heapsize 250000 +maxplayers 10 +map de_dust2\u003c/blockquote\u003e\u003c/pre\u003e\u003cbr /\u003eIn this you can change the value of maxplayers and the map to what you want.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eSetting up the rcon_password\u003c/span\u003e: One must set the \u003cspan style\u003d\"font-weight: bold;\"\u003ercon_password\u003c/span\u003e as it allows the server admin privileged commands like kick ban etc and if you do not set the rcon_password then anyone can execute those commands. To set the password execute  the command: \u003cspan style\u003d\"font-weight: bold;\"\u003ercon_password \"any-password\"\u003c/span\u003e where \"any-password\" is the password you want to use.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eIncreasing the process priority\u003c/span\u003e: Open the Windows task-manager, select the processes tab, select hlds.exe and right click on it and change its priority to realtime. This gives extra priority to the hlds process which reduces the lag.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003eChanging sv_lan\u003c/span\u003e:Change the parameter sv_lan to 0 from 1 in the \u003cspan style\u003d\"font-weight: bold;\"\u003eserver.cfg\u003c/span\u003e file in the cstrike directory for online game play else there is no need to change the value.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eAdding Master server\u003c/span\u003e:One must add the master servers so that the server gets listed in the list, when people search for the game servers . For that add the following lines of code to your server.cfg file\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 400px; height: 150px;\"\u003e\u003cblockquote\u003esetmaster add 69.28.151.162\u003cbr /\u003esetmaster add 72.165.61.189\u003cbr /\u003esetmaster add 207.173.177.11\u003cbr /\u003esetmaster add 68.142.72.250\u003cbr /\u003esetmaster add 65.73.232.251:27040\u003cbr /\u003esetmaster add 65.73.232.253:27040\u003cbr /\u003esetmaster add 207.173.177.12:27010\u003cbr /\u003esetmaster add 207.173.177.11:27010\u003cbr /\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e2. Server rates\u003c/span\u003e: These server rates are very important and must be set correctly for the lag and choke free game-play.\u003cbr /\u003e\u003cbr /\u003eFollow these steps:-\u003cbr /\u003e\u003col\u003e\u003cli\u003eInsert into the server.cfg file, the following alias based scripts that you can use to change the server rates easily. To change the rate just type the corresponding alias. For example:- if you want to set the rate to \"normal\" just type normal in the console.\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 350px; height: 100px;\"\u003e\u003cblockquote\u003ealias \"slow\" \"sv_minrate 6000;sv_maxrate 9000;sv_minupdaterate 14;sv_maxupdaterate 14;echo slow rate set\"\u003cbr /\u003ealias \"normal\" \"sv_minrate 6000;sv_maxrate 13000;sv_minupdaterate 15;sv_maxupdaterate 20;echo normal rate set\"\u003cbr /\u003ealias \"fast\" \"sv_minrate 10000;sv_maxrate 15000;sv_minupdaterate 20;sv_maxupdaterate 30;echo fast rate set\"\u003cbr /\u003ealias \"veryfast\" \"sv_minrate 10000;sv_maxrate 20000;sv_minupdaterate 30;sv_maxupdaterate 90;echo very fast rate set\" \u003c/blockquote\u003e\u003c/pre\u003e\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e Now you should turn off the logging feature which enhances the performance of the server as it does not have to write log files. Enter these settings into your server.cfg file.\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 350px; height: 150px;\"\u003e\u003cblockquote\u003elog off\u003cbr /\u003esv_logbans 0\u003cbr /\u003esv_logfile 0\u003cbr /\u003esv_log_onefile 0\u003cbr /\u003emp_logmessages 0\u003cbr /\u003emp_logdetail 0\u003cbr /\u003esv_unlag 1\u003cbr /\u003esv_maxunlag .1\u003cbr /\u003efps_max 500\u003c/blockquote\u003e\u003c/pre\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cli\u003eNow depending upon your connection speed, you should enter the corresponding rates to the server.cfg file.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eFor 256kbps :-\u003c/span\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 350px; height: 100px;\"\u003e\u003cblockquote\u003esv_rate 15000\u003cbr /\u003esv_cmdrate 66\u003cbr /\u003esv_cmdbackup 4\u003cbr /\u003esv_updaterate\u003cbr /\u003esv_resend 3\u003cbr /\u003emp_dlmax 256\u003cbr /\u003emp_decals 100\u003c/blockquote\u003e\u003c/pre\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eFor 512kbps\u003c/span\u003e:-\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 350px; height: 100px;\"\u003e\u003cblockquote\u003esv_rate 17000\u003cbr /\u003esv_cmdrate 80\u003cbr /\u003esv_cmdbackup 4\u003cbr /\u003emp_updaterate 80\u003cbr /\u003esv_resend 3\u003cbr /\u003emp_dlmax 420\u003cbr /\u003emp_decals 100\u003cbr /\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e For 1mbps\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003eor higher\u003c/span\u003e :-\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: 2px solid ; overflow: auto; color: rgb(0, 153, 255); width: 350px; height: 100px;\"\u003e\u003cblockquote\u003esv_rate 25000\u003cbr /\u003esv_cmdrate 101\u003cbr /\u003esv_cmdbackup 6\u003cbr /\u003emp_updaterate 101\u003cbr /\u003esv_resend 3\u003cbr /\u003emp_dlmax 768\u003cbr /\u003emp_decals 400\u003cbr /\u003e\u003c/blockquote\u003e\u003c/pre\u003e\u003c/li\u003e\u003c/ol\u003e\u003cbr /\u003eThese settings should give the players playing on your \u003cspan style\u003d\"font-weight: bold;\"\u003ehlds\u003c/span\u003e  choke free and lag free game-play.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeILSPtptpI/AAAAAAAAAFQ/hqzJckf2mAI/s1600-h/2s8ivfc.jpg\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 331px; height: 400px;\" src\u003d\"http://2.bp.blogspot.com/_s4Oz51luJRA/SeILSPtptpI/AAAAAAAAAFQ/hqzJckf2mAI/s400/2s8ivfc.jpg\" alt\u003d\"counter strike image\" id\u003d\"BLOGGER_PHOTO_ID_5323830117588907666\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-2037168862153649590?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/2037168862153649590/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/configure-hlds-server-for-counter.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2037168862153649590"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/2037168862153649590"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/configure-hlds-server-for-counter.html","title":"Configure Hlds server for counter strike 1.6:Launch options and rates"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://2.bp.blogspot.com/_s4Oz51luJRA/SeILSPtptpI/AAAAAAAAAFQ/hqzJckf2mAI/s72-c/2s8ivfc.jpg","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-4742758023751773113"},"published":{"$t":"2009-06-23T14:49:00.005+05:30"},"updated":{"$t":"2009-06-23T15:05:49.593+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Unix/Linux"}],"title":{"type":"text","$t":"partprobe command: Update partition table without reboot"},"content":{"type":"html","$t":"\u003cp\u003e     \u003cb\u003epartprobe\u003c/b\u003e is a program that tells the operating system kernel about the partition table changes  by requesting  the operating system to re-read the partition table again so that you do not have to reboot for the changes to appear on the partition table. A reboot is what the system administrators just cannot do on the system running web server's so for them this command is of utmost importance.\u003cbr /\u003e\u003c/p\u003e\u003cp\u003eThe \u003cspan style\u003d\"font-weight: bold;\"\u003ecommand and its option\u003c/span\u003e\u003c/p\u003e\u003cp\u003epartprobe [-d] [-s] [-h] [device]\u003c/p\u003e\u003cp\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-d\u003c/span\u003e : Don't update the partition table, it is what you normally don't intend to do when you change the partition tables\u003cbr /\u003e\u003c/p\u003e\u003cp\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e \u003c/span\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-s \u003c/span\u003e: for showing summary of the devices and their partitions\u003cbr /\u003e\u003c/p\u003e\u003cp\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-h\u003c/span\u003e: To show summary of options\u003c/p\u003e\u003cp\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003edevice\u003c/span\u003e: The hardware device /dev/hda , /dev/hdb etc\u003c/p\u003e\u003cp\u003e\u003cbr /\u003e \u003c/p\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-4742758023751773113?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/4742758023751773113/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/partprobe-command-update-partition.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4742758023751773113"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/4742758023751773113"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/partprobe-command-update-partition.html","title":"partprobe command: Update partition table without reboot"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-8875473743852889546"},"published":{"$t":"2009-06-23T13:10:00.003+05:30"},"updated":{"$t":"2009-06-23T14:24:41.280+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Computer Networking"}],"title":{"type":"text","$t":"The netstat command"},"content":{"type":"html","$t":"The \u003cspan style\u003d\"font-weight: bold;\"\u003enetstat\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003ecommand \u003c/span\u003edisplays the network connections that have been established, the port's which these connections are using, the routing table, the statistics related to an interface(eth0 etc) and statistics for a particular protocol(ipv4,ipv6,icmp).  You can use it to see whether a trojan or a backdoor connection is established with your pc acting as a server to a client (remote pc).\u003cbr /\u003e\u003cbr /\u003eThe \u003cspan style\u003d\"font-weight: bold;\"\u003enetstat command\u003c/span\u003e and its \u003cspan style\u003d\"font-weight: bold;\"\u003eoptions\u003c/span\u003e are explained below:-\u003cbr /\u003e\u003cbr /\u003eNETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]\u003cbr /\u003e\u003cbr /\u003eThe options:-\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-a :\u003c/span\u003eIt displays all the connections and listening ports(the server listens for a connection to be established).\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-b :\u003c/span\u003e It displays the program(executable) that is used for establishing connection.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-e\u003c/span\u003e: It displays the packet statistics at ethernet level. One often uses it along with the -s option.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-n:\u003c/span\u003e It displays the addresses in the numerical form(ip addresses) rather than using their names.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-o:\u003c/span\u003e It displays the owning process id that is a process id of the process that is using the connection. The process id's obtained can be used to check whether the process is malicious  or not. You can check it by using the tasklist command with /SVC switch or can use process monitor to do the same and then by comparing the PID of the output with the output of the tasklist command, you can see whether the process is a malware and if it is the case then you should immediately check your computer for trojans and backdoors and try and terminate the process manually.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-p protocol:\u003c/span\u003e It displays the connection's that are established for the protocol  mentioned. The protocol can be IPV4,IPV6,TCP,UDP etc.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-r\u003c/span\u003e : It displays the routing table. A routing table shows the interfaces, active routes under which it shows the gateway, the destination address, the subnet mask etc.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-s\u003c/span\u003e :It displays the statistics that are listed for each protocol seperately\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e-v:\u003c/span\u003e It is used along with -b and shows the sequence of components (ie dll's) used to establish connection.\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003einterval\u003c/span\u003e: It displays the statistics after the seconds specified by the interval.\u003cbr /\u003e\u003cbr /\u003eExample usages:\u003cbr /\u003e\u003cbr /\u003e1) \u003cspan style\u003d\"font-weight: bold;\"\u003enetstat -b -v\u003c/span\u003e : It shows the sequence of components used to establish connection for the processes listed by b option.\u003cbr /\u003e\u003cbr /\u003e2) \u003cspan style\u003d\"font-weight: bold;\"\u003enetstat -e\u003c/span\u003e \u003cspan style\u003d\"font-weight: bold;\"\u003e-s:\u003c/span\u003e It displays the total bytes that are sent or received and the per protocol statistics.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-8875473743852889546?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/8875473743852889546/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/netstat-command.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/8875473743852889546"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/8875473743852889546"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/netstat-command.html","title":"The netstat command"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-6546406097120808124"},"published":{"$t":"2009-06-16T10:55:00.005+05:30"},"updated":{"$t":"2009-06-16T20:11:12.085+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Programming Stuff"}],"title":{"type":"text","$t":"JSON:The Javascript Object Notation file format"},"content":{"type":"html","$t":"What is the \u003ca href\u003d\"http://www.fileextensionjson.com/\"\u003eFile Extension JSON\u003c/a\u003e ?\u003cbr /\u003e\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eJSON\u003c/span\u003e is a lightweight, language independent\u003cspan style\u003d\"font-weight: bold;\"\u003e \"data \"\u003c/span\u003e interchange format. It was derived from ECMAScript programming language standard. The MIME content type for it is application/json.\u003cbr /\u003eThe file extension for it is .json. \u003cspan style\u003d\"font-weight: bold;\"\u003eJSON\u003c/span\u003e defines a small set of formatting or rules for portable or language independent representation of data.\u003cspan style\u003d\"font-weight: bold;\"\u003e JSON\u003c/span\u003e can represent \u003cspan style\u003d\"font-weight: bold;\"\u003efour primitive types namely string, number, boolean, null \u003c/span\u003eand it can also be used to represent \u003cspan style\u003d\"font-weight: bold;\"\u003etwo structured types namely objects and arrays\u003c/span\u003e.\u003cbr /\u003e\u003cbr /\u003eAn \u003cspan style\u003d\"font-weight: bold;\"\u003eobject\u003c/span\u003e is a name-value pair similar to the dictionary data type in python where the name is a string and value can be string, number, null or boolean, object or array\u003cspan style\u003d\"font-weight: bold;\"\u003e.\u003cbr /\u003eFor  example\u003c/span\u003e :- A car can be represented in an object representation as;-\u003cbr /\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e \"cars\":{\"model\":\"2006\", \"manufacturer\":\"Audi\",\"price\":\"20000 USD\"}\u003c/span\u003e .\u003cbr /\u003eAn array on the other hand is an ordered collection of similar data items.\u003cbr /\u003e\u003cbr /\u003eJSON was designed to be minimal, portable and as a subset of Javascript. The JSON text is encoded in Unicode and default encoding is UTF-8. The code for generating JSON text from the XML representaion is available for programming languages like java, python, php.\u003cbr /\u003e\u003cbr /\u003eThe \u003ca href\u003d\"http://www.fileextensionjson.com/\"\u003eFile Extension JSON\u003c/a\u003e is readily recognized and the JSON data is easily consumed by a simple javascript based script because it does not have to do any additional parsing. The following code snippet shows how you can use it to represent data with utmost ease.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: medium groove ; overflow: auto; color: rgb(0, 153, 255); width: 400px; height: 300px;\"\u003e\u003cblockquote\u003e{\u003cbr /\u003e\"customers\" : {\u003cbr /\u003e\"customer\" : {\u003cbr /\u003e\"@attributes\" : {\u003cbr /\u003e   \"id\" : \"2314\"\u003cbr /\u003e},\u003cbr /\u003e\"name\" : \"Raman deep\",\u003cbr /\u003e\"phone\" : \"9967345612\",\u003cbr /\u003e\"purchases\": \"30000 USD\"\u003cbr /\u003e\"address\" : {\u003cbr /\u003e   \"street\" : \"23/25 Rajouri garden\",\u003cbr /\u003e   \"city\" : \"New Delhi\",\u003cbr /\u003e   \"state\" : \"Delhi\",\u003cbr /\u003e   \"zip_code\" : \"654321\"\u003cbr /\u003e}\u003cbr /\u003e}\u003cbr /\u003e}\u003cbr /\u003e}\u003c/blockquote\u003e\u003c/pre\u003e\u003cbr /\u003e\u003cbr /\u003ewhereas its xml representation is shown below and as can be seen by comparing these two representations that the former one is easy to parse as it uses javascript object and array data types to represent data and hence is used more nowadays.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"border: medium groove ; overflow: auto; color: rgb(0, 153, 255); width: 400px; height: 300px;\"\u003e\u003cblockquote\u003e\u0026lt;customer\u0026gt;\u003cbr /\u003e\u0026lt;customer id\u003d\"2314\"\u0026gt;\u003cbr /\u003e \u0026lt;name\u0026gt;Raman deep\u0026lt;/name\u0026gt;\u003cbr /\u003e \u0026lt;phone\u0026gt;9967345612\u0026lt;/phone\u0026gt;\u003cbr /\u003e \u0026lt;purchases\u0026gt;30000 USD \u0026lt;purchases\u0026gt;\u003cbr /\u003e \u0026lt;address\u0026gt;\u003cbr /\u003e     \u0026lt;street\u0026gt;23/25 Rajouri Garden\u0026lt;/street\u0026gt;\u003cbr /\u003e     \u0026lt;city\u0026gt;New Delhi\u0026lt;/city\u0026gt;\u003cbr /\u003e     \u0026lt;state\u0026gt;Delhi\u0026lt;/state\u0026gt;\u003cbr /\u003e     \u0026lt;zipcode\u0026gt;654321\u0026lt;/zipcode\u0026gt;\u003cbr /\u003e \u0026lt;/address\u0026gt;\u003cbr /\u003e\u0026lt;/contact\u0026gt;\u003cbr /\u003e\u0026lt;/contacts\u0026gt;\u003c/blockquote\u003e\u003c/pre\u003e\u003cbr /\u003e\u003cbr /\u003eI hope this tutorial was brief and concise representation of the \u003ca href\u003d\"http://www.fileextensionjson.com/\"\u003eFile Extension JSON\u003c/a\u003e .\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-6546406097120808124?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/6546406097120808124/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/jsonthe-javascript-object-notation-file.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/6546406097120808124"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/6546406097120808124"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/jsonthe-javascript-object-notation-file.html","title":"JSON:The Javascript Object Notation file format"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-7351084055463323761.post-3784696752170102875"},"published":{"$t":"2009-06-11T15:24:00.009+05:30"},"updated":{"$t":"2009-06-11T20:27:26.014+05:30"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Softwares"}],"title":{"type":"text","$t":"Safari 4: The \"Cover Flow\" history feature"},"content":{"type":"html","$t":"\u003cspan style\u003d\"font-weight: bold;\"\u003eSafari 4 : \"The fastest web browser\"\u003c/span\u003e\u003cbr /\u003e\u003cbr /\u003eThe one thing that you expect from apple when they launch a new product is the \u003cspan style\u003d\"font-weight: bold;\"\u003e\"design and functionality\" \u003c/span\u003eof the product and the safari 4 web browser is just one example of how much attention software developers at apple pay to it.\u003cbr /\u003e\u003cbr /\u003eThe safari 4 browser is the fastest browser as endorsed by apple. It has incorporated newest features that are yet to be found in other web browsers, which makes Safari 4 special. The features that really stand out are as mentioned below:-\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003e\"Cover Flow\" history feature\u003c/span\u003e: The browser provides a cover flow history feature by which you can actually see the web pages that you visited in a cover flow view, so that you can recognize the page you want to visit again. This feature stands out of the lot as by using this feature it becomes much easier to visit a web site that you visited in the past because it is easier to visually remember the web site rather than remembering the url you visit.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SjDkLxlPOeI/AAAAAAAAARY/j4bdp-P23wA/s1600-h/cover-flow.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 207px;\" src\u003d\"http://1.bp.blogspot.com/_s4Oz51luJRA/SjDkLxlPOeI/AAAAAAAAARY/j4bdp-P23wA/s400/cover-flow.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5346023648627997154\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eThe Revamped History search feature\u003c/span\u003e: We know that all browsers provide url based search feature that you can use to find the web site you visited but the only concern is that \"it is difficult\" to remember the url of the web page you visited. So to overcome this drawback Safari 4  employs a search strategy by which one can search \"inside the content\" of the page that you visited which can be coupled with the \u003cspan style\u003d\"font-weight: bold;\"\u003e\" Cover flow \"\u003c/span\u003e feature to give tremendous results. As can be seen from the following snapshot the browser's history search feature, the search is also done in the content of the page also.\u003cbr /\u003e\u003c/li\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SjDkLidO-EI/AAAAAAAAARQ/6NwUvXLVZ_k/s1600-h/safari4_history_search.JPG\"\u003e\u003cimg style\u003d\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 339px;\" src\u003d\"http://3.bp.blogspot.com/_s4Oz51luJRA/SjDkLidO-EI/AAAAAAAAARQ/6NwUvXLVZ_k/s400/safari4_history_search.JPG\" alt\u003d\"\" id\u003d\"BLOGGER_PHOTO_ID_5346023644567894082\" border\u003d\"0\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/ul\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cul\u003e\u003cli\u003eThe browser also provides advanced caching scheme of the \u003cspan style\u003d\"font-weight: bold;\"\u003emost visited web pages\u003c/span\u003e, which makes them load much faster. The most visited web pages are represented in a nice, well laid out, panoramic view.\u003c/li\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003e\u003cspan style\u003d\"font-weight: bold;\"\u003eLightning fast speed\u003c/span\u003e: It gives you lightning fast speed compared to other browsers as the page load time is drastically reduced in safari-4. It has the so called \"Nitro Java script Engine\" that enhances speeds for the javascript based sites. I have tweaked my mozilla firefox for best performance and yet it comes nowhere near to the performance offered by it.\u003cbr /\u003e\u003c/li\u003e\u003c/ul\u003e\u003cbr /\u003eFollowing is the video of Craig Federighi showing of the aforementioned features of Safari 4 :-\u003cbr /\u003e\u003cbr /\u003e\u003cobject type\u003d\"application/x-shockwave-flash\" data\u003d\"http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/proteus2.swf\" width\u003d\"432\" height\u003d\"362\"\u003e\u003cparam name\u003d\"FlashVars\" value\u003d\"playerMode\u003dembedded\u0026amp;allowFullScreen\u003d1\u0026amp;flavor\u003dEmbeddedPlayerVersion\u0026amp;showOptions\u003d0\u0026amp;skin\u003dhttp://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/skins/proteus-tr.png\u0026amp;autoPlay\u003dfalse\u0026amp;movieAspect\u003d4.3\u0026amp;embeddingAllowed\u003dtrue\u0026amp;clockColor\u003d0x3b3b3b\u0026amp;marqueeColor\u003d0x70AF00\u0026amp;chromeColor\u003d0xCF0000\u0026amp;paramsURI\u003dhttp://video.techrepublic.com.com%2F2461-13792_11-310097.xml%3Fwidth%3D432%26height%3D362%26ptype%3D6475%26mode%3Dembedded\"\u003e\u003cparam name\u003d\"movie\" value\u003d\"http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/proteus2.swf\"\u003e\u003cparam name\u003d\"wmode\" value\u003d\"transparent\"\u003e\u003cparam name\u003d\"allowScriptAccess\" value\u003d\"always\"\u003e\u003c/object\u003e\u003cbr /\u003e\u003cbr /\u003eSo go ahead and download the safari browser for yourself and feel the difference in browsing experience.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/7351084055463323761-3784696752170102875?l\u003dramannanda.blogspot.com' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://ramannanda.blogspot.com/feeds/3784696752170102875/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/safari-4-cover-flow-history-feature.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/3784696752170102875"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/7351084055463323761/posts/default/3784696752170102875"},{"rel":"alternate","type":"text/html","href":"http://ramannanda.blogspot.com/2009/06/safari-4-cover-flow-history-feature.html","title":"Safari 4: The \"Cover Flow\" history feature"}],"author":[{"name":{"$t":"morph"},"uri":{"$t":"http://www.blogger.com/profile/03385350305653681268"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"09287697544681920497"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://1.bp.blogspot.com/_s4Oz51luJRA/SjDkLxlPOeI/AAAAAAAAARY/j4bdp-P23wA/s72-c/cover-flow.JPG","height":"72","width":"72"},"thr$total":{"xmlns$thr":"http://purl.org/syndication/thread/1.0","$t":"0"}}]}});