Sunday, October 7, 2007

What makes me happy

What a satisfying day it was. Its been nice, I felt good all through the day. Strangely, I cannot attribute any of the activities that I did today for the Feel Good factor I am experiencing.

Which one out of these made me happy?

1. Getting up early in the day,about 5:30 AM which I rarely do.
2. Stepping into Gym, which I hardly ever visited.
3. Mom inaugurating Reliance Fresh store in our building
4. Zipping on the roads in maruti 800, which belongs to my friend. I should confess that I really loved doing this. A small car which happens to listen to you and to just creep into those li'l places and make others go crazy!!
5. Visiting old school friend of mine. I got sucked into Happy days movie which I watched couple of days back. This brought back few memories of my school days and raked the old telephone directory of mine to check if any of the numbers are still working. Given that I finished my schooling 11 years back, hit 30% success with the contact numbers which is not bad.
6. Visiting few stores to buy a bicycle(Believe me! Its True). I seemed to got sucked into this thing seeing Deepak and Surya (Both my colleagues and are avid runners). Unfortunately, I wasn't clear on the kind of one I am looking for so nothing fruitful happened there.
7. Visiting a good friend of mine who is ill and taking him to a hospital. Well, we forced him to go for an injection which he furiously resisted. But we prevailed over him( Those li'l sadistic pleasures).
8. Watching Racing Stripes movie. I just liked the concept that right friends help to do something really nice.

I think I will isolate all these activities and try to replicate them one in a day(one of them cannot, but I will know that it is the one if all others fail). Then I can narrow it down and I will know what made me happy.. Well, Support Guys are always Support Guys. You cannot change the way they think..Sigh

I have resolved to workout more. I have reasons for this. Well, if you are thinking that I am trying to get into shape, then you are wrong. Who said Round is not a shape?? The excuses I have in my mind right now are:

1. This will help me cut down the amount of nicotine I consume. Seriously, good work out always helps you to cut down the amount you smoke.
2. Help me to buy a Royal Enfield.

Monday, September 24, 2007

Hibernate, antlr and Class loading issues

Hibernate uses HQL(Hibernate Query Language) for generating Object-Oriented queries.  Hence for this purposes ships a specific version of antlr.jar along with the Hibernate. Most of the App servers use antlr to generate the Query Language for the CMP beans. In this case, it is quite possible that the two versions of antlr are different. The difference in versions kicks in some of the exception messages when you try to access the application. Most of the time, the exception is reported in the HQLToken class.

In some cases, ClassNotFound/NoClassDef exceptions are also reported as the global library file is trying to access the Applications WEB-INF/classes or WEB-INF/lib folders.

To resolve it, the easiest option is to remove the version shipped with App Server(Please note that most of the App Server support personnel refuse to assist if the folder structure/folders are altered in the server installation).  In case you are not using any components that use Container Managed Persistence, the above work around works fine.  The problems kick in when any of your component tries to use Container Managed Persistence. Also, to make sure that you get proper support from your App Server vendor, the above approach should not be followed.

So what should be done?

To fix the issues, the class load/search/scope functionalty of the App server needs to be modified. The classes in the WEB-INF/classes or WEB-INF/lib folders should be loaded/searched prior to the global ones.

Fortunately most of the Application servers provide a way to change to such classloading functionality. Following is the consolidated list for the App Servers:

Pramati Server:

Add the following tag after <module-name>  in the generated pramati-j2ee-server.xml file for the application under the <web-module> element:

<prefer-deployed-web-classes>true</prefer-deployed-web-classes>

OC4J:
http://download.oracle.com/docs/cd/B25221_04/web.1013/b14433/classload.htm#CIHFABFI

WebLogic:
http://edocs.bea.com/wls/docs81/programming/classloading.html#1082452

Websphere:
http://publib.boulder.ibm.com/infocenter/wasinfo/v5r0/topic/com.ibm.websphere.base.doc/info/aes/ae/crun_classload.html

JBoss:
http://wiki.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration

Thursday, September 13, 2007

Flock

Are you one of those people who spend good amount of time publishing lot of posts and transferring photographs to one of your sites such as Flickr? Then you should check out Flock. This is very nice little browser(Of course a free one!). This remembers your account details and would post it to your blog/site for you. More details are here

If you are trying to upload Pics of yours to share it with your friends, then you are wasting your time and bandwidth in uploading the pics. Just download
Dekoh and start sharing the content from your desktop with fine grained control over what you share..

Want to know where your class is picked up from?

I safely assume that every one working on Java/J2EE platform must have come across class loading issues. Some (like Hrish) have the knack to crack them very efficiently. Some, like me, grope when trying to figure out the problem. Java says the first class it encounters in the classpath is picked up and the other versions of the same class later in the classpath are ignored. That sounds pretty simple. However, in some cases, jars contain manifest files pointing to various other jar files/locations. In such cases, it becomes very difficult to check where the class is being loaded from, unless you have good amount of patience to perform a search in TextPad and go through all the results for possible class loading issues. There have been few annoying situations because of the wrong class files picked up from the class path.

Here is the best way I use to figure out from which jar the class is being picked up. Start the java program with -verbose switch and it will print out the class being loaded and the jar/location from where it is being picked up. Sounds simple right? Yeah, but one caveat is, this would work only with Tiger(JDK5) version onwards. Good luck in your classloading issues, if any.

PS: Want to know the fancy names for various Java versions? Click here

Wednesday, September 12, 2007

JVM options for HP Java SDK

Its been long time that I actually worked with HP Java(even though for very short duration). Had one installation running on HP-Itanium machine which uses HP-Java. We wanted to turn on few JVM options for some analysis. Here is complete list of JVM options that are supported on HP Java. Its good to see HP-Java supporting few of the Sun non Standard JVM options as such.

Going Dutch

Any one who goes out to lunch with colleagues might have heard about this term. Today, I was having lunch with one of my good friend Bharani and suddenly this word popped up in our conversation. We both being avid fans of word origin stories, couldn't figure out how this was coined. Given by the name, could guess that it was something related to Dutch but could make no progress. You can check out the phrase on Wikipedia here. Well.. do not be disappointed that this has a negative meaning. As long as it does not hurt your pocket, it is good.

Friday, July 20, 2007

Adiós, amigo

It was last day for Anil at our office. I am really going to miss this guy. I think I complemented this guy very well. It's very important to have such a partner specially when working in Product support environment.

Anil, Thank you very much for all the things you did for me and for all the times we have worked together. I will always miss you.

All the best in your next endeavors.

PS: I will learn to play snookers and lets play someday when I visit your place.

JVM Crash

In my view JVM crash is the most dreaded problem that could ever happen to an App server on production machine. Unfortunately, one of our clients production machine has been crashing regularly with a certain version of JDK at high concurrency, We have looked at few crash reports and determined that the crash appears to be happening in one particular piece of code.

Our client being Premium partner with Sun was able to take it up with Sun Support Team. They needed some info from our team as well. So a conference call was setup.

This is how it went on

Sun: We have looked into the crash reports. But would like to know if there is any more info you could provide.
Me: Sure( I ended up saying the changes that we made).
Sun: Anything else?
Me: We might have lot of things to say. But what is that you are looking for?
Sun: I am just trying to get more info on the problem as there seems to be nothing in the logs. How did you determine that it was a problem with JDK?
Me: It crashed and produced a crash report which we shared with you, You being the developers for this JDK should be able to say more about the crash and why t happened
Sun: I do not see any specific info from the logs that you have sent
Me: But we see that there is this crash that always happens in a compiler thread.
Sun: Oh okay, that is good info. Let me forward this to my analysis team. But can you tell me where you got this info from?
Me: Did you happen to have a look at the crash logs? It says so in the logs.

After a day Sun team has come up with the outcome of the analysis. I thought it was impressive. The outcome was that there was a StackOverFlow during class-native compilation(Thanks to Rajiv for taking pains to explain me about this compilation).

There were few params that were suggested. One of them was to increase the compilerthreadstacksize. We have tried with few options 1024,2048 but to no avail. We had to go back to Sun team to report about our unsuccessful attempts. So there was one more angle that was brought into the picture. There might be some recursion in the code due to which the stackoverflow was happening. Well that sounded logical to me. But where was this happening? Since the current stacktrace in the jvm crash reported at jvm.dll, I am convinced to believe that it was happening somewhere in the native code of JVM. But the Sun team had to differ here. We wanted to know how we can check where this is happening.(All these were through email correspondenses).

Next day there was an email from the Sun team in which they have provided one way to check where the StackOverFlow was happening.

"We would like you to capture a thread dump before the crash so that we can analyze the issue. For accuracy, it would be really good if you can capture at least 3-4 thread dumps."

Whoa!!! How do I capture a thread dump before the JVM crash? I need some real Oracle to help me out in predicting the time of crash so that I can capture the thread dump before the crash!!

Well said SUN!!!!

Thursday, July 19, 2007

HP ServiceGuard

Been busy last couple of weeks. Some really nice things happened during these weeks. We had an opportunity of integrating Pramati Server with HP Serviceguard. We had one of our customer who was looking for clustering solutions. We have offered Pramati Cluster, which offers fail over, and load balancing. The End User had HP machines for production enviroment. With these HP machines he happened to purchase the Serviceguard framework which manages the fail over mechanism and manages switching of IP address( virtual IP address). We had setups with OS level clustering such as Windows Clustering, Sun Clustering. However, these happened to manage the things at a machine level. Well it really depended on how you are trying to configure it. Generally these run with Active-Active or Active-Passive configurations. Active-Active means that both the machines are in active state and the data replication happens on both machines and the load is balanced between the two machines. This is achieved by using a Virtual IP address that forwards the traffic to back end machines. In Active-Passive configuration, only one machine is active at any time and all the traffic that hits virtual IP address is routed to the active machine.

However, the HP Serviceguard was managing the thing at package level. For this service any application registered with it is a package and it manages the package between the cluster nodes. That is to say App server can be running on one cluster machine and Database on the other. These two are independent and could be running anywhere on the cluster machines. With this background, I assume it is now safe to go into the details of what happened during this integration.

The End User has called up asking for few queries on how Pramati Server can be fit into the picture. Pramati Server has clustering solution which works independent of OS level clustering. We have proposed the same. However since there is no single point of entry for the traffic for cluster nodes, we were left with either using a loadbalancer or leveraging on the HP Serviceguard framework to manage the traffic routing. The Application vendor was in favor of leveraging on the existing HP Serviceguard framework. Hence, there were series of conference calls setup with HP implementation team, the Application vendor and us.

This is where the real fun has begun.

The following is the snapshot of the conversation that took place between the HP implementation guy at the clients place and me:

With all introductions done…

Me: How does this HP Serviceguard thing work? ( Though I have done some ground work on the HP Serviceguard thing, couldnot find any relevant docs on how the applications should interact with it).

HP: The HP Serviceguard has to register your application and a virtual IP address configured for your application.

Me: Okay, how do we register the application with HP Service?

HP: You will have to provide us with few scripts using which we would register your app into HP Service.

Me: (I was happy to hear this. Good just few scripts and its all done). Okay, what would these scripts be and what is the desired functionality of the scripts.

HP: I am not really sure, but all I know is that you will have to provide me few scripts.

Me: ( What the !!!!). Okay, if you can tell us what these scripts should be doing, we might quickly put up few scripts for the desired functionality.

HP: ( He repeats the same thing). I am not really sure, but all I know is that you will have to provide me few scripts.

Me: ( Now I am beginning to worry. This is not going to end soon). Okay, then who would know about what kind of scripts are required?

HP: The HP Serviceguard team would know.

Me: Are you from the HP team or a reseller of the product?

HP: I am from HP team, but from implementation team. So I do not know what kind of scripts. All I know that is few scripts are supposed to be provided by you.

Me: (Does any shell script do? Such as the one to display simple helloworld on the Console?) Okay, can you give me numbers of your HP Service team so that I can talk to them?

HP: You wouldn’t be able to talk to them directly without any case id.

Me: Okay, can we create a case for this and then talk to them.

HP: Sure, we should be able to do that. Shoot across an email on the info required and I will get back to you.

So I shot across an email to this guy and waited for a day. Nothing happened on it. So decided to call up and check what’s happening:

Me: Looks like we haven’t got a reply from your team. Since we have logged a case, can we call them up and check with them?

HP: Yes, but I do not have the numbers for the HP Serviceguard team.

Me: Okay, how do we get this?

HP: Can you call up HP Sales team and check with them?

Me: (Sigh….) Okay, I will call them up and check.

Now I call up HP sales team.

Me: Hi, this is ….. We have one customer who is interested in integrating our App server with one of your product. HP Serviceguard. We have few clarifications. Can you help us?

HPSales: I can provide you with HP Support number who should be able to help you

Me: Great.

I call up this number

Me: ( I ended up speaking few minutes about the current situation and what we are looking for).

HP Support: Sure Mr Naveen. Before we can start with any of your queries, can I have the serial number of the machines?

Me: Sure, we have few HP machines at our place. So will the number from any of them do?

Here comes the ace..

HP Support: No, the serial numbers should be of the machines on which HP Serviceguard framework was purchased.

Me: Okay I will get back with these numbers

Now I call up this HP guy at the clients place and ask him for the numbers. I asked him if he can give me the serial numbers. For some strange reasons he was reluctant to give me these numbers.

Finally with some intervention from Application Vendor and End User, we could get a sample script that was used to integrate MySql with HP Serviceguard. So we just mimicked these scripts and provided them to this HP implementation guy. After a day we got a call from our App Vendor saying all went well and Pramati Server has been registered with the scripts provided by us. One more happy customer.

But I really feel that HP Serviceguard is the one that provides clustering solution, they are supposed to have some documentation on what is required from applications such as App servers, database etc. It should have published its API if any and should be a part of the software that they sell. I wonder why it is not the case.

Saturday, June 30, 2007

Blackle

Do you know that Google has a black version of its famous search engine to save power?

blackle

http://blackle.com/about/

I appreciate that. Thnx Google

Wednesday, June 27, 2007

Session Stealing-2

Contnuation of the previous posting..

My apologies for the abrupt ending of my previous post. Something important came up due to which I had to end it abruptly.

Session hijacking is generally crafted using the following methodologies:

1. Request-Response Sniffing
2. Cross site scripting

Well, the first one can be prevented when the whole session is handled through https. However, if part of the session is handled through http and is switched over to https, then the sniffer would be able to pick up the session id transferred in the http session. To avoid this Pramati Server uses a special cookie in addition to the sessionid cookie. This pair is validated when trying to access the https pages. As the second cookie is set via https, the sniffer would not be able to view it easily. When the sniffer/hijacker sends a https session without the secret cookie, the server would understand that this is not from the authenticated user and hence will deny the response.

Regarding second, you should check if the server is immune to XSS (cross site scripting) vulnerabilities.

Session stealing

You have heard about username/password, identity stealing. Did you ever hear about session stealing/hijacking? Session stealing is the act of taking control of the user session after having obtained/generated authenticated session id. Following is a bit intro on session and session id.

HTTP is stateless protocol. To maintain the state of the logged in users and identify them, the servers depend on the session ids. Session is a series of interactions between two end points( in this case server and client) that happens during the span of single connection. Session ID is a random alphanumeric string that a web server assigns a specific user for the duration of that visit. Once the user is logged into the web site/application a session is created for that user and the server hands out the session id to the browser when sending the first response. The browser would send this Session ID to the server on all the subsequent requests. As long as the user makes the requests from the same browser without closing and reopening it, the web site would not ask for the login information. This is coz,the server/application validates the session id received from the browser and would check if the user with that session id is logged in.

Now that we know what session and session id is let us move on to how it is transmitted between the server and the browser. One of the most used method is to set the session id as cookie on the browser JSESSIONID in case of J2EE and ASPSESSIONID for .NET servers. If you have any tool such as IEHttpHeaders for IE or LiveHttpHeaders for Firefox, you would be able to see something similar to this in the response from the server.

Status=OK - 200

Date=Wed, 27 Jun 2007 11:13:45 GMT

Content-Type=text/html

Set-Cookie=JSESSIONID=978704440835854248; Path=/

X-Cache=MISS from HYD-MDU-CACHE2

Via=1.0 HYD-MDU-CACHE2:515 (squid/2.6.STABLE12)

Connection=close


What you are seeing here is the Session ID Cookie and the value of the session ID. Anyone sniffing on the network packets between your server and you would be able to easily flick this info. Now once he has that session id, he would send the request to the server with the session id along with the request (You can use Tamperdata extenstion of Firefox to do this)

Now you would start thinking. This guy has some random number generated by the server and that is passed between my browser and server. So what? Just to remind you, this session id is not just another alphanumeric string, as far as the application is considered, this your passport to the application unfortunately a passport without photo on it. Any one who has this session id can get the server tricked into believe that it is YOU who is talking to the server. It is equivalent to some one flicking off your passport and presenting himself as you(Remember no photo on it). Now when application believes that some one else is you, then it would allow that person to do what you would be able to do! Let me put it in few steps

1. You open your bank site and go to the login page and login.

2. Once you are successfully logged in, the server would redirect you to your account details and setting a session id cookie in your browser.

3. When you make any request in any of the bank site, the intelligent browser would send the session id to server along with the new request.

4. The server would verify this id and see that you are already logged on. Hence no more login requests.

5. Now lets say there is a guy in the middle who has been sniffing the requests and responses between your machine and the server. He would be able to see the Session ID cookie that’s shared with you. Now he would pick up the same session id and send it over to the server. Since the id is shared between server and only you, the server would be under the impression that you are the one who is talking to server but it is actually not!

6. Now the guy in the middle would make a request for harmless page with your session id sent along to the server.

7. Server would verify the session id and see that you are already logged in and hence would present the harmless page to the guy in between.

8. From here, he would be able to navigate to your account page effortlessly and view details or do what fancies him at that time.

More about this in my next blog.


Sunday, June 17, 2007

Look who's doing it!!



What if govt flouts pollution control rules? In the pic is one of the waste dumping yards used by GMCH( Greater Muncipal Corporation of Hyderabad). Every day hundreds of trucks dump the garbage collected from all over the city and it is burnt in the evening. Look at the rising smoke. If something goes wrong we have govt to complain to. Now where do we go??

Friday, June 15, 2007

Analog

How do Business Developers take decisions on what should they be targeting at? Well, I think they too need data. But, data like what? Lets say you have a web site then they would like to know what interests people the most in your site. How do they figure out this? They are not oracles that would look at the crystal ball and say “Look these are the most visited site on our site and hence developing these products/pages further would increase the traffic and your revenue”. Obviously they would like that kind of data from the person who manages the web site.

Whenever there is a hit to your website, the web server that you use silently logs the request and the response it has sent. But what use is it of? I thought you would never ask this question after reading the first paragraph above. Okay, since you have asked this anyway, let me answer that. This would help that poor guy who has to give the demographics of the site to the enthusiast business developers. But any decent web site would have hits to a volume of few thousands a day. How do we get demographics from thousands of requests? This is where web log analyzers come to our rescue. I have been looking at few web log analyzers recently. Being strong supporter of open source software, I have tried to search for few and I came across this tool named Analog. An open source product, you can download from here. What was impressive was that it took me less than 5 minutes to get the whole stats from my web logs. Just under 5 minutes!!

This is what I did:

Downloaded the package from here
Unzipped it to my disk
Got into unzipped directory located analog.cfg fle, opened it and pointed the web log file.
Saved the config file, and ran the analog executable.
That’s it. This created the Report.html file that contained the stats.

Sounds good. But if you have a web site, which has huge traffic, there would whole lot of web logs created in a single day. How do we deal with this? Simple.. Zip up all the logs, point Analog to the zipped up file and run it. Analog will take care of reading the requests from archive file and present the stats for you.

More documentation is available here

Wednesday, June 13, 2007

Server name in response headers

Was looking through some of the web server vulnerability problems again. Most of the servers do send the server name in the http response. In case you have any livehttpheaders or IEhttpheaders, the response from any of the Application servers can be checked and most of them would contain the server name and probably version as well.

Here is how you can turn it off in some app servers

In Pramati Server, changing value of display-server-name in-header tag to false in web-config.xml would do the trick.

To prevent a WebLogic Server instance from sending its name and version number, disable the Send Server Header attribute in the Administration Console. The attribute is located on the Server —>ServerName —>Configuration —>Protocols —>HTTP tab.

A new environment variable, SERVER_TOKEN_OFF, has been added to
WebSphere Application Server for z/OS v4.0.1 that suppresses Server header in the response

Apache webserver you can turn this off by setting ServerTokens option to prod. This does not eliminate the server name just removes the version of the Apache server.

Friday, June 1, 2007

Reverse Proxy


So what is it all about? Before we move into what is Reverse proxy, we have to look at what proxy is.. I will wait till you brush up with Proxy concepts here. Just kidding. Proxy is that machine which acts as an intermediatary between your pc and the Internet. Put in simple way, Proxy is used as one point of exit for all your network traffic. There are benefits of this. Any rules that you would like to force such as blocking few sites, needs to be done only at proxy location. This way it gives more control on controlling what needs to be controlled. Huh!.

There are few points that make the proxies dear to all..

1. Caching. Lets say this blog has become so popular that 200+ people are reading this 200 times every day from your network. This means lot of network traffic to one site. Now, its very obvious that this blog would change once in a day given, I quit my job and become full time writer. Without the proxy, every request to read my blog would be routed to Internet and thus increasing the network traffic. With proxy in between, it will cache the complete blog on the first hit and the Proxy itself would serve all subsequent requests. This reduces the internet traffic and the amount that your company pays to your ISP.

2. Better Control: Lets say your company would like to block this blog as it sees that people waste a lot of time reading this blog( I agree on time wasted in reading, but about being popular I doubt). Now with proxy in place, we just need to add a line in the configuration of the proxy server and restart it. Voila.. Your fav blog is no longer accessible in your network now.

Now moving to reverse proxy, the simplest way to define it would be to flip the proxy on its feet and its reverse proxy. :-)

Reverse proxy is a special case of a proxy, designed to carry traffic from a less trusted network into a more trusted network. The normal proxy proxies on behalf of a network, but the reverse proxy proxies on behalf of a web server.

So the question is why have this in first place?

1. Security: With reverse proxy in place, there is single point of entry to the web servers (from the reverse proxy). Hence you do not have to open up the web server to Internet, which would reduce the security risk.

2. Caching: The reverse proxy can cache the content from the web server hence reducing the load on the actual web server and serving the content from its cache.

3. Lets say you had to change over the web server to a different machine or to a different host name. Without reverse proxy in between, the names will have to be republished to the outside DNS world. With reverse proxy in place you don’t have to deal with these as the mappings will have to be known just to the reverse proxy and not to the Internet world.

Apart from above there is whole possibility of load balancing that comes into the picture which I would write in detail about in my next coming posts.

Everything comes with some cons as well. So what would be cons about reverse proxy?

1. The single point of entry. While this adds more security, would prove otherwise when the reverse proxy is compromised.

2. The reverse proxy name/IP is all the whole world knows as the façade to your web server. When this goes down without a backup in place, your whole web presence (do I have to mention about your sleep!!) is down the drain.

Monday, May 21, 2007

Verna Test Drive

I've test driven Verna yesterday. Unlike my friends, I kind of liked the shape, from the day it was launched. It somehow tells me that it has got that power under its hood. Although it is known that Petrol vehicles have better performance than the diesel ones, for some strange reasons, I have an affinity for the diesel engines. May be I should attribute it for the Indica Turbo diesel that I drive and the fact that it gives a decent mileage.

My friend Anand and I have been contemplating about a test drive of Verna for the past three weeks. Now that he has tried his hands on Swift, we just wanted to go for Verna and see how different it is from the other ones. I have opted to test drive the VGT CRDI a diesel engine ~1500CC. It was Anand who had his hands on it. Having driven few SUV's such as Honda CRV and Hyundai Tucson, I was relying on him for the power performance review. Given the fact that all the diesel engines come with excess baggage of engine sound, I was quite surprised to notice that the engine was pretty silent.

I think lot of effort was put into the ergonomic design of the car. The pedals are all at pretty good angle. The gearshift was clean and smooth. No glitches at all. What really surprised me was the turning radius of the vehicles. I personally feel it is better than Indica( I know I know.. I should not be comparing these two cars, which are from different sectors). Somehow I feel that it lacks the initial pickup, but when you hit the gas pedal a bit hard then you see the power of 110 horses under its hood. You can feel its real performance in third gear as well with 4 people in(including the one from the showroom). We were 4 people who went to check out the car and Bharani's brother missed the ride as he was on a call (guess it was to his Girl friend, you know those usual long calls.. isolated from other friends). Verna could easily climb the hilly road of Jubilee hills in third gear and take a smooth real slow turn in the same gear. The other factor that I was looking for was the ground clearance. I have my farm 9 kms from my present home. Out of 9 kms, 3 kms stretch is full of pot holes( My dad says that it has been fixed and have a black top road for 2 kms). From this it would be quite obvious that I would be looking for a vehicle with good ground clearance. Verna scored points here again, 170 mm.

Even though the fact that it is too over my budget and the other fact that I would need lot of efforts put into coaxing my dad, I just fell for it. It’s been almost 30+ hours that I drove this car and the feeling is still fresh in my mind. One more thing to checkout is the mileage of the diesel version. I no longer trust the figures from the showroom guys.

The rear legroom could have been made more spacious. Having Bharani in the car always makes us think that all cars are small no matter which one we are in. Even Verna could not dismiss that feeling. Otherwise the interiors are good and the wooden grain for the handles in SX version is pleasant. I regret not having tried the height adjustment for the driver seat.

I got a follow up call on this car.. The financier seems to be offering 90% finance on the on road price(I wonder if any one is doing so). I just need to pay 1.5 lakhs as a down payment and 18,000+ as the monthly installments for 5 years. Hmmm. I was wondering if I could borrow few lakhs from my dad…. Well, let me see if I can do it… I will definitely let you know in case I succeed in it.

My Friend Anil say's I should try Elantra and see if I still rave about Verna. For next week, I would try Innova which has always been my favorite(Given the fact that me and 4 of my best buddies are long drive freaks).

Saturday, May 19, 2007

Webserver vulnerability scanners

Having hit by few problems related to web server vulnerability, I turned to check what open source tools are available for checking my server. I quickly got got to this link. Out of the list, the one that caught my attention was Nikto. This is a based on Whisker/libwhisker for much of its underlying functionality.

So I quickly used my FC5 machine to run this. Its not like other scripts where you have to delve into the documentation to get them working. Nikto just needs a -host and -port parameters. That's nice. It ran 1900+ tests in just less than 8 seconds. hmmm.. this makes me skeptical now(anything that takes very less to complete and gives all positive results always makes me think this way). Well how do I really check what it is doing? Thankfully, Nikto has -verbose option to display all the tests that it has performed and its results. I plan to use its ssl option sometime later and check how it works..


Don't upload just Share
-dekoh