Sunday, June 26, 2011

To the Geeks: Marriage Explained

With couple of friends getting married, some looking out for their better halves and my own family asking for my plans, marriage has become recurring theme of discussion in most conversations. Personally I feel like playing the first session of test match under swinging conditions on each of my visit home. Once that part of discussion is negotiated, rest of the weekends pass without much of a fuss. So realizing the impending need for some of my most geeky friends who would soon establish a new hopefully permanent connection with a server, I have jotted down some important differences between a machine server and a human server.

  1. All your near and far relatives, a consequence of you being born in an Indian family, are the DNS (Domain Name System resolution service) servers. They will look-up your request against a matching IP to find the correct server. However, these servers use a complex algorithm to find the correct match for your innocent request. It depends on certain key-words like engineer, doctor, fair-looking, 6ft tall, working in MNC, IAS, IPS, six figure salary, religious, god-fearing and a simple family. Moreover, your valuations also depend on current trends in technology. If IT is in recession, DNS server tend to return "No match found".  Pray for a boom if you have started looking out.
  2. Once a match is found a complex set of handshakes happen between the server firewalls (parents and relatives of the server) and your DNS servers, your own firewalls which springs to life which till then acted as a harmless software running in the background of your life. If there is a packet loss between these handshakes or a  NACK message was received for any of the handshakes, you will never to get to know what the server was. 
  3. Now the servers are very selective just like you. So servers can and will reject your first incoming connection requests if they feel anything wrong with you. The reasons can be weird like your requests are too short or too long or it is just right. There is no right or wrong requests. Only your match decieds based on your requests. In that event, your DNS servers, double up their resolve to find the correct match and these goes on until a connection is established. It is an infinite loop which breaks only on two conditions.
    1. A connection is established
    2. You throw up your hands and say you have decided to become a "Brahmachari". 
  4. Once a connection is established, you are given the name of the server and that is your password for any future connections. Unlike the machine servers, there is no option of "Forgot Password". Though you can devise an alternate password, like a secret pass-phrase. In any event of forgetting the password or the secret pass-phrase will lead to temporary/permanent disconnection from the server. Of course, you still have the option of connecting to a new server, but at that stage you may get incompatibility issues, as unknown to you, server reprograms your source code with each passing day ensuring you become incompatible with every server that you would wish to connect.
  5. One good thing about this server connection is that it establishes a session which has no time-out. There is another subtle difference though. Server does not store any cookies on you. You need to send cookies (gift) periodically in different formats ensuring that each cookie surprises the server. This would ensure server does not terminate session due to any other unforeseen reasons. 
  6. The earlier firewalls transform themselves into System administrators after the connection is established. System administrators need to be treated with respect, care and caution. They have the power to tune the server as they wish. They help you to re-establish connection if somehow you forget your password and the server breaks the connection.
  7. The earlier DNS servers transforms themselves into spammers who regularly send tips and tricks on server management, improving connections, new patches for you and the server. Be cautious if you are using any of the tips, as sometimes they can lead to disastrous consequences. You also need to protect the server from these spammers, as they are affected more than you can even imagine.
  8. Production servers do not like to stay in test labs like you stay with your peers. They need dedicated data centers. It is your responsibility to get a data center where you and your server can co-exist. Absence of a data-center in the long run can lead to termination of the connection.
  9. In case of any deadlock arising over any data or process, it is advisable to release the lock from your end immediately and push your thread to sleep or suspended state. An angry server throws only unhandled, unmanageable exceptions or windows style error messages.
  10. Finally, all your activities are logged in the inexhaustible log files along with the timestamp, location and circumstances within the server. The reverse is true in your case. You will experience frequent Garbage Collections (GC) keeping only the faint traces of phantom references in your memory. Frequent GCs reduce you response times but keep you a bit happier and help you get over lot of frustrations that you experience within the confines of data center.

PS: A bit of server space on the blogger servers was used up in writing this post. However, no servers were harmed in writing this post :P

Rest of the PS: 
  • This post is specifically for the geeks who rack up more than 16 hours a day within the confines of their cubicle. Apologies to the rest of the readers, if they could not make head or tails of it. 
  • To all the die-hard feminists - I could not find a proper place to put this earlier in the post. So your blood might have boiled when reading this. Don't worry it will soon cool down :P