Monday, August 30, 2010

A Midnight Story!

"You are stealing from your company". I shouted at Mr. D, the taxi driver. He looked helpless. I couldn't read what his face expressed.  One hour to midnight. I walked towards my home.

Two hours to midnight. Bangalore International Airport. "Sir, I will take you to your home for Rs. 700/-". Mr. D said. If I commute by bus and finally in an auto-rikshaw to my home, I may have to shell out around Rs. 600 for 3 of us, me, my wife and my mother-in-law. Rs. 100/- extra for a comfortable taxi travel is affordable.

"Ok", I said. We walked towards the taxi.

"Sir, without meter I will get you there in Rs. 700/-." Mr. D said. Thats the catch. I know that the actual fair will be around Rs. 900/-.

"Ok". I said. Mr. D will not put on the taxi meter. The Rs. 700/- will go to his pocket. I felt guilty in my mind. It was almost midnight. Its getting colder. Travel in a taxi will be more warm, comfortable and takes less time to my home.

We reached home in an hour. I handed him Rs. 700/-.

"Sir, give me Rs. 50 more. I had to travel 7 extra kms." Mr. D said.

"How come, I told you the destination and you told the price" I said.

"Sir, Just Rs. 50/- more"

"I told you Rs. 700/-. We had an agreement. How come you break it when you reach here?" I shouted.

"Why should you tell all these things when I asked only for Rs. 50 extra?" asked Mr. D.

My anger fumed inside me. "How come you change your word on will. You asked Rs. 700/- I gave you what you asked."

I walked towards my home. I turned back to him, "You are stealing from your company".

I am a software developer. A software has an architecture similar to a city. A software will have one software architect who defines the initial set of rules the other software engineers to follow during the development of the software. This initial set of rules of the software can be called as the software architecture. The  engineers will write code based on these rules. If it is difficult to write code based on these rules, the engineers start to break the rules. Engineers write code which is easier to write. This is a human tendency. An important feature of a good software architecture is that it should be easy for the engineers to follow the architecture, than to break it.

When I look back at the incident, I can see that I was Mr. D's helper when he stole Rs. 700 from his taxi company. When I shouted at Mr. D, I was shouting at myself.

I wish it was easier to follow the rules than to break them!

Sunday, July 18, 2010

A Tragedy

She whispered the word in his ear. The world stood still for a moment. An explosion took place in his brain. The shockwaves travelled down to every tip of his veins. The ceiling fan cranked as if something went wrong. He felt helpless and empty. The walls echoed the whisper - "Sho..pp... ing."

Saturday, February 21, 2009

I Like Eclipse

I have started one more blog exclusively to share my Eclipse Thoughts - http://eclipse-info.blogspot.com.The blog is named "I Like Eclipse".

The blog "I Like Eclipse" is also fed to http://planeteclipse.org, which is a window to the work and life of the contributors and hackers of eclipse. This way my posts are going to be read by the entire eclipse world. The world is getting smaller. I can feel the grip of the flattened world as mentioned in The World is Flat by Thomas L Friedman

For long years I wanted to learn and collaborate with the best in the world. I used to stare curiously to the work of those people who were best in their respective professions like computing, photography, film and music. Today and tomorrows generations are lucky to have an infrastructure backbone provided by the modern communication frameworks including telephone and internet. Today anyone who is committed and dedicated to a profession has the infrastructure to grow to his maximum extend. The sky is the limit. 

Monday, January 19, 2009

Mind Graph Theory - Dreams Explained

Mind Graph Theory! This is a segment of my imagination.

What are dreams? This was a perplexing question for me for the last two decades. How do I see random sequence of vivid visuals without any connections? Is there any logic behind this?

Brain is a huge information processing factory. It holds information in the form of a graph.

Like,

Tea--Coffee
|
Morning--wakeup
|
Time to office --Office--Work -- Work PC -- IBM
|
Customer

Graphs consists of nodes and edges. The nodes in the above graph are artefacts. All related artefacts are connected directly in the graph. All unrelated artefacts does not have a direct connection with each other. These artefacts can be words, pictures, videos, audio, smell, feeling ....

As depicted in the above graph, when I think about 'Work' next thing which comes to my mind is either 'Office', 'Customer' or 'Work PC'. My mind has traversed from 'Work' node to 'Office' node through an edge.

The function of the brain is to traverse through the nodes in the mind graph. When the mind reaches a particular node in the graph we see a visual in the mind. If the visual is associated with a happy emotion then the body also responds appropriately. The brain send signals to the face to smile. Next thing the brain does is to wander to the nearest node in the graph based on the ranking of the nodes. The node which is ranked higher will be picked up next. Ranking can be based on number of previous visits to this node or based on the emotional intensity with which the node was created.

Consider we have two parts in the brain,

1. A subconscious mind
2. A logical / conscious mind

Subconsious mind will wander through this graph all the time based on the ranking of the nodes. It cannot stay in a single node of the graph. As it traverses through the graph, we see different visuals and we think about lot of different situations in our mind. The logical or conscious mind acts as a manager. It can be used to control the traversal of the mind through the graph.

This explains dreams. At night when we are switched to sleep, our conscious mind sleeps. But subconscious mind still wanders. It wanders through the graph. And as it wanders we see different kind of weird visuals in the dream. There will not be any logical mind to control the traversal. Hence the dreams will not have any logical meaning most of the time. Its like a screensaver which is activated when we go to sleep.

Now the question, In dreams how do I see things which I have never encountered before? Information is inputted to the brain through our five senses - sight, hearing, touch, smell and taste. Every second huge junks of data are stored in thousands of new nodes which are created in the mind graph. Subconsious mind stores what ever data you give to it without filtering out the unwanted elements. This is unlike your conscious mind. In your conscious mind every minute you filter out unwanted elements. If you are reading a newspaper, you will not even look to the areas which will not interest you. But your subconscious mind acts differently. What ever you see or hear, whether its good or bad, is stored in your huge graph of nodes. Suppose, while you browse through a website you might have seen a specific advertisement. You may not have given enough conscious importance to this advertisement. But still the information is stored in the mind graph. At this moment if you relate this ad with any of your past event, then a new connection will be created between this past event node and the node in which the ad is stored.

A million dollar question. What is God? God is an artefact which is inputted to the brain during the early years of our childhood. This node 'God' is associated with the emotion 'fear' and emotion 'love'. If the intensity with which this node is ranked higher in the mind of a person, then the owner of this brain can be a God fearing person.

What is concentration? When we are able to wander through the graph through related nodes about a specific problem, we are concentrating on a specific problem.

What is meditation? If we are able to stay tuned to a single node in a graph for more than a particular time our mind starts to act differently. As meditators have mentioned, this is a splendid experience that cannot be expressed through words.

Footer Notes - The mind graph theory is not based on scientific study. This is a segment of my imagination. And the famous quote - imagination leads to actions.

There are lot of questions to be answered through this mind-graph theory.

This gives me a good reason to learn more about graphs - Traversal in graphs, comparison between graphs, shortest path in a graph etc...

Friday, January 16, 2009

A Glimpse of a Miracle

This time, I thought I will share one of my old project experience with you [the anonymous readers of my blog]. This is a mail which I dusted out from my outlook inbox's sent items. 

For a developer, the moment of happiness is when the developed product matures to its completeness. This is a special kind of experience you will understand if you have a high passion and enthusiasm of developing virtual applications using your virtual tool kit. 

This is classified information. Hence I have censored a few parts of the mail. This mail was written to my close friends last year to share my experience after our final product release. 

A Glimpse of a Miracle
 
"Two weeks scratching the head, not because of dandruff.
 
It all started on xx-xx-2008 when the customer reported a bug. Our tool is not installing on Windows XP Service Pack 3. Today, xx-xx-2008 its our product release which is a milestone release which happens every 6 months. This tool goes to the external customers. And this bug was reported by one of our major customers.
 
What happens when all the work for last 6 months is wasted just because the tool is not getting installed in a specific OS. Windows XP SP3 is recently released by Microsoft. And our initial impression was that Windows XP SP3 had some issues.
 
Ok, now back to business. We need to fix the bug. We opened the installer tool which is supposed to install our tool. The only person who has worked on the installer tool is unavailable. This tool was an unknown territory for us.
 
First one week was spend with the routine checks - trials to reproduce the defect, mail chains with customers to get screen shots of the issue and more details. The defect occurred for the customer in Windwos XP SP3 which was installed in a virtualization software called vmware which helps us to install multiple OS in the same machine.
 
All the tools, Wise Installer - the installer tool, VMWare - the virtualization tool - all were new to us. Last Friday, ie five days after the defect was reported, we were able to reproduce the defect. We thought we could fix it in a day. Friday we could not fix it. Saturday to office, could not fix, then Monday, Tuesday. Agony started. Whether the product release will get postponed because of this defect at the last moment.
 
We tried different solutions. Took almost 50 to 60 builds (internal releases) in last 2 weeks. Yesterday night. 10 PM. Next day is the release. :(.
 
We created the last build with the last solution in our hands. Our hopes were dried out. I started yesterday with drained out energy. Days and days without any sight of a result.
 
And ….
 
Wow! That worked! We were all shocked with happiness for a moment. The hands of God for a believer. The fruit of hardwork for an athiest. A glimpse of a miracle for us.
 
The last minute tension, deadlines, issues …. Everything leads to this final moment. The taste of success. And we live for this."

Wednesday, December 31, 2008

Perspectives of Simplicity!

2008 fades away .... A new year is waiting for us! With surprises, twists and turns!

A beautiful prose to think about by Grady Booch,

"Simplicity is an elusive thing. Consider the design of just about any relevant Web-centric system: it probably consists of tens of thousands of lines of custom code on top of hundreds of thousand of lines of middleware code on top of several million lines of operating system code. From the perspective of its end users, simplicity manifests itself in terms of a user experience made up of a small set of concepts that can be manipulated predictably. From the perspective of those who deploy that system, simplicity manifests itself in terms of an installation process that directly addresses the most common path while at the same time makes alternative installations accessible and intuitive. From the perspective of the developers who build that system, simplicity manifests itself in terms of an architecture that is shaped by a manageable set of patterns that act upon a self-consistent, regular, and logical model of the domain. From the perspective of the developers who maintain that system, simplicity manifests itself in the principle of least astonishment, namely, the ability to touch one part of the system without causing other distant parts to fall off."

Wish you all a wonderful year ahead!