<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17896720</id><updated>2011-12-08T00:38:05.253-08:00</updated><category term='thrift'/><category term='Five9s Availability web2.0'/><category term='inheritance'/><category term='ImageMagick'/><category term='javascript'/><category term='gearman'/><category term='scalability'/><category term='perl'/><category term='oops'/><category term='experiments'/><category term='Irony ajaxian'/><category term='word wrap'/><category term='closures'/><category term='protobuf'/><category term='multiple styles'/><title type='text'>The Road Ahead...</title><subtitle type='html'>by 
Sundarram P. V.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17896720.post-3171345190120407256</id><published>2009-05-03T04:04:00.000-07:00</published><updated>2009-05-03T05:12:13.520-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thrift'/><category scheme='http://www.blogger.com/atom/ns#' term='protobuf'/><category scheme='http://www.blogger.com/atom/ns#' term='gearman'/><category scheme='http://www.blogger.com/atom/ns#' term='scalability'/><title type='text'>Projects to watch out</title><content type='html'>These are some projects I have been watching for sometime now which can allow you to scale easily and at the same time provide flexibility. Three things that can help one to scale are partitioning, caching and queuing. A lot that happens inside a OS is queuing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gearman.org/doku.php"&gt;&lt;span style="font-weight: bold;"&gt;Gearman&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;It can be looked on as a load-balancer of sorts for your functions. The gearman simply interfaces the client(who wants to get a particular job done) and the worker. The best thing about gearman is, it allows both synchronous and asynchronous job calls. Lets say for instance there is a search query, where you have multiple shards from which you need to consolidate data. Through gearman you can make multiple job calls, and can do the processing in parallel. When all the workers have returned, all you need to do is consolidate the data. When the load is high, it will take time for your responses but the system can still handle it gracefully. When used with a cloud service like EC2, all you need to do is have a service monitor the jobs in queue and create new EC2 worker instances depending on the load. When the load is lower some of those instances can be killed. &lt;br /&gt;What gearman doesnt as of now provide is (in the works):&lt;br /&gt;1. broadcast (sending a message to all the workers) (useful for housekeeping)&lt;br /&gt;2. persistence of unprocessed jobs i.e. saving of jobs after the gearman server has crashed&lt;br /&gt;&lt;br /&gt;For using gearman one needs either an neutral encoding system or both client and worker has to use the same platform. They can either choose to use &lt;a href="http://www.json.org"&gt;JSON&lt;/a&gt;(JavaScript Object Notation) due to its ubiquitous nature. Or they can choose to go for language neutral binary encoding format like &lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.apache.org/thrift/"&gt;&lt;span style="font-weight:bold;"&gt;Thrift&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;This encoding format is used by Facebook for making RPCs. The encoding format supports versioning of data objects and also is language neutral. Its bindings for different language is still under development but is available for c++, PHP, Perl, erlang etc.. It also provides transport apart from deserialization/serialization of objects. The documentation for various language bindings is not great but one can understand by looking at their test code. Thrift has got somewhat influenced by google's protobuf. It also provides an interface for using a custom encoding/decoding format.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/protobuf/"&gt;&lt;span style="font-weight:bold;"&gt;ProtoBuf&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;It is similar to thrift, but the only difference is it doesnt provide transport. It is open sourced by google. Different language &lt;a href="http://code.google.com/p/protobuf/wiki/OtherLanguages"&gt;bindings&lt;/a&gt; are available for this format, and some of them have been developed outside of google. &lt;br /&gt;&lt;br /&gt;Both of them generate static code from a definition file for creating classes/types. When used with Gearman, these can provide queued language neutral setup of backend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-3171345190120407256?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/3171345190120407256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=3171345190120407256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/3171345190120407256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/3171345190120407256'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2009/05/projects-to-watch-out.html' title='Projects to watch out'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-5092110434763404808</id><published>2009-04-11T07:50:00.000-07:00</published><updated>2009-05-03T04:01:14.165-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='closures'/><category scheme='http://www.blogger.com/atom/ns#' term='oops'/><title type='text'>OOPS in Javascript: Part III</title><content type='html'>Apart from using inheritance and prototype for defining an object, there is closure which is strong and often misused feature in javascript. It is one feature I love and knowingly or unknowingly everyone would have used this feature. It is something like whenever a function is defined inside another function, all the variables inside the parent function exists even after the parent function has returned. It is something in the lines of creating a parallel world each time you invoke a function. &lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;/**&lt;br /&gt; * A simple example of closure&lt;br /&gt; */&lt;br /&gt;var rank = 0;&lt;br /&gt;function greet(name) {&lt;br /&gt;    var my_rank = ++rank;&lt;br /&gt;    /* adding a anonymous function to greet person after 5 seconds*/&lt;br /&gt;    window.setTimeout(function() {&lt;br /&gt;        alert("hi " + name + " you came in " + my_rank);&lt;br /&gt;    }, 5000);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;greet("ram");&lt;br /&gt;greet("geetha");&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To create a closure, two things are needed,&lt;br /&gt;1. Creation of a function inside a parent function.&lt;br /&gt;2. Send the reference of child function outside the scope of parent function.&lt;br /&gt;&lt;br /&gt;Firstly all the variables declared inside a function can be accessed only inside the function, unless explicitly it is passed as a reference outside. In case of closure, all those variables the child function could access will live until its reference is not deleted. &lt;br /&gt;Javascript as you know, doesnt want you to manage memory and uses garbage collection to free memory. All that the garbage collector is looking for is reference count of each instance, and in this particular case my_rank, name and also the anonymous function. It will not release these resources until there is a setTimeout trigger, and it removes the reference of this anonymous function.&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;&lt;br /&gt;class2 = function () {&lt;br /&gt;    &lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;class2.prototype = {&lt;br /&gt;    manager : function (params, postcallback) {&lt;br /&gt;                var my_dailog;&lt;br /&gt;  var usr_callback = function(filename) {&lt;br /&gt;   //make ajax call and get the content&lt;br /&gt;                        my_dailog.hide();&lt;br /&gt;  };&lt;br /&gt;  //get user input from dailog,&lt;br /&gt;  my_dailog = new Dailog({&lt;br /&gt;   message : "Enter the name of the file",&lt;br /&gt;   callback : usr_callback&lt;br /&gt;  });&lt;br /&gt;  my_dailog.show();&lt;br /&gt;    },&lt;br /&gt;    req : function() {&lt;br /&gt;        var my_div = document.getElementById('status');&lt;br /&gt;        var content_div = document.getElementById('content');&lt;br /&gt;&lt;br /&gt;        my_div.innerHTML = "working...";&lt;br /&gt;       &lt;br /&gt;        var callback = function(params) {&lt;br /&gt;            my_div.innerHTML = "Done.";&lt;br /&gt;            content_div.innerHTML = params;&lt;br /&gt;        };&lt;br /&gt;        this.manager({&lt;br /&gt;            url : "http://www.ajaxian.com"&lt;br /&gt;        }, callback);&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var ob = new class2();&lt;br /&gt;ob.req();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If for some reason, setTimeout's internal code fails to remove anonymous function's reference or doesnt have a mechanism to release its reference, all these variable will be like a zombie or in technical terms leaked memory. The problem will multiply when this function is called a hundred times, boggling down a lot of memory. This memory will never be claimed back until there is a window.unload. In the above example, all we are doing is try to get the name of the file so that it can be updated. Both manager and the req, functions are using closures, and if not handled properly can and will lead to a memory leak. The leak will only occur when there is a reference to anonymous function present outside of its scope. IE's internal handling of closures is somewhat different when compared with that of Firefox or Safari and also leaks a lot of memory. &lt;br /&gt;Memory leak is not a serious problem for any page which doesnt live for a longer period of time. Detection of leaks are tricky with any language, and its very difficult to debug in complex applications. It is bad for an application like gmail which runs throughout the day. It is a good idea to reload the page over a period of time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-5092110434763404808?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/5092110434763404808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=5092110434763404808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5092110434763404808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5092110434763404808'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2009/04/oops-in-javascript-part-iii.html' title='OOPS in Javascript: Part III'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-1864226785797038371</id><published>2008-08-27T22:15:00.000-07:00</published><updated>2010-09-19T18:47:32.256-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ImageMagick'/><category scheme='http://www.blogger.com/atom/ns#' term='word wrap'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple styles'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>My experiments with ImageMagick</title><content type='html'>I have been experimenting with ImageMagick for quite some time now. Its one of those great libraries one couldn't manage without and the best part is it just works. I had to write an implementation on top of ImageMagick, to draw styled text on image. Which i thought was pretty straight forward, and started to dig on the api docs of ImageMagick. In the end i finally found that, there was no implementation or function in api to wrap have different style of text in the same line. No big deal right, but then there are lot of subtleties which one will not realize until he/she is deep in it.&lt;br /&gt;I then went over my normal ritual of getting the pseudo code(comments, i cant work without them). First i thought the only thing i ll have to do would be to wrap the text, and then set the height which is maximum for any style. There also was a straight forward api function call in ImageMagick (QueryMultilineFontMetrics). So i started not knowing what i was getting into. The wrap logic was something like,&lt;br /&gt;&lt;br /&gt;1. you get the width of all the visible characters by making the api call,&lt;br /&gt;2. now get all the words in the sentence/ paragraph&lt;br /&gt;3. for each of those word add the width for each character and try to figure out whether it has surpassed the line width or not.&lt;br /&gt;4. if it has start over on the next line, calculate the height needed.&lt;br /&gt;&lt;br /&gt;To describe the above solution in one word, it is specious and it didnt work. Some of the characters were going outside the boundary. I didnt know a thing about typography and typefaces which in a way increased my curiosity. Here I was coding, without really knowing any fundamentals about the internals. I decided to give programming a pass and started reading about typeface and things related with it.&lt;br /&gt;I have been using computer for more than a decade now, but one thing that has never interested me is fonts. I was finally coming to terms with my demons. As i read more about fonts, it became clear that there was a lot of thought, logic and research gone into it, so much so that it was a science as well as creative. I feel it is one of those things which stares right on our face, but we just dont realize it. The fonts are mainly categorized into monospaced (ones we see in code editors) i.e. all characters are equally spaced and have equal widths and what we normally write in paper is proportional typeface i.e. 'i' has a smaller width compared to 'W'. There is something else apart from these in the font, which created the bug in my code. They are the small pauses between two characters when they are rendered. My algorithm didnt include kerning(this is what the that hole is called) for calculations and resulted in text bleeding out. I had to slightly change my approach, and had to include this along, but since the font could be proportional or monospaced you dont really know that width. The only way you can do that is by making the query fonts call for the whole word, and use it for all the calculations. Apart from that i also found that QueryFontMetrics was trimming the space, and it had to be found out in a round about way. &lt;br /&gt;&lt;br /&gt;&lt;object id="doc_559410913875161" name="doc_559410913875161" height="600" width="600" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" &gt;  &lt;param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="FlashVars" value="document_id=14147418&amp;access_key=key-1jf1512a710wdrhj62m4&amp;page=1&amp;viewMode=list"&gt;   &lt;embed id="doc_559410913875161" name="doc_559410913875161" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=14147418&amp;access_key=key-1jf1512a710wdrhj62m4&amp;page=1&amp;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="600" width="600" wmode="opaque" bgcolor="#ffffff"&gt;&lt;/embed&gt;  &lt;/object&gt; &lt;br /&gt;&lt;br /&gt;P.S.ttt...:&lt;br /&gt;I couldnt find a lot of solutions in web to suite my requirements, and that's one of the reason why i am sharing the solution. The code though is not neat, and there could be other optimizations that can be done, but at the very least it works and can be used as a base for further refinements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-1864226785797038371?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/1864226785797038371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=1864226785797038371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1864226785797038371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1864226785797038371'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2008/08/my-experiments-with-image-magick.html' title='My experiments with ImageMagick'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-5338627638077375079</id><published>2008-06-06T12:00:00.000-07:00</published><updated>2008-06-06T14:41:16.700-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Five9s Availability web2.0'/><title type='text'>Five9s Availability - Is it too much to ask for?</title><content type='html'>Imagine logging into GMail, and suddenly getting a Oil change page. No way thats gonna happen now right?? Nearly 4 years back I used to see this page quite often, but over a period of time GMail has certainly matured as a product. They are still adding features seamlessly and making releases without any downtime of the service. That makes me look in awe at many services which achieve this and I sometimes wonder what it takes to achieve 99.999(Five9s) i.e. approximately 6 minutes of downtime in a year.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Message from ABC: OOPS, No donuts for you.&lt;br /&gt;Developer of ABC: The possibility of this is infinitesimally small and guess what, Shit happens!!!&lt;br /&gt;User: Damn!!! It always happens when I am in middle of something important&lt;br /&gt;But hey why go through such a ordeal.. Let me try XYZ...&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Real donuts for guessing the service ;)&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;For starters, if there are lot of outages users will loose trust in the service and might start looking at it as a liability. Twitter is a classic example of that. I would hate to see GMail go down while i am using it. In the Web 2.0 world there are lot of &lt;span style="font-style: italic;"&gt;'me too'&lt;/span&gt; services to take your place, the only differentiator can in many instance be speed and availability of your service.&lt;br /&gt;This is normally in a later stage of a start-up as feature takes precedence over availability. But a use of little common sense initially will prolong the availability issues.&lt;br /&gt;&lt;br /&gt;Why measure?&lt;br /&gt;&lt;br /&gt;It is always better to measure than not to. It can be used to compare the availability of service month over month and progress made in terms of availability. In extreme cases, one can boast in some scalability and availability conference. ;)&lt;br /&gt;&lt;br /&gt;Why Five9s and not any other number?&lt;br /&gt;&lt;br /&gt;Six minutes of downtime is not very huge and not very small, though this depends on the type of outage and service. Choose a number that suits your goals. It is also a measure of availability of service during its business hours(24x7 for most web 2.0 startups). It is a number which is quite difficult to achieve but not impossible. Every year very few services achieve Five9s. Personally I look at it as a benchmark as only a selected few make it to this league.&lt;br /&gt;&lt;br /&gt;The downtimes can be categorized into two, viz. predictable and unpredictable ones.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Unknown/Unpredictable ones&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   a. DB/web server needing a restart(often with windows based environs.)&lt;br /&gt;  b. Hardware failures&lt;/span&gt;&lt;br /&gt;The service should have at least have two point of failures for the whole service to fail completely. It pays to have redundancy but its expensive too. RAID depending on the configuration will only protect the data, but the time required to recover from such a disaster and to go up online again will be huge. Its better to have another redundant h/w and s/w which is hot swappable. This will require a lot of design and architecture considerations. Its always better to assume that some failure like this will always happen and being prepared to tackle it. It is not financially viable for many early stage startups to have redundancy for everything, but being prepared for such a eventuality will not hurt the company.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   c. A spike in traffic, taking everything down with it.&lt;/span&gt;&lt;br /&gt;Its difficult to be prepared for spike, it is given that there will at least be one spike in a year you cant handle. Having a architecture and design for rainy days will pay off in the longer run. Services like Amazon EC2 will certainly help in handling spike, but it all depends on the preparedness for a spike.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   d. Some &lt;span style="font-weight: bold;"&gt;goofy&lt;/span&gt; in datacenter, restarts the server by accident (I am not making it up. it has happened twice.)&lt;br /&gt;&lt;/span&gt;To avoid such a scenario don't have your server in India, unless you are having redundant counterpart elsewhere. Not kidding!!! India is light years behind for providing any serious hosting services. If at all you want to have a server in India for various reasons, avoid resellers. If the number of servers are more go for a co-location.&lt;br /&gt;&lt;br /&gt;continued...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-5338627638077375079?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/5338627638077375079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=5338627638077375079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5338627638077375079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5338627638077375079'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2008/06/five9s-availability-is-it-too-much-to.html' title='Five9s Availability - Is it too much to ask for?'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-7335687955722954730</id><published>2007-11-04T07:19:00.000-08:00</published><updated>2007-11-04T07:25:28.198-08:00</updated><title type='text'>OCC Mumbai Meet</title><content type='html'>Off late I have come to notice the number of startups in India are increasing. Last Year the number of Startups could be counted, but now there is a explosion in the number of startups. Thanks mainly to Web 2.0&lt;br /&gt;Here are some of the pics of OCC and Barcamp Mumbai I had visited.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;embed src="http://www.zoom.in/swf/SlideShow.swf" id="slideShow" name="slideShow" allowfullscreen="true" swliveconnect="true" scale="noscale" menu="false" quality="high" bgcolor="#333333" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="xmlPath=http://www.zoom.in/Slideshow.axd?albumid=970a38c2-4590-4d32-816c-35c4e65f2aea&amp;amp;slideShowMode=embed&amp;amp;photoPath=http://www.zoom.in/GetResizedImage.aspx?PhotoID=&amp;amp;photoViewPath=http://www.zoom.in" align="left" height="216" width="288"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-7335687955722954730?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/7335687955722954730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=7335687955722954730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/7335687955722954730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/7335687955722954730'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/11/occ-mumbai-meet.html' title='OCC Mumbai Meet'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-4962526196718760246</id><published>2007-10-11T07:27:00.000-07:00</published><updated>2007-10-11T07:38:44.793-07:00</updated><title type='text'>Funny!!!</title><content type='html'>&lt;a href="http://bp3.blogger.com/_Ndoytqm00qA/Rw41CoahDcI/AAAAAAAAAAc/xm2rdCl6Osc/s1600-h/google-adds.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_Ndoytqm00qA/Rw41CoahDcI/AAAAAAAAAAc/xm2rdCl6Osc/s320/google-adds.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5120088145691479490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found this advertisement while reading a blog, and i found this add by google funny.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-4962526196718760246?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/4962526196718760246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=4962526196718760246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/4962526196718760246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/4962526196718760246'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/10/funny.html' title='Funny!!!'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_Ndoytqm00qA/Rw41CoahDcI/AAAAAAAAAAc/xm2rdCl6Osc/s72-c/google-adds.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-1290021265111897385</id><published>2007-10-06T12:42:00.001-07:00</published><updated>2007-10-06T13:06:08.468-07:00</updated><title type='text'>The First Step</title><content type='html'>&lt;strong&gt;September 3rd:&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;0825 hrs:&lt;/em&gt; 30 pair of eyes zeroin on a location, and are carefully calculating their next move. From the look of their eyes one could tell that they wont hesitate to kill if it is necessary. Chaos erupts as it comes to a halt and people are in a frenzy to board. With room only for a dozen, somehow all 29 of them make it. My jaws dropped, my shoulders sagged and my legs felt loose when I suddenly realised that I have to go in such a train daily to reach my office.&lt;br /&gt;0855 hrs:&lt;br /&gt;After watching 4 trains pass by, I summoned all the strength and courage to actually approach the train. I was pushed aside by a set of very decent looking hooligans when the next train came. After that movement, I really became one of them and any one could see the same fire in my eyes.&lt;br /&gt;I finally got in and felt elevated about the herculian task I had just finished, but to my dismay I found the challenge had just began as I was standing in way of people who wanted to get down&lt;br /&gt;at the next station.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;October 1st:&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;0840 hrs:&lt;/em&gt; Nearly ##(couldnt count because of my concentration) pair of eyes zoomin on a location&lt;br /&gt;and I made it(dont know about the rest as I was the first).&lt;br /&gt;&lt;br /&gt;After a month, I started enjoying the whole experience. In retrospect I feel, the first step is often the most difficult and the most important one to take. Things do get easier as time goes by.&lt;br /&gt;&lt;br /&gt;I dont know when I will be taking my first step.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-1290021265111897385?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/1290021265111897385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=1290021265111897385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1290021265111897385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1290021265111897385'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/10/first-step.html' title='The First Step'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-1348608905960687242</id><published>2007-09-30T06:59:00.000-07:00</published><updated>2007-09-30T07:06:31.051-07:00</updated><title type='text'>Changed Address!!!!</title><content type='html'>The idea of buying my domain had been there in the back of my mind for quite some time.&lt;br /&gt;Finally I bought one and have changed the blog address from &lt;a href="http://pvsun.blogspot.com"&gt;pvsun.blogspot.com&lt;/a&gt; to &lt;a href="http://blog.pvsundarram.com"&gt;blog.pvsundarram.com&lt;/a&gt;. &lt;br /&gt;All the old links will still work!!!!.&lt;br /&gt;Looking forward to buy more in the future....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-1348608905960687242?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/1348608905960687242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=1348608905960687242' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1348608905960687242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1348608905960687242'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/09/changed-address.html' title='Changed Address!!!!'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-558605844441005653</id><published>2007-09-30T06:36:00.000-07:00</published><updated>2007-09-30T07:16:45.716-07:00</updated><title type='text'>Missed it this time!!!</title><content type='html'>I went for a walk in the ground near my house, and I found lots of people working on something huge. After looking more closely, I couldnt determine what they were really trying to do. As Ganesh chathurthy was nearing, the artists were adding finishing touches to what they were doing. I could hardly believe my eyes, when I saw what they did just after 10 days. It was like a full blown ship!!!!&lt;br /&gt;&lt;img src='http://img01.zoom.in/1191141355/984091324_v.jpg' onclick=window.location='http://www.zoom.in/PhotoView.aspx?PhotoGuid=dc57a773-a806-66d7-c70f-d1d1b28cbbfc&amp;Type=public'/&gt;&lt;br /&gt;This photo was taken at 00:30 hrs from a distance of more than 400 meters and the place was still buzzing with people. &lt;br /&gt;&lt;br /&gt;If you are wondering where this photo is coming from, you can check &lt;a href="http://www.zoom.in"&gt;zoom.in&lt;/a&gt;.&lt;br /&gt;Tags: &lt;a href="http://technorati.com/tag/ganpathy" rel="tag"&gt;ganpathy&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-558605844441005653?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/558605844441005653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=558605844441005653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/558605844441005653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/558605844441005653'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/09/missed-it-this-time.html' title='Missed it this time!!!'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-1573913564434073741</id><published>2007-08-10T12:33:00.000-07:00</published><updated>2009-04-11T09:18:46.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='inheritance'/><category scheme='http://www.blogger.com/atom/ns#' term='oops'/><title type='text'>OOPS in JavaScript : Part II</title><content type='html'>In JavaScript we might not need inheritance all the time but as the applications gets complex we might need more structuring of code and also for reusing it. Inheritance according to Mozilla's documentation states that we need to copy the prototype of the base class to the Sub Class. You might ask why. The reason is 'Prototype' is nothing but the Structure of a object and this structure is shared across all the instances of the Class. When a property is added to a object dynamically, it is only for that particular object and not the whole class. On the other hand, when a property is added to the prototype, that property gets added in all the instances of that class. This might sound a little confusing, but thats the way the language works.&lt;br /&gt;We will have to be very disciplined when we are writing a application partly because the language is dynamic and very flexible. We should follow some good practices while doing inheritance,&lt;br /&gt;1. Avoid adding of properties to objects inside the functions dynamically(that includes the constructor) and always add them to the prototype object. In this case we might not be utilizing the full power of JavaScript, but then all the properties will not get inherited. The properties which are dynamic in nature does not get copied to its subclass.&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;BaseClass Definition&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;myFunction : function(){&lt;br /&gt;    this.newProperty = 0;&lt;br /&gt;},&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2. A very common mistake one can make is after inheriting, they replace the prototype of the subclass object.&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;inherit(BaseClass, SubClass);&lt;br /&gt;SubClass.prototype = {&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3. Avoid adding properties to prototype of BaseClass after inheritence, it makes the code very confusing and unreadable to others. But it will get reflected in the SubClass.&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;inherit(BaseClass, SubClass);&lt;br /&gt;BaseClass.prototype.xyzProperty = QWER;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;There are many approaches to do a extend, but it is very difficult to do a true extend in a dynamic language, because properties can be added dynamically. One should take a approach depending on the way they organize their code.&lt;br /&gt;Now after knowing the donts, we will have to write our own extend function or use a function from any library you like. I am not going to re-invent the wheel(I might be taking a fairly similar approach), I will just explain the extend function of &lt;a href="http://developer.yahoo.com/yui/"&gt;YUI&lt;/a&gt;. &lt;br /&gt;&lt;a href="http://developer.yahoo.com/yui/docs/Lang.js.html"&gt;Original Code&lt;/a&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;extend: function(subc, superc, overrides) {&lt;br /&gt;        if (!superc||!subc) {&lt;br /&gt;            throw new Error("YAHOO.lang.extend failed, please check that " +&lt;br /&gt;                            "all dependencies are included.");&lt;br /&gt;        }&lt;br /&gt;        var F = function() {};&lt;br /&gt;        F.prototype=superc.prototype;&lt;br /&gt;        subc.prototype=new F();&lt;br /&gt;        subc.prototype.constructor=subc;&lt;br /&gt;        subc.superclass=superc.prototype;&lt;br /&gt;        if (superc.prototype.constructor == Object.prototype.constructor) {&lt;br /&gt;            superc.prototype.constructor=superc;&lt;br /&gt;        }&lt;br /&gt;    &lt;br /&gt;        if (overrides) {&lt;br /&gt;            for (var i in overrides) {&lt;br /&gt;                subc.prototype[i]=overrides[i];&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            YAHOO.lang._IEEnumFix(subc.prototype, overrides);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After checking the arguments, they create a new dummy class. The prototype of Super Class is then copied to this dummy class. The reason being that in JavaScript everything is a reference and if the prototype of Super class is copied directly to the Sub class, then the Sub Class and the Super Class will be referring to the same prototype. This can be catastrophic. For this we will have to separate the prototype of Sub Class and the Super Class. While inheriting, we will have to call the constructor of the Super Class to initialize. Thats why they are adding a property superclass and assigning the constructor to its prototype's constructor. Apart from that, the guys at yahoo have made sure that derived object has all the enumerated functions when it is overridden(this is a problem in IE). Not only we are reusing the code, we are also reusing the research that went into building the library. And if they had not documented(comments) it in their code, it would have probably never been discovered by others.&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;| &lt;a href="http://technorati.com/tag/oops" rel="tag"&gt;oops&lt;/a&gt; | &lt;a href="http://technorati.com/tag/javascript" rel="tag"&gt;javascript&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-1573913564434073741?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/1573913564434073741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=1573913564434073741' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1573913564434073741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/1573913564434073741'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/08/oops-in-javascript-part-ii.html' title='OOPS in JavaScript : Part II'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-2462281293536153277</id><published>2007-08-10T04:55:00.000-07:00</published><updated>2007-08-10T04:56:29.349-07:00</updated><title type='text'>After a long time.....</title><content type='html'>Finally after a month of inactivity i am back...&lt;br /&gt;I couldnt manage to come online for the past one month(i dont know how I survived this) partly because i quit my job at tutorvista..&lt;br /&gt;I had not at all planned it... but it happens to everyone of us all the time...&lt;br /&gt;Now my mind is vascillating between working in a startup and start something on my own...&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;| &lt;a href="http://technorati.com/tag/" rel="tag"&gt;&lt;/a&gt; | &lt;a href="http://technorati.com/tag/" rel="tag"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-2462281293536153277?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/2462281293536153277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=2462281293536153277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/2462281293536153277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/2462281293536153277'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/08/after-long-time.html' title='After a long time.....'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-5053988574330270614</id><published>2007-07-03T22:11:00.000-07:00</published><updated>2009-04-11T09:16:32.500-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='oops'/><title type='text'>OOPS in JavaScript : Part I</title><content type='html'>Every one of us knowingly or unknowingly uses OOPS in JavaScript. Every function and every global variable we add in the script is actually a property of window object. The DOM API is also a very powerful API which we extensively use. There are no Classes( in actual sense ) in JavaScript.&lt;br /&gt;But first one should understand why we go for OOPS, two of the main reasons i see are code maintainability and extendability. For instance &lt;a href="http://developer.yahoo.com/yui/"&gt;YUI Library&lt;/a&gt; is extensively used by many big sites, the code is getting reused everywhere and libraries like the &lt;a href="http://www.yui-ext.com/"&gt;yui-ext&lt;/a&gt; are extending it and taking it to the next level. And thats power... General developer mentality is "i'll do it myself"... Its very natural, but has its side effects of reinventing the wheel again and if we are going to take the same approach i don't think there is a point in reinventing it.... Better would be extend the code that is already there( should be well written and extendable ;-) ) and take it to the next level...&lt;br /&gt;OOPS is intended for greater flexibility and maintainability, that IMO is achievable in JavaScript. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Classes&lt;/strong&gt;&lt;br /&gt;There are no classes in real sense of the word in JavaScript. Every function, every property( except the native ones like number, string... ) are objects. Any function can be a constructor to the class. All functions are a instance of Function.&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;/**&lt;br /&gt; * @class MyClasss&lt;br /&gt; * @constructor&lt;br /&gt; * This is my class constructor&lt;br /&gt; * @param {Object} argument1 first argument for configuring properties of the objects&lt;br /&gt; */&lt;br /&gt;function MyClass (argument1)&lt;br /&gt;{&lt;br /&gt;    //some constructor code&lt;br /&gt;    this._config = argument1 || {};&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The properties to the object can be added in run-time. The prototype property determines the initial structure of the object( thats why they call it prototype and it is a property of Function ). But it is a good practice to define all the properties that will be used in the prototype object. Which can be added like this&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;/**&lt;br /&gt; * @method MyClass&lt;br /&gt; * this is my first method&lt;br /&gt; */&lt;br /&gt;MyClass.prototype.myFunction = function () {&lt;br /&gt;    alert('hello world');&lt;br /&gt;};&lt;br /&gt;/**&lt;br /&gt; * @type String&lt;br /&gt; * @property name&lt;br /&gt; * name of the instance&lt;br /&gt; */&lt;br /&gt;MyClass.prototype.name = '';&lt;br /&gt;/**&lt;br /&gt; * @private&lt;br /&gt; * @type Object&lt;br /&gt; * @property _config&lt;br /&gt; * configuration object&lt;br /&gt; */&lt;br /&gt;MyClass.prototype._config = null; //default value&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here if you notice it is practice and not a must because properties to the objects can be added on the fly thats why all the objects are unique and thats why there are no classes in JavaScript. If you see the above code, the property _config is marked private but it is not actually private. In JavaScript there are no scopes for properties of objects. To put it differently all properties of an object are public. &lt;br /&gt;Whatever has been done so far is just for making the code extendable. There are other approaches to OOP like&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;var myObj = {}; // one way to create a new instance&lt;br /&gt;//adding method to the object&lt;br /&gt;myObj.myFunction = function () {&lt;br /&gt;    alert('hello world');&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;But the biggest problem with the above approach is it is not extendable.&lt;br /&gt;One can also add static properties to the class.&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;/**&lt;br /&gt; * @method MyClass&lt;br /&gt; * my static method&lt;br /&gt; * @static&lt;br /&gt; */&lt;br /&gt;MyClass.myStaticFunction = function () {&lt;br /&gt;    alert('my static function');&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you notice closely we are not adding this property to the prototype object but we are adding to the 'MyClass' itself. This is shared across all the instances of the MyClass. The use of 'this' in static methods will refer to MyClass and not the instance and also reference to any other static property via 'this' is not possible. Now that we have created a class-like structure we can now create instances of the MyClass. &lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;//creating a new instance.&lt;br /&gt;var myObj = new MyClass(); &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The 'new' operator creates a new object with the structure of MyClass.prototype and then calls its constructor viz. MyClass. The constructor does some initialization and the object is returned to myObj. In JavaScript objects are passed by reference. Here i am not passing the parameter in the constructor. It is not mandatory to pass the required arguments to any function( including constructor ). The memory will not get released if there are any references to that object. &lt;br /&gt;If you notice carefully we are actually adding properties to the prototype object on the fly. You can access the properties of 'myObj'.&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;myObj.myFunction();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Tags - &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt; &lt;a href="http://technorati.com/tag/oops" rel="tag"&gt;oops&lt;/a&gt; &lt;a href="http://technorati.com/tag/javascript" rel="tag"&gt;javascript&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-5053988574330270614?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/5053988574330270614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=5053988574330270614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5053988574330270614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5053988574330270614'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/07/oops-in-javascript-part-i.html' title='OOPS in JavaScript : Part I'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-842862046055034394</id><published>2007-06-27T08:27:00.000-07:00</published><updated>2007-06-27T10:05:24.390-07:00</updated><title type='text'>Whiteboard / Chat released....</title><content type='html'>We released the Whiteboard / Chat after working for more than 50 days( &amp; nights ofcourse)...... Anyone can check the new Chat and Whiteboard @ &lt;a href="http://www.tutorvista.com"&gt;tutorvista.com&lt;/a&gt; and by clicking on the 'Try it Now!' button.&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;| &lt;a href="http://technorati.com/tag/TutorVistaNow" rel="tag"&gt;TutorVistaNow&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-842862046055034394?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/842862046055034394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=842862046055034394' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/842862046055034394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/842862046055034394'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/06/whiteboard-chat-released.html' title='Whiteboard / Chat released....'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-3619503647576878964</id><published>2007-06-10T05:55:00.000-07:00</published><updated>2007-06-27T10:12:24.975-07:00</updated><title type='text'>Coding conventions and practices.</title><content type='html'>Lately i have become a big fan of javascript for its flexibility and expressiveness. It is fragile(depends heavily on the programmer) but a very expressive language. And halfway down the product i have come to realise that its expressiveness and flexibility makes reading of someone else's code difficult. But in a team, the team has to follow similar set of conventions so that everyone else's code doesnt look odd to each other in the team. And this is very important in a very small team, where this can lead to altercations. To avoid such a situation, we have adopted our own set of coding conventions inspired from Java Coding conventions and the one from Douglas Crokford. &lt;br /&gt;The main inspirer had been the  YUI library, though one looking at their code closely could find out that there are subtle differences but at a higher level they all look the same. At YUI library they spend a lot of time(i guess) to make the code look fabulous and elegant. Any code starts with looking elegant but later becomes very ugly and unmaintainable, but no one can avoid such a situation. At that point of time someone has to step-in and say, the code has to look elegant and maintainable and refactor the code. This does take time but is very useful in the long run when the product matures its maintainability becomes more important or the other alternative will be to rewrite the whole product from scratch(This happens in most companies). With a very short product deadlines it becomes very difficult to do so, but we will have to set ourselves some time for looking back at what we did and correct the things we would have knowingly or unknowingly done the wrong way. &lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;| &lt;a href="http://technorati.com/tag/coding+practices" rel="tag"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-3619503647576878964?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/3619503647576878964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=3619503647576878964' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/3619503647576878964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/3619503647576878964'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/06/coding-conventions-and-practices.html' title='Coding conventions and practices.'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-4311164538547386032</id><published>2007-05-19T00:56:00.000-07:00</published><updated>2007-05-19T01:45:33.826-07:00</updated><title type='text'>'&gt;returnable</title><content type='html'>&lt;a href="http://www.blogger.com/profile/14112196631031678210"&gt;Bhasker V Kode&lt;/a&gt; &lt;em&gt;alias&lt;/em&gt; &lt;span&gt;&lt;returnable href='http://onhover.returnable.org/tooltip.text/&lt;img src="http://photos1.blogger.com/blogger/5004/157/1600/bhaskerSNAP1.jpg"/&gt;'&gt;Bosky&lt;/returnable&gt;&lt;/span&gt; has written a nice and very useful library for delivery of content and the best part is its very easy to use. I have added the returnable widgets to my blog. as you can see that u can add just about anything to that widget..&lt;br /&gt;I have added an iframe to view the &lt;span&gt;&lt;returnable href='http://onhover.returnable.org/tooltip.text/&lt;iframe width="350" height="300"  src="http://returnable.org/demos/snapshot.php"/&gt;'&gt;returnable.org&lt;/returnable&gt;&lt;/span&gt; just hover over it to see the widget at work...&lt;br /&gt;&lt;br /&gt;to add it i have included the javascript file in my template, and added this returnable tag and viola!!!!!.... It just works.....&lt;br /&gt;&lt;br /&gt;great work bosky!!!!!keep ur gud work going!!!!&lt;br /&gt;&lt;br /&gt;Tags - &lt;a href="http://technorati.com/tag/widget" rel="tag"&gt;widget&lt;/a&gt; &lt;a href="http://technorati.com/tag/bosky" rel="tag"&gt;bosky&lt;/a&gt; &lt;a href="http://technorati.com/tag/returnable" rel="tag"&gt;returnable&lt;/a&gt; &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technorati.com/tag/" rel="tag"&gt;&lt;/a&gt;&lt;a href="http://technorati.com/tag/" rel="tag"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-4311164538547386032?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/4311164538547386032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/4311164538547386032'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/05/returnable-hrefhttponhoverreturnableorg.html' title='&lt;span&gt;&lt;returnable href=&apos;http://onhover.returnable.org/tooltip.text/&lt;iframe src=&quot;http://returnable.org&quot; width=400/&gt;&apos;&gt;returnable&lt;/returnable&gt;&lt;/span&gt;'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-424055446843519949</id><published>2007-05-04T06:25:00.000-07:00</published><updated>2007-05-04T06:34:20.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Irony ajaxian'/><title type='text'>An Irony.....</title><content type='html'>I saw the site of &lt;a href="http://ajaxexperience.techtarget.com"&gt;The Ajax Experience Conference&lt;/a&gt; by &lt;a href="http://ajaxian.com/"&gt;Ajaxian.com&lt;/a&gt; which hardly has any AJAX Eperience in the site.......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-424055446843519949?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/424055446843519949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=424055446843519949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/424055446843519949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/424055446843519949'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/05/irony.html' title='An Irony.....'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-5005259612900566030</id><published>2007-04-18T12:31:00.000-07:00</published><updated>2007-04-18T12:35:18.212-07:00</updated><title type='text'> My post at the startup blog</title><content type='html'>&lt;strong&gt;&lt;a href='http://thestartupblog.blogspot.com/2007/04/just-thinking-aloud.html'&gt;Just Thinking Aloud........&lt;/a&gt; &lt;/strong&gt;&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;I saw my friend bhasker edit some of his files in his desktop, and then was pushing the files to his webserver hosted at godaddy. Then something struck me................. &lt;a href='http://thestartupblog.blogspot.com/2007/04/just-thinking-aloud.html'&gt;more&lt;/a&gt;&lt;/blockquote&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-5005259612900566030?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/5005259612900566030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=5005259612900566030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5005259612900566030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/5005259612900566030'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/04/my-post-at-startup-blog.html' title='&lt;a href=&apos;http://thestartupblog.blogspot.com/2007/04/just-thinking-aloud.html&apos;&gt; My post at the startup blog&lt;/a&gt;'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-6538931114502126120</id><published>2007-03-03T12:09:00.000-08:00</published><updated>2007-03-03T12:48:00.466-08:00</updated><title type='text'>actionscript 3.0 and sockets.</title><content type='html'>While doing scheduling i learnt a lot about what not to do. Looking at it now, i feel that scheduler had been a victim of premature optimization.  I wanted to make it really fast and went all out to do just that. And tried optimizing everything rite from the begining, and ended up screwing the readability and maintainability of the code. As time passed changes started becoming difficult, and the optimizations that were done initially became pointless. I then realised that i should have done optimization after the basics were finished.&lt;br /&gt;&lt;br /&gt;I then started working on client(again), the one which i had left unfinished. After looking at the stats provided in adobe site, we decided on flash player v8. This supports actionscript 2.0. Main reason for choosing flash was that it was truly platform independent(unlike java ;-) ), and it could open sockets. The class XMLSocket in actionscript 2.0 adds a null byte(&lt;span style="font-weight: bold;"&gt;/000&lt;/span&gt;) to the end of any string it sends via the socket. The server which was reading it did not understand, and treated this as end of XML stream, and used to throw back xml-not-well-formed-error. I was breaking my head for the reason why this error message was coming from server. Then finally after some investigation we found 2 things which made xmlsocket unusable for client,&lt;br /&gt;1&gt; it doesnt support xml v1.0.&lt;br /&gt;2&gt; it adds null byte(&lt;span style="font-weight: bold;"&gt;/000&lt;/span&gt;) to the end of the string.&lt;br /&gt;finally dumped actionscript 2.0 and then did one test in actionscript 3.0 and it just worked without any problems(used Socket and not XMLSocket).&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;| &lt;a href="http://technorati.com/tag/actionscript 3.0" rel="tag"&gt;actionscript&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-6538931114502126120?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/6538931114502126120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=6538931114502126120' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/6538931114502126120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/6538931114502126120'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2007/03/actionscript-30-and-sockets.html' title='actionscript 3.0 and sockets.'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-116397461474298873</id><published>2006-11-19T14:10:00.000-08:00</published><updated>2006-11-19T14:16:54.753-08:00</updated><title type='text'>Been Long Time</title><content type='html'>Its been a long time since i blogged... part of the reason being i was working on a scheduler.... once i finish the framework for scheduler, i ll be back with what i was trying to do, and whatever i had learnt the hard-way while solving an age old problem of scheduling......&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-116397461474298873?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/116397461474298873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=116397461474298873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116397461474298873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116397461474298873'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/11/been-long-time.html' title='Been Long Time'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-116192887091188431</id><published>2006-10-26T22:52:00.000-07:00</published><updated>2006-10-26T23:01:10.923-07:00</updated><title type='text'>a nice video i liked and links.....</title><content type='html'>&lt;a href="http://www.seopedia.org/internet-marketing-and-seo/101-web-marketing-ideas-and-tips/"&gt;Web marketing ideas and tips(101)&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Use the title and meta description tags as wise as possible. They are your best choice of avoiding supplemental pages. Try to make each page with it’s own unique title and description, and never repeat more than 20-25% of the title and description tags content on different pages. Use a limited number of characters (8-10) in the title tag, and put the most important of them, relevant to each page, at the beginning.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://googlesystem.blogspot.com/"&gt;A blog just about google products&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Google has created some pages for the upcoming Halloween. On Google Video, you can find 14 short videos, including a teaser for "Hood of Horror". Google Books features a big list of famous scary stories, like Bram Stoker's Dracula or Mary Shelley's Frankenstein.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Firefox add&lt;/span&gt;&lt;br /&gt;I kindof liked this video.&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/euZ0j7vtKEQ"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/euZ0j7vtKEQ" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;| &lt;a href="http://technorati.com/tag/links" rel="tag"&gt;links&lt;/a&gt; | &lt;a href="http://technorati.com/tag/firefox" rel="tag"&gt;firefox&lt;/a&gt; | &lt;a href="http://technorati.com/tag/web+marketing+tips" rel="tag"&gt;web marketing tips&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-116192887091188431?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/116192887091188431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=116192887091188431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116192887091188431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116192887091188431'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/10/nice-video-i-liked-and-links.html' title='a nice video i liked and links.....'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-116184524871083417</id><published>2006-10-25T23:45:00.000-07:00</published><updated>2006-10-25T23:49:07.150-07:00</updated><title type='text'>benchmark of languages.....</title><content type='html'>While googling i found this....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://shootout.alioth.debian.org/gp4/benchmark.php"&gt;Check it out..&lt;/a&gt;&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;br /&gt;| &lt;a href="http://technorati.com/tag/benchmark" rel="tag"&gt;benchmark&lt;/a&gt; | &lt;a href="http://technorati.com/tag/language+speed" rel="tag"&gt;language speed&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-116184524871083417?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/116184524871083417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=116184524871083417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116184524871083417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116184524871083417'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/10/benchmark-of-languages.html' title='benchmark of languages.....'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-116176408190270984</id><published>2006-10-25T01:13:00.000-07:00</published><updated>2006-10-25T23:01:11.696-07:00</updated><title type='text'>good jokes i found while googling</title><content type='html'>&lt;blockquote&gt;#  Me: "What compiler do you use?"&lt;br /&gt;# Him: "Well, Qbasic is my favorite."&lt;br /&gt;# Me: "Nobody over the age of eight uses QBasic for serious purposes."&lt;br /&gt;# Him: "But they made windows with QBasic." &lt;/blockquote&gt;&lt;br /&gt;I have a small anecdote of what happened in my class in our college.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Student:&lt;/span&gt; M'am, can you suggest any topic for my project?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Teacher:&lt;/span&gt; I ll have to think about it. But i dont have time.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Student:&lt;/span&gt; Please tell it to now, so that i can start working on it.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Teacher:&lt;/span&gt; Why dont you do VOICE CHAT IN TAMIL.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Student:&lt;/span&gt; Mam!!!But...&lt;br /&gt;We were all laughing by then.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rinkworks.com/stupid/cs_programming.shtml"&gt;check it out&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technorati.com/tag/funny" rel="tag"&gt;funny&lt;/a&gt; | &lt;a href="http://technorati.com/tag/jokes" rel="tag"&gt;jokes&lt;/a&gt; | &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-116176408190270984?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/116176408190270984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=116176408190270984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116176408190270984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116176408190270984'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/10/good-jokes-i-found-while-googling.html' title='good jokes i found while googling'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-116160656892211096</id><published>2006-10-23T04:40:00.000-07:00</published><updated>2006-10-25T23:01:45.890-07:00</updated><title type='text'>6 Must have Tools for web2.0 application development</title><content type='html'>For proper development of any application, a developer needs an editor and debugger. PHP and javascript are the technologies i am considering for serverside scripting and client side scripting respectively. &lt;br /&gt;First lets look at the editors that are available for free.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. &lt;a href="en.wikipedia.org/wiki/Vi"&gt;vi&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Who can ever forget vi. Thats one of the best editors i have ever seen in my life. Any one familiar with *nix would have used this editor. This can be your choice of development if you want a fast, simple ,small editor then vi is just the right editor for you. But it takes time for you to get used to it.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. &lt;a href="http://www.mpsoftware.dk/phpdesigner.php"&gt;PHPDesigner 2005&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This is a good editor to start off with, if you want an editor not taking much resources but still helpful, this is just right for you. I have seen the later versions of phpdesigner, which i found very buggy and taking too much resources. This version is best of the lot.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. &lt;a href="http://www.phpeclipse.de/"&gt;PHPEclipse&lt;/a&gt; (php)&lt;/span&gt; &lt;br /&gt;If you want an IDE, then you can go for phpeclipse plugin for eclipse. I have used the plugin from zend, its very buggy and is not that good. PHPEclipse plugin has been there for a long time compared to the zend plugin, and has matured over the time. You can find a tutorial for &lt;a href="http://pvsun.blogspot.com/2006/08/setting-up-development-environment.html"&gt;installing phpeclipse here&lt;/a&gt; .&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4. &lt;a href="http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/"&gt;JSEclipse&lt;/a&gt; (javascript)&lt;/span&gt;&lt;br /&gt;This is a plugin to eclipse ide.There is a community version available for this plugin. It uses almost all the features of eclipse.If you are planning to use it for commercial purpose i'd suggest you buy it.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5. &lt;a href="http://www.aptana.com/"&gt;Aptana&lt;/a&gt; (javascript)&lt;/span&gt;&lt;br /&gt;There is a aptana plug-in for eclipse. This comes bundled with some of the most used AJAX libraries like yahoo,dojo... Even this plugin uses all the features of eclipse.&lt;br /&gt;After choosing the editors, we need to choose some tools for debugging.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;6. &lt;a href="http://dd.cron.ru/"&gt;DBG Debugger&lt;/a&gt;(PHP)&lt;/span&gt;&lt;br /&gt;This debugger has to be installed in your webserver. The debugger client is built in phpeclipse plugin. There is a tutorial for howto &lt;a href="http://pvsun.blogspot.com/2006/08/setting-up-development-environment.html"&gt;install dbg debugger here.&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7. &lt;a href="https://addons.mozilla.org/firefox/1843/"&gt;Firebug extension for firefox&lt;/a&gt; (javascript)&lt;/span&gt;&lt;br /&gt;This extension is very useful in debugging javascript. You can also use venkman javascript debugger, but i found firebug to be more useful and faster when compared to venkman.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;8. &lt;a href="http://livehttpheaders.mozdev.org/"&gt;Live HTTP Header extension for firefox&lt;/a&gt; &lt;br /&gt;&lt;/span&gt;This is very useful for debugging web2.0 based applications. This extension is useful for monitoring the http requests going out from the browser. There is a replay feature in this extension which is very useful.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;9. &lt;a href="http://ietab.mozdev.org/"&gt;IETab extension for firefox&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This extension is a very useful extension, for viewing how the site behaves in ie. It basically creates a new tab where ie is embedded in it. This will reduce a lot of pain especially when you dont want to switch windows while using firefox.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;10. &lt;a href="http://hermann.czedik.net/projekte/switcher/"&gt;Server Switcher extension for firefox&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This extension is very useful for switching between the developer server and the live server. This will help reduce a lot of time and irratation while development.&lt;br /&gt;&lt;br /&gt;By choosing a suitable editor and the above tools, the application development becomes a lot easier. There are other editors and tools which i havent mentioned. most of them i think were redundant or werent that good when i had used it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;happy ajaxing!!!!&lt;/span&gt;&lt;br /&gt;Tags : &lt;br /&gt;&lt;a href="http://technorati.com/tag/web2.0" rel="tag"&gt;web2.0&lt;/a&gt; | &lt;a href="http://technorati.com/tag/ajax+tools" rel="tag"&gt;ajax tools&lt;/a&gt; | &lt;a href="http://technorati.com/tag/editor" rel="tag"&gt;editor&lt;/a&gt; |&lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-116160656892211096?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/116160656892211096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=116160656892211096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116160656892211096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116160656892211096'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/10/6-must-have-tools-for-web20.html' title='6 Must have Tools for web2.0 application development'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-116159499070952864</id><published>2006-10-23T02:10:00.000-07:00</published><updated>2006-10-25T23:02:01.536-07:00</updated><title type='text'>Funny link on web2.0</title><content type='html'>While googling i found this oliver widder's blog. it was funny and different....&lt;br /&gt;&lt;a href="http://geekandpoke.blogspot.com/"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px;" src="http://photos1.blogger.com/blogger/2859/2904/1600/Page_1.75.jpg" border="0" alt="" /&gt;&lt;/a&gt; |&lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-116159499070952864?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/116159499070952864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=116159499070952864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116159499070952864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116159499070952864'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/10/funny-link-on-web20.html' title='&lt;a href=http://geekandpoke.blogspot.com/&gt;Funny link on web2.0&lt;/a&gt;'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-116097352422296314</id><published>2006-10-15T21:38:00.000-07:00</published><updated>2006-10-25T23:02:28.920-07:00</updated><title type='text'>DataStructures and algorithm</title><content type='html'>This blog is an effort to help people understand the basics of programming, data structures and algorithms. This blog doesnt have any mathematical equations,this blog is purely for programmers.....A must read for anyone trying to learn datastructures&lt;br/&gt;&lt;br/&gt;&lt;a href="http://datastructures101.blogspot.com/"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/programming/DataStructures_and_algorithm"&gt;digg story&lt;/a&gt;  |&lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-116097352422296314?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/116097352422296314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=116097352422296314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116097352422296314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/116097352422296314'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/10/datastructures-and-algorithm.html' title='DataStructures and algorithm'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-115814258485763423</id><published>2006-09-13T03:02:00.000-07:00</published><updated>2006-10-25T23:02:56.593-07:00</updated><title type='text'>Optimizing AJAX .....</title><content type='html'>There has been an explosion in the use of ajax in many websites. I dont like to use a technology just because it is there or it is the coolest thing. But in situations where you want to get information from the server every 'n' seconds or minutes, it makes sense to use ajax. But ajax can crash the browser when not used properly in this situation. The things we need to take care when we are making async calls every 'n' seconds are,&lt;br /&gt;1&gt;to keep least number of request objects in the stack.&lt;br /&gt;2&gt;to abort a connection after some timeout period.&lt;br /&gt;3&gt;to release the memory, or deallocating the request object.&lt;br /&gt;&lt;br /&gt;But before that first we need to calculate the RTT(Round Trip Time, which is nothing but response time)using which we can calculate 'n', this will help in reducing the load on server.&lt;br /&gt;&lt;br /&gt;To calculate the RTT, we can either make a synchronous or asynchronous request of a known page or a image in server of known size which is less than 64kb(the max size in a single ip packet). First record the current time. Then make the request. Record the time after the request gets completed. The difference between the two time is the RTT.&lt;br /&gt;This call should be made when the page loads. If data being fetched is from database then make a request to a page which connects to database and retrieves data. This will give the health of the server. To further optimize and reduce the load on server make this RTT expire every 'm' seconds and recalculate RTT.&lt;br /&gt;After calculating the RTT, set the value of 'n' to RTT or more. The reason we the value of 'n' should be greater than RTT is let's say 'n' is less than RTT, the client will be making two or more requests before the response has arrived. If the same thing is done by let's say 10000 clients simultaneously, the server will endup processing more number of requests per client. This will affect the performance of the server considerably.&lt;br /&gt;&lt;br /&gt;Set a timeout for each connection based on the value of the RTT. If the response doesnt come within the timeout period , abort or discard the connection. Release the request object. &lt;br /&gt;These steps will ensure smooth functioning of a AJAX application, and also enabling server to service more users with the current infrastructure.&lt;br /&gt;&lt;hr noshade&gt;&lt;span style="font-weight:bold;"&gt;UPDATE:&lt;/span&gt; 25th SEP 2006&lt;hr noshade&gt;&lt;br /&gt;I had implemented this logic and had faced several problems in a high traffic site, but in a testing environment it worked fine. There are some things which needs to be done additionally to have a smooth ajax application without much errors. You can actually ignore RTT, by making requests only when the previous request gets finished. This approach has 2 advantages,&lt;br /&gt;1&gt; you wont crash the browser and also there wont be stack overflow.&lt;br /&gt;2&gt; will be kindof dynamic, so when the load on the server is more and the response time increases there wont be many requests piling up. The browser blocks ajax calls or gets data from cache when calls are made to the same url again and again. This is true in IE. To avoid this, add a dummy field(&lt;span style="font-style:italic;"&gt;timerasdf&lt;/span&gt;) in the query string with current time(&lt;span style="font-style:italic;"&gt;bcoz its unique&lt;/span&gt;) as its value.&lt;br /&gt;Whenever the there is no response, keep a timeout so that you can make the request again. This approach has solved many problems, and also has reduced the load on server.&lt;br /&gt; | &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-115814258485763423?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/115814258485763423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=115814258485763423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115814258485763423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115814258485763423'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/09/optimizing-ajax.html' title='Optimizing AJAX .....'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-115700504091771847</id><published>2006-08-30T22:58:00.000-07:00</published><updated>2006-10-25T23:03:15.086-07:00</updated><title type='text'>A wild idea but it might just work.......</title><content type='html'>If you see very closely there is one thing common in many bloggers and that is they all have some kindof counter and it also tracks from where the last request came. The list of free counters can be found by just googling. These statistics site also have something in common that is they all have ranked the users who have put this statistics. so you actually have all the list of users who have these statistics counter on their page. &lt;br /&gt;To increase the traffic in the site here is the idea............&lt;br /&gt;1. First populate all the set of users using these statistics... this can be done by writing a bot to do it which IMHO is not very complex.&lt;br /&gt;2. Now make a request to these people's pages using a bot with the http reference set to your site or another site which redirects to your site or to a google's search page where your page is the first one in the searched items list(that will make them surely visit the google link).&lt;br /&gt;which can be easily done using ajax by &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;xmlhttprequest.setRequestHeader("Reference", "http://www.yoursite.com");&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;3. From time to time the bot needs to visit those statistics site to get the new users. And also all the list of users must be maintained in a database.&lt;br /&gt;4. Shouldnt make request very reqularly as this might make people ignore the request.&lt;br /&gt;5. Here the chances of people visting the website are low , possibility would be  from 1/10 to 1/20, but you can really narrow down on the audience you want (coz these statistics site have already categorised all their pages)and is a free of cost advertisement which in my opinion is great. Also even if 1 in every 10 or 20 people visit the page, the numbers are huge.&lt;br /&gt; | &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-115700504091771847?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/115700504091771847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=115700504091771847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115700504091771847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115700504091771847'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/08/wild-idea-but-it-might-just-work.html' title='A wild idea but it might just work.......'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-115700235843716956</id><published>2006-08-30T22:20:00.000-07:00</published><updated>2006-10-25T23:03:34.240-07:00</updated><title type='text'>Intimate Closing the window</title><content type='html'>In many situations , people need to find out whether the user has closed the window or is out of that page.... For that to find out we need to tap into the window.onunload event. make an synchronous call to the server to intimate. this can also be used to post the data in the form. You cant make a "&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;async&lt;/span&gt;&lt;/span&gt;" or "&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;ajax&lt;/span&gt;&lt;/span&gt;"&lt;br /&gt;call because the thread wont wait for the request to be completed(async) and the window will be closed before the request gets over.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;window.onunload=function ()&lt;br /&gt;{&lt;br /&gt;//req ---&gt; XMLHTTPRequest object&lt;br /&gt;&lt;br /&gt; req.open("POST",URL,false/*synchronous call*/);&lt;br /&gt; req.setRequestHeader("Cache-Control","no-cache");&lt;br /&gt; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");&lt;br /&gt; req.send(post-items);&lt;br /&gt;};&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;but there is a problem here , whenever the user navigates from this page or refreshes the page, the server will get the intimation. Now the problem here is howto distinguish between navigation out of the page and the closing of window. One way to do it would be to have a flag which will be set whenever the user clicks that link.&lt;br /&gt;it will look like this&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;&amp;lt;a href=URL onclick="navigate-flag = 1;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;This flag can be checked in the onunload event handler.&lt;br /&gt; | &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-115700235843716956?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/115700235843716956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=115700235843716956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115700235843716956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115700235843716956'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/08/intimate-closing-window.html' title='Intimate Closing the window'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-115683248393452125</id><published>2006-08-28T22:39:00.000-07:00</published><updated>2006-10-25T23:09:10.840-07:00</updated><title type='text'>Setting up the Development Environment.......</title><content type='html'>I searched for setting up the development environment for web-developers(PHP - JS) extensively over the net but couldnt find anything concrete. I have used many editors and there is nothing as good as eclipse (nothing can beat vi)....ya i accept its bulky and a bit slow(tats java for u)....but it saves you a lot of time in debugging and also while coding.....this is for people who already have a website and a version control in place....&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Apache&lt;/span&gt;&lt;a href="http://httpd.apache.org/download.cgi"&gt;&lt;img src="http://httpd.apache.org/images/apache_pb.gif" /&gt;&lt;/a&gt;&lt;br /&gt;1. Download the version of apache(sources or binaries or executable) used in the server &lt;a href="http://httpd.apache.org/download.cgi"&gt;http://httpd.apache.org/download.cgi&lt;/a&gt;&lt;br /&gt;2. Install apache.&lt;br /&gt;(to have a smooth installation shutdown all the services which might use port 80 esp. skype)&lt;br /&gt;(while using linux... its always better to compile the sources)&lt;br /&gt;3. Start the apache service&lt;br /&gt;for windows&lt;br /&gt;&lt;span style="font-style:italic;"&gt;control panel -&gt; administrative tools -&gt; services&lt;/span&gt;&lt;br /&gt;right click Apache2 -&gt; Start.&lt;br /&gt;(if you dont find apache2 service then try repairing)&lt;br /&gt;for linux&lt;br /&gt;~]# &lt;span style="font-style:italic;"&gt;httpd &amp;&lt;/span&gt;(to run as a background process) or &lt;span style="font-style:italic;"&gt;apachectl start&lt;/span&gt; or &lt;span style="font-style:italic;"&gt;service httpd start&lt;/span&gt;(redhat derivatives)&lt;br /&gt;4. Now try localhost in your favourite browser...If you dont get the test page, it mite be becoz of 2 reasons... &lt;br /&gt;    a...your firewall is blocking&lt;br /&gt;    b...some other service is using the same port(skype does that)&lt;br /&gt;open the port 80 in firewall and also close all services which might use the same port. if this doesnt work then try repairing in windows.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PHP&lt;/span&gt;&lt;a href="http://www.php.net/downloads.php" &gt;&lt;img src="http://static.php.net/www.php.net/images/php.gif" /&gt;&lt;/a&gt;&lt;br /&gt;1. Download the appropriate version of php from &lt;a href="http://www.php.net/downloads.php"&gt;http://www.php.net/downloads.php&lt;/a&gt;&lt;br /&gt;2. Now extract the compressed file downloaded to &lt;span style="font-weight:bold;"&gt;[LOCATION]&lt;/span&gt;&lt;br /&gt;3. Go to the &lt;span style="font-weight:bold;"&gt;[LOCATION]&lt;/span&gt; and rename php.ini-recommended to php.ini&lt;br /&gt;4. Add this to the httpd.conf file&lt;br /&gt;for windows&lt;br /&gt;LoadModule php5_module "[LOCATION]/php5apache2.dll"&lt;br /&gt;AddType application/x-httpd-php .php&lt;br /&gt;PHPIniDir "[LOCATION]"&lt;br /&gt;for linux&lt;br /&gt;LoadModule php5_module "[LOCATION]/php5apache2.so"&lt;br /&gt;AddType application/x-httpd-php .php&lt;br /&gt;PHPIniDir "[LOCATION]"&lt;br /&gt;5. Restart Apache. Now for testing try putting phpinfo() in a .php file in [htdocs] folder. make a request from your favourite browser.&lt;br /&gt;6. for windows&lt;br /&gt;now copy the file libmysql.dll to c:\windows\system327. now add the extension path to the php.ini file&lt;br /&gt;for windows&lt;br /&gt;extension_dir="[LOCATION]\ext"&lt;br /&gt;&lt;br /&gt;for linux (generally)&lt;br /&gt;extension_dir="/usr/lib/php/modules"&lt;br /&gt;or &lt;br /&gt;extension_dir="[LOCATION]/modules"&lt;br /&gt;&lt;br /&gt;8. in order to access mysql server add this to the php.ini file&lt;br /&gt;for windows&lt;br /&gt;extension=mysql.dll&lt;br /&gt;extension=mysqli.dll&lt;br /&gt;&lt;br /&gt;for linux&lt;br /&gt;extension=mysql.so&lt;br /&gt;extension=mysqli.so&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DBG PHP Debugger&lt;/span&gt;&lt;a href="http://dd.cron.ru/dbg/downloads.php"&gt;&lt;img src="http://dd.cron.ru/dbg/gifs/dbg_logo3.gif"/&gt;&lt;/a&gt;&lt;br /&gt;1. Download the dbg debugger from &lt;a href="http://dd.cron.ru/dbg/downloads.php"&gt;http://dd.cron.ru/dbg/downloads.php&lt;/a&gt;&lt;br /&gt;2. The versions of php supported by free version of debugger are from 4.0.6 up to 4.4.2 and from 5.0.0 up to 5.1.2.&lt;br /&gt;3. If your version of php is not supported then try using zend debugger but that wont work with phpeclipse. In that case try using the php ide(i had some bad experiences with it).&lt;br /&gt;4.for linux &lt;br /&gt;copy dbg.so-[VER] to the extension folder of php&lt;br /&gt;for windows&lt;br /&gt;copy php_dbg.dll-[VER] to the extension folder of php&lt;br /&gt;5. Add this to php.ini file&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;[debugger]&lt;br /&gt;debugger.enabled = true&lt;br /&gt;debugger.profiler_enabled = true&lt;br /&gt;debugger.JIT_host = clienthost&lt;br /&gt;debugger.JIT_port = 7869&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;6. Restart apache and try phpinfo.It will look like this&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/797/1737/1600/dbg-phpinfo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/797/1737/200/dbg-phpinfo.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Eclipse&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://download.eclipse.org/eclipse/downloads/"&gt;&lt;img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/header_logo.gif"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. Download eclipse 3.1.2 from &lt;a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.1.2-200601181600/index.php"&gt;here&lt;/a&gt;&lt;br /&gt;The latest release 3.2 doesnt work well with PHPeclipse 1.1.8&lt;br /&gt;2. If you dont have JavaRunTime(J2SE Update 8) then download it from &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;here&lt;/a&gt;&lt;br /&gt;3. Install java runtime&lt;br /&gt;4. Extract the eclipse file to any location&lt;br /&gt;5. Eclipse will ask for the location of a workspace, give a location&lt;span style="font-weight:bold;"&gt;[WORK]&lt;/span&gt;.&lt;br /&gt;6. To do a manual install of phpeclipse download the compressed file from &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=57621"&gt;here&lt;/a&gt;&lt;br /&gt;7. Now extract that file in the eclipse folder.&lt;br /&gt;8. Goto the commandline and type &lt;span style="font-style:italic;"&gt;eclipse -clean&lt;/span&gt;. &lt;br /&gt;You can skip steps 6-8 if you are doing a automatic install.&lt;br /&gt;9. Now to install subclipse(subversion client) follow the instructions on this&lt;a href="http://subclipse.tigris.org/install.html"&gt; page &lt;/a&gt;.&lt;br /&gt;10. Now change the perspective in eclipse to SVN Repository.&lt;br /&gt;10.1. In the left You will find the SVN Repository Tab&lt;br /&gt;&lt;img src="http://img183.imageshack.us/img183/5141/svnnewlocationub0.jpg"/&gt;&lt;br /&gt;10.2. Now give the location of your repository in this dialog&lt;br /&gt;&lt;img src="http://img183.imageshack.us/img183/4683/svnurlij3.jpg" /&gt;&lt;br /&gt;10.3. Now checkout your repository&lt;br /&gt;&lt;img src="http://img183.imageshack.us/img183/9325/svncheckoutxu2.jpg" /&gt;&lt;br /&gt;10.4. Then you will get this dialog&lt;br /&gt;&lt;img src="http://img183.imageshack.us/img183/8959/svncheckoutdialogbb8.jpg" /&gt;&lt;br /&gt;Then create a new project(PHP) inside the workspace.You can create multiple projects from different repository locations in a single workspace.&lt;br /&gt;11. Now goto project properties&lt;br /&gt;&lt;img src="http://img174.imageshack.us/img174/5094/projectpropertiesblogwj0.jpg" /&gt;&lt;br /&gt;12. You can change the settings for the project accordingly&lt;br /&gt;&lt;img src="http://img174.imageshack.us/img174/2572/projectpropertiessettingsblogsy5.jpg" /&gt;&lt;br /&gt;13. Now open any php file. &lt;br /&gt;13.1. To run or debug you need to set the configuration. When you right click and click run or debug you will get the following dialog box. There create a new configuration.&lt;br /&gt;&lt;img src="http://img172.imageshack.us/img172/817/runcreateconfighz5.jpg" /&gt;&lt;br /&gt;13.2. In the same window, set the path and file name&lt;br /&gt;&lt;img src="http://img172.imageshack.us/img172/9536/rungivefilenamesv8.jpg" /&gt;&lt;br /&gt;Each and every file will have their own configuration for executing and/or debugging.&lt;br /&gt;13.3. In the same window now select the First environment tab. There give the path of the php interpreter.&lt;br /&gt;&lt;img src="http://img172.imageshack.us/img172/2426/runinterpreterru8.jpg" /&gt;&lt;br /&gt;13.4. Now in the remote debug tab set the remote debugging option and check the path there&lt;br /&gt;&lt;img src="http://img172.imageshack.us/img172/4200/runremotedebugdy6.jpg" /&gt;&lt;br /&gt;14. For editing javascript , aptana plugin is very good . To install aptana follow the following instructions found at this &lt;a href="http://www.aptana.com/docs/index.php/Plugging_Aptana_into_an_existing_Eclipse_configuration"&gt;page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;15. For javascript you may also install JSEclipse plug-in which is also good. For commercial use, i did suggest you buy it. It can be found at this &lt;a href="http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/"&gt;page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;16. All the SVN options can be found in &lt;span style="font-style:italic;"&gt;rightclick file -&gt; Team -&gt;&lt;/span&gt;&lt;br /&gt;While commiting to svn plz dont commit the &lt;span style="font-weight:bold;"&gt;.project&lt;/span&gt; file.&lt;br /&gt;&lt;br /&gt;happy eclipsing!!!!!&lt;br /&gt;Tags |- &lt;a href="http://technorati.com/tag/eclipse" rel="tag"&gt;eclipse&lt;/a&gt; | &lt;a href="http://technorati.com/tag/apache" rel="tag"&gt;apache&lt;/a&gt; | &lt;a href="http://technorati.com/tag/phpeclipse" rel="tag"&gt;phpeclipse&lt;/a&gt; | &lt;a href="http://technorati.com/tag/debugger" rel="tag"&gt;debugger&lt;/a&gt; | &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-115683248393452125?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/115683248393452125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=115683248393452125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115683248393452125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115683248393452125'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/08/setting-up-development-environment.html' title='Setting up the Development Environment.......'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-115089786966685363</id><published>2006-06-19T06:49:00.000-07:00</published><updated>2006-10-25T23:05:20.586-07:00</updated><title type='text'>i have joined tutorvista</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;font-size:130%;" &gt;&lt;blockquote&gt;me and my friends will be starting one so we joined one...........&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt; | &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt; | &lt;a href="http://technorati.com/tag/tutorvista" rel="tag"&gt;tutorvista&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-115089786966685363?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/115089786966685363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=115089786966685363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115089786966685363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/115089786966685363'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/06/i-have-joined-tutorvista.html' title='i have joined &lt;i&gt;&lt;a href=www.tutorvista.com&gt;tutorvista&lt;/a&gt;&lt;/i&gt;'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-114933612928501866</id><published>2006-06-03T04:32:00.000-07:00</published><updated>2006-06-03T05:05:56.713-07:00</updated><title type='text'>My take on RESERVATIONS</title><content type='html'>There has been too much buzz created out of reservation. The struggle has lost the momentum it once had. I am not totally against Reservations but i am against the way it is being implemented. And lets face it... whatever we do the politicians will turn a blind eye coz they are more worried about their votebank and getting themselves reelected. The Modern India still practices the caste system in a very special way. Most of the people who come into institutions through reservation dont stand a chance if they are asked to compete. Yes there are certain exceptions but "&lt;span style="font-style: italic;"&gt;Exceptions are not examples&lt;/span&gt;".......I am a strong believer of "Survival of the fittest" but what i find around me is most of the ppl around are not supposed to be there but have somehow made it due to reservations. Most of the ppl who make it through reservations are ppl who dont really deserve it and bring down the quality of the institution. The govt is bent on bringing down every fucking thing in this country. The govt has brought down the standards of education. There is a very good example of many govt offices getting screwd becoz of reservation and most of the ppl who are corrupt in govt offices are ppl who dont deserve to be there but hav made it thru reservations. The condition of India is pathetic and why shouldnt the so called 'down troden' community compete for their survival. Reservation raises several question such as&lt;br /&gt;are they afraid of loosing or are they incompetent to compete with the so called FC guys....&lt;br /&gt;The reservation should be a minority not the otherway round.Now they want to bring reservations into the Private Sector. Arent these ppl shameful for accepting that they are handicapped.That shows the attitude of the ppl in the downtroden community and i dont think their attitude will change in the future as long as reservations exist....Anyways the politicians have screwd the whole country bcoz of Reservation and they will continue to do so until nothing exists.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-114933612928501866?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/114933612928501866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=114933612928501866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/114933612928501866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/114933612928501866'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/06/my-take-on-reservations.html' title='My take on RESERVATIONS'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-114681436982515316</id><published>2006-05-04T23:54:00.000-07:00</published><updated>2006-06-01T08:13:31.943-07:00</updated><title type='text'>My first interview</title><content type='html'>My phone rang in the afternoon when i was just about to hit the bed. My cousin was on the line asking to do an interview for them. it was a complete surprise for me as i had not even finished my graduation. He said the interview was for freshers(&lt;span style="font-style: italic;"&gt;with 2+ yrs experience--&gt;thats what he had in mind&lt;/span&gt;). I said ok with little hesitation(&lt;span style="font-style: italic;"&gt;i knew nothing abt web programming&lt;/span&gt;).&lt;br /&gt;Then the day before the interview my cousin called again to look at the ad they had given in the paper. After googling for some time, i was shocked to see the ad which read ' need php/mysql programmers with 2+ yrs experience'. But then i knew one thing for sure that if you know the fundas no one could shake you. That was the only thing which made me prepare myself for the interview.&lt;br /&gt;I dont know a word of php and was expecting some pretty good programmers with some good fundas. The dress code he had asked was '&lt;span style="font-style: italic;"&gt;Business Casual&lt;/span&gt;'(only he knows wat tat means). After searching for an hour i found one shirt and a trouser to wear. It was very uncomfortable but had to manage with that. The first day no one really turned up. I was very eager to interview someone for the first time in my life and i wanted this to be a memorable one. The next day i had my FYP review in coll. I had to finish that and then come for the interview as soon as possible.&lt;br /&gt;After travelling for more than an hour from my college in the heat i finally reached the place where the walk-in was going on.&lt;br /&gt;I was happy to see a good response the next day. And after waiting for sometime i got what i was looking for. The guy whom i was about to interview had more than 2 yrs of experience. And i had made a decision that i shouldnt waste much time on people who dont know the basics. I found to my amazement that this guy was answering the basic funda questions that i shooted at him.&lt;br /&gt;Then i started my second round of questions(&lt;span style="font-style: italic;"&gt;the ones that sound very wierd or one can call it questions with a twist&lt;/span&gt;). Initially he answered some of the questions but then as i started testing his in-depth knowledge in ASP he buckled down. I then was looking at his resume more keenly and found that this guy had written TCP/IP,Data Structures and Algorithms(&lt;span style="font-style: italic;"&gt;the subjects i love&lt;/span&gt;). I certainly knew that this guy knew nothing about these subjects. First i asked him whether he knows these two subjects well, but he answered that these were his favourite subjects.&lt;br /&gt;I was happy to hear such a thing from him. Then i fired questions one by one at him but he couldnt answer any of those questions i asked. He was totally cornered by then(&lt;span style="font-style: italic;"&gt;which i never wanted to do&lt;/span&gt;). I was there for recruiting and to test their basics. I really came there for making people feel good but there i was torturing that fella which i couldnt avoid doing.&lt;br /&gt;I drilled for more than an hour, and i felt real sorry for wasting his time. After this i learnt a lesson that its not good to waste my time as well as his on a thing which is not at all worth it.&lt;br /&gt;After this i interviewed 3 more people who were utter waste or were fudging their resume(&lt;span style="font-style: italic;"&gt; which i could clearly make out&lt;/span&gt;)&lt;br /&gt;At the end of the day this was not at all waste of time. I was satisfied to drill this fella(&lt;span style="font-style: italic;"&gt;felt sorry for not selecting him&lt;/span&gt;). And i dont think i can ever forget this intervierw in my whole life. And it makes you feel Great when you are at the other side of the table questioning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-114681436982515316?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/114681436982515316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=114681436982515316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/114681436982515316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/114681436982515316'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/05/my-first-interview.html' title='My first interview'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-114019877351898278</id><published>2006-02-17T09:51:00.000-08:00</published><updated>2006-10-25T23:07:02.353-07:00</updated><title type='text'>PAPPU lassi in rishikesh</title><content type='html'>We were looking for a triveni sangam in rishikesh, and saw a small lassi shop there named pappu lassi in a small corner of the road. we were attracted to lassi and so we went inside to find out how their lassi really tastes like. As soon as we entered we found a white yankie with long beard enter inside the shop and were totally surprised to see him speak tamil. After chatting with him for sometime we got what we were really looking for. This is how it looked like.....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/797/1737/640/P1010001.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: center; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/797/1737/320/P1010001.jpg" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt; &lt;br /&gt;Trust me this is not one of the best lassis one can find in Rishikesh..&lt;br /&gt; | &lt;a href="http://technorati.com/tag/sundarram" rel="tag"&gt;sun&lt;/a&gt; | &lt;a href="http://technorati.com/tag/pvs" rel="tag"&gt;pvs&lt;/a&gt; | &lt;a href="http://technorati.com/tag/rishikesh" rel="tag"&gt;rishikesh&lt;/a&gt; | &lt;a href="http://technorati.com/tag/lassi" rel="tag"&gt;lassi&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-114019877351898278?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/114019877351898278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=114019877351898278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/114019877351898278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/114019877351898278'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2006/02/pappu-lassi-in-rishikesh.html' title='PAPPU lassi in rishikesh'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-113600867553399123</id><published>2005-12-30T21:57:00.000-08:00</published><updated>2005-12-30T21:57:55.543-08:00</updated><title type='text'>Happy New Year</title><content type='html'>Wish you all a Happy and Prosperous New Year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-113600867553399123?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/113600867553399123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=113600867553399123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/113600867553399123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/113600867553399123'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/12/happy-new-year.html' title='Happy New Year'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-113575046560865200</id><published>2005-12-27T21:32:00.000-08:00</published><updated>2006-08-30T01:55:32.246-07:00</updated><title type='text'>Linux</title><content type='html'>The first time i tried installing linux(that's what i used to think) 3 years ago i crashed the whole system, i had to reformat the whole system and then install windows first and then linux(this was just an experimentation). but even after crashing my system i didnt give up and installed it finally after asking for tips from several others. After finally installing linux i was satisfied. then i started using it and was dissappointed by the way linux behaved(as i expected it to be another windows). To configure my system to go to net itself was a big hurdle to me. After connecting to net in Linux i was overjoyed and i am staying with linux.&lt;br /&gt;&lt;br /&gt;        After staying for this long this is what i have learned. Linux is nothing but a kernel and not the whole operating system. It is the heart of the system. Over it Gnu has built the Operating System. There are many Distros that have different flavours of Linux kernel(compiled with different param &amp; with some modification). Linux is not at all about just another kernel, with it there is a philosophy that people should get good quality software free of cost and also the users must have all kinds of control right from various options to modifying code to behave as they want. Its like this 'linux has a lot to offer for people who really know and like to have total control and power'. In the begining i never understood this and was always thinking in the lines that linux(distro) is all about replacing windows. But after three years i can say 'If you want to just use a OS with no control go for Windows, If you really want to hack the kernel and make it work the way better go for linux(distro)'. Initially i tried doing things the windows way(like every linux newbee), but failure was the only result. Linux(distro) actually makes programmers life easier by giving them the transparency they need and all the power and control. The essence of linux is not to replace windows but to give another alternative for operating system. One can say why not make linux&lt;span style="font-style: italic;"&gt;(distro)&lt;/span&gt; as easier as windows, but as i have said earlier it is not a replacement but an alternative and also it has its own flavour which is not windows like in any way. With all the GUI based Desktop System available for Linux people have made migration for Windows user easier. Even a GUI can give you full power but it has its own disadvantages of sacrificing performance&lt;span style="font-style: italic;"&gt;(like any computer programmer, i love great performance)&lt;/span&gt;. There are people in every corner of earth ready to help you with dealing with your problems&lt;span style="font-style: italic;"&gt;(where can you find such a thing)&lt;/span&gt;.&lt;br /&gt;A person writes a software for solving his problem, but there are many people who face the same problem and their life can be made easier with this software. There are two options for that author of that software :&lt;br /&gt;   1&gt;Sell it&lt;span style="font-style: italic;"&gt;(You probably know them)&lt;/span&gt;&lt;br /&gt;   2&gt;Give it to the community&lt;br /&gt;the only benefit that author will get is money but he will be loosing millions if everyone on this earth start thinking the way he does. Also he can sell buggy peice of code to people and still make money&lt;span style="font-style: italic;"&gt;(i dont want to name that company)&lt;/span&gt;. But if he is a real nerd he will like his software to improve and be useful to every one he will give it to community. In Open source community people give their code to community and what happens is any one interested in this will take up development and improve the software. It is like you give something to community and it gives something back to you. So when you have another problem and there is another person on earth who had the same problem before you ,so what he did has made your life easier. The development process in Opensource project is kinda different, 1.  it produces good quality software(very unlikely in some proprietery software firms) 2. it improves and evolves all along its life cycle.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Statuatory Warning&lt;/span&gt;: &lt;span style="font-style: italic; font-weight: bold;"&gt;Linux is addictive&lt;/span&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-113575046560865200?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/113575046560865200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=113575046560865200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/113575046560865200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/113575046560865200'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/12/linux.html' title='Linux'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-113061174101411253</id><published>2005-10-29T11:19:00.000-07:00</published><updated>2005-10-29T11:51:36.490-07:00</updated><title type='text'>Rain!!!!!</title><content type='html'>i was playing snooker in the evening and after playing for more than 2 hours i realised i had a presentation(univ.) for the project the next day. and also i had not finished my project.&lt;br /&gt;still had many issues and major part of the code was not yet present. so i went to my friends place to give me a hand in coding but found we were both not that good with the coding part. after fighting with the java code for 3 hrs(would you believe it!!) the code was working with some bugs. i didnt even realise it was raining outside. it was already 10 in the night and i had no clue of it. my mom couldnt reach me(i had not paid the bill and airtel had pulled off their service). she was kind of worried. she didnt know where i was. another friend of mine contacted me and asked me to call my mom which i did. after facing some real music she said it was heavily raining and places were filled with water(velachery was the worst hit area). after uploading whatever i had done i pushed off from my friend's place. it was heavily raining and i was fully drenched before kicking the bike to start. on my way back to home, many roads were filled with water and i couldnt see a damn thing on my way back.the street lights were gone and i didnt find a single soul on that road to ask help. the road was filled with some 2 ft water and i was riding carefully with the accelerator on. suddenly my bike coughed and came to stand still. water went inside the engine through exhaust. thought it was the end of it. she didnt fire at all. i was kicking the bike frantically. i gave up and was now walking. i gave one last try after walking for some time and used every ounce of energy left in kicking and the bike fired. i was relieved when she fired and went back to home and again she coughed and came to a stand still.atleast this was near my house(1 km.not bad at all) . at last i reached home shivering from cold at 12.&lt;br /&gt;&lt;br /&gt;i was kind of worried about my not finishing the project and after what had happened i was in no position to even sit in front of the computer. i woke up at 7 and my mom was shouting(she does this when i am late). i got up and was ready to go to college without finishing the presentation as well as the project. i boarded the bus and the principal told that the univ exams were being postponed(too late to return as the bus had already left poonamalli) . i was overjoyed by that announcement and thanked god. for he had once again saved me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-113061174101411253?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/113061174101411253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=113061174101411253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/113061174101411253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/113061174101411253'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/10/rain.html' title='Rain!!!!!'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-112983338976015665</id><published>2005-10-20T23:59:00.000-07:00</published><updated>2005-10-20T11:49:23.563-07:00</updated><title type='text'>Inverse of Puntually Late theory</title><content type='html'>the inverse of Punctually Late Theory is also true. the theory is if u finish of a work before the deadline, some kind of problem pops up or u r not successful. these some of the instances that validate this theory.&lt;br /&gt;here it goes...&lt;br /&gt;&lt;br /&gt;the reviewing committee at IEEE had asked us to make some changes for publication of the paper. we had made the changes the day after they had intimated us. and guess what we had finished the work 10 days before the deadline(something unusual). but we did not upload the modified paper for we were waiting till the last minute and found to our surprise that IEEE has accepted our paper without changes. you might think that it was good to have accepted the paper without changes. well it is not the case. the paper has evolved for the past 2 months and we now have more results to validate our proposal. the paper certainly is in a better shape than it was 2 months before.&lt;br /&gt;&lt;br /&gt;here is another instance that just happened. ananth had finished his project report in the mornig itself (i have just finshed it). he gave his printout for binding. after binding the report he found that it had the wrong Bonafide. i though have not yet bounded my report and i am late(nothing unusual) for submitting the report.&lt;br /&gt;&lt;br /&gt;these instances tell you one thing, whenever we are not late things dont go our way.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-112983338976015665?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/112983338976015665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=112983338976015665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112983338976015665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112983338976015665'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/10/inverse-of-puntually-late-theory.html' title='Inverse of Puntually Late theory'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-112983208751088071</id><published>2005-10-20T10:55:00.000-07:00</published><updated>2005-10-20T11:37:12.306-07:00</updated><title type='text'>Punctually Late Theory....(contd)</title><content type='html'>these are some of the instances that happened to me and ananth that substantiate the "Puntually Late Theory".&lt;br /&gt;1&gt; the deadline for uploading the paper for IIT Kanpur was Jan 15th and we uploaded on 16th Jan 00:05(late by 5 minutes....not bad)------&gt;we were 1st at the contest&lt;br /&gt;2&gt;we forgot to apply for IEEE conference and the deadline was extended from 15 july to 15 aug------&gt;we are publishing a paper there&lt;br /&gt;3&gt;we were the last to approach AUKBC and they thought we were late(but not too late) ----&gt; we got a project there&lt;br /&gt;4&gt;when i joined 11th i was late by 7 months(i joined in Jan)------&gt;i scored 85%(never in my life i had crossed 70%)&lt;br /&gt;the list goes on.........&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-112983208751088071?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/112983208751088071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=112983208751088071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112983208751088071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112983208751088071'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/10/punctually-late-theorycontd.html' title='Punctually Late Theory....(contd)'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-112974256745589446</id><published>2005-10-19T10:16:00.000-07:00</published><updated>2005-10-19T10:24:02.026-07:00</updated><title type='text'>Punctually late theory.....</title><content type='html'>there were two unusual things that just happened.&lt;br /&gt;one was our(ananth,me,aswin) approaching for a project earlier than everyone else was a very unusual thing. but we had done some of the things first than anyone else in our college&lt;br /&gt;here it  goes&lt;br /&gt;we were the first to present paper in 2nd sem&lt;br /&gt;we were the first to start the fashion of growing hair in college&lt;br /&gt;we were the first in our department to publish a paper&lt;br /&gt;we were the first to get a project&lt;br /&gt;we were the first to teach staff&lt;br /&gt;............(there are many things which i cant tell openly)&lt;br /&gt;the second unusual thing being ananth blogged.&lt;br /&gt;we are not always late&lt;br /&gt;sometimes we are ahead of time&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-112974256745589446?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/112974256745589446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=112974256745589446' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112974256745589446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112974256745589446'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/10/punctually-late-theory.html' title='Punctually late theory.....'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-112957210601512738</id><published>2005-10-17T10:30:00.000-07:00</published><updated>2005-10-17T11:11:02.800-07:00</updated><title type='text'>paper publication</title><content type='html'>i was not at all surprised to see my paper selected for publication at the IEEE conference held in IIT madras. me and anantha had worked day and night on this paper. we always wanted to publish our paper in IEEE or ACM.it took us more than a year to publish a paper in IEEE without any guidance and help from any one(except google). we had presented our paper in almost all the colleges in and around chennai. it was frustrating since not even a single soul could understand what we were saying or the gist of our paper. the questions they asked were very trivial and was not at all challenging for us. but as we were applying for every other college the paper was evolving and that was the only positive thing about presenting in so many colleges. we never gave up and were trying hard and also were analysing what really went wrong. we always knew that there was nothing wrong with the paper . there was no doubt about our presentation but something was missing. after many presentation we found out that the judges were never acquainted with TCP/IP.finally the break came. our paper got selected in IIT kanpur for presentation. after many hurdles(hod was not permitting me) we finally got the official signal to proceed with the presentation. it was a poster presentation. ananth as usual did the preparation for the poster in the last minute and we went to IIT. it was a awful place and with lots of participant. we didnt have proper accomadation there. we were ready for the presentation. and the judges came at 8 pm. we couldnt give our full presentation. the judge stopped us at the second minute and asked us "why are you using this method?". for the first time we had found our match. for the first time we felt some satisfaction that there was another person who could understand what we were doing and asked a sensible question. we were actually overjoyed by this response from the judge. we had no hope of winning any prize and by then were winding up. the event organizer asked us to wait till the results were announced . after the result was out, we went to the table where the result was put up and to our surprise found our name beside the first prize. we were kinda frozen and couldnt utter any word. even now thinking of that brings a smile to my face. after that incident we had realised that our paper was worth something more than mere presentation. after that we gave presentation a break(sem exam). we were working on the implementation of paper to extend our proposal and to come up with results. then we applied for the IEEE conference. it was selected for publication and presentation. it was one hellava experience for us from nothing to publication and the road was not at all easy.it took a lot of hardwork and our passion to achieve something had got us to this point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-112957210601512738?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/112957210601512738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=112957210601512738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112957210601512738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112957210601512738'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/10/paper-publication.html' title='paper publication'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-112948771098096850</id><published>2005-10-16T11:04:00.000-07:00</published><updated>2005-10-16T11:37:57.490-07:00</updated><title type='text'>Simcat</title><content type='html'>i was having a sound sleep and heard some voice. after some time i realised it was my mom shouting trying to wake me up for quiet a long time. then i looked at the wall clock and it was 9:30. and after 5 minutes i realised, i had a simcat today. i slept late last night and was in some other world in the morning. then within half an hour i was ready to go. and then started my bike and it had a starting problem. on my way to the stella mary's atleast the road was clear and had no signs of traffic. i was doing 70 in my bike and suddenly an old man was trying to cross the road. i honked my horn but in vain and was jamming my brakes. that oldie didnt even notice what was happening. he was in some other world. the brakes were not working in the begining and i was trying everything i could do. atlast the speed of the bike was decreasing thanks to the gear cutting technique and still it wasnt enough for me to avoid an accident. then the brake got locked with the rear wheel. and my bike was now skidding and out of control. the scene was like some guy pulling off a stunt in a movie and i nearly missed the oldie. after my bike came to a stand still i looked at the oldie and found to my amazement that the guy was walking like nothing had happened. i was furious and i was already late(as usual) . then i went and wrote the exam. the paper was tough and i couldnt attend most of the questions even after working out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-112948771098096850?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/112948771098096850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=112948771098096850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112948771098096850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112948771098096850'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/10/simcat.html' title='Simcat'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17896720.post-112940386456962698</id><published>2005-10-15T12:12:00.000-07:00</published><updated>2005-10-15T13:20:12.196-07:00</updated><title type='text'>My first Blog</title><content type='html'>&lt;span style="font-family:lucida grande;"&gt;hey&lt;br /&gt;this is my first Blog.&lt;br /&gt;i have heard ppl talk abt their blogs&lt;br /&gt;i am giving it a shot&lt;br /&gt;let me see what it is really like to blog&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17896720-112940386456962698?l=blog.pvsundarram.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pvsundarram.com/feeds/112940386456962698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17896720&amp;postID=112940386456962698' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112940386456962698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17896720/posts/default/112940386456962698'/><link rel='alternate' type='text/html' href='http://blog.pvsundarram.com/2005/10/my-first-blog.html' title='My first Blog'/><author><name>Sundarram P V</name><uri>http://www.blogger.com/profile/15024343846566595681</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-2eRpQwq0Q_4/TuB0wAtfnSI/AAAAAAAAAC0/kzV3dait2TI/s1600/a56ae5eb5a234d786e87e55241d9afc1.png'/></author><thr:total>1</thr:total></entry></feed>
