05 April 2011

Multiple Dimensions

What is 9460528400000000?

It is the distance traveled  by light in one year in meters. If the theory of big bang is true and if this universe started off from a tiny dot and still expanding till the moment we read this, what will be the size of universe. In which direction does it expand, may be in all possible direction. If you say the size of universe is infinite, how infinite is it? We tried to find the size of universe and we failed. And then we started to say "the size of observable universe"

Assume that we haven't invented numbers yet. How will you describe the size of universe? Having no number system is a dimension and having a number system is a dimension. You need both to depict or guess the size of universe. You need "no number system" dimension to say that the universe is massive and you need "number system" dimension to say or to give a feel of how massive is this universe. Each dimension has its own job of conveying something unique of the subject. And we can travel only certain level in each dimension. Assume that instead of sending light to measure distance, you decide to walk and count the number of kilometers. Beyond a point, even sending light and measuring the distance doesn't do well (as waiting time is more. If you send light, only your grandson can receive the light reflected from the subject) and you have to measure the light that is originated from the distant galaxy. There is clearly inherent limitation in each dimension and we have switch over to another dimension to visualize things (and to overcome the limitations of a dimension)

Unless the subject is caught in few dimensions, our understanding of the subject will be vague and limited. Multiple dimensions really help not only in finding the size of universe  (science) but also in solving general problems in life. :-)

04 April 2011

Design Patterns - How to Learn

Most often we encounter people whom they call themselves as expert in design patterns. They start off with the discussion saying that they know Singleton pattern - knowing little bit of what is singleton and completely ignorant of why Singleton is needed. While design pattern helped experts to improve their productivity and the quality of software they write, it hasn't done anything to novice designers like us. Right away, let me say that it is not the problem with the design patterns. It shows that the way we learn design patterns isn't right.

Learning design patterns starts with getting hands dirt with abstraction, hierarchy, encapsulation and loose coupling. All these attributes do not come easy and they evolve over a period of time with imagination. We have to visualize how a solution is better than the other and if we can solve by writing code, it really helps us to understand deeper.

Keeping that mind, i started to put together series of puzzles on software design to improve my design knowledge - particularly on object oriented software design for quite sometime. I would say that this method is changing the way i think. If you also want to get your hands dirt, you can find puzzles tagged as "Design for Fun".

Let me tell you, more puzzles are on the way.