Showing posts from January, 2012

Knowledge Maturity Model

As you deal with knowledge you go through several stages of maturity.
Knowledge Acquisition Knowledge Assimilation Knowledge Application

Knowledge Acquistion This is usually the first level where you capture knowledge from the environment and store it in your brain's KnowledgeStore.This is the level where you get aware of and become acquainted with the concept.
Knowledge Assimilation When knowledge you acquired gets organized into the format suitable to your brain, it become usable in many different ways.When you experience the "understanding" of the concept,you have assimilated Knowledge. You can use several techniques to progress from Knowledge Acquisition to Knowledge Assimilation. Your acquaintance becomes friendship. Your knowledge is accessible and effortlessly usable in any decision making effort.
Knowledge Application This level is achieved when you start using your assimilated knowledge to solve real world problems. You now re-purpose the given knowledge in new dimen…

Essence Of Patterns

Patterns and their Life Cycle

Pattern is a solution to a problem in context. It is a unit of expression that captures experience and enables reuse. It is relevant to all modern crafts including Software Development

Action packed Software Industry has its own set of problems. Technology is getting sophisticated, problems are growing complex, and software professionals are struggling with deadlines. The rate of change of contextual environment underlying the developmental activities is alarmingly high.Patterns offer a shimmer of hope.
Abstraction has always been an effective tool against complexity. Every engineering discipline offers a set of fundamental building blocks. Engineers use this off-the-self fundamental building blocks to create their products.This set of fundamental building blocks and the principles governing their use, form the context within which the product formation in envisioned. The pace of evolution of Software Engineering is unsettling from the building block's…

5.times("hello") in C#

(This post is an old article I wrote on Google Knol. I have shifted it here... Witness the power of Extension Methods)
My meeting with Dalpat ...
I happened to meet a Ruby Language enthusiast (Mr. Dalpat) recently. He was showing me some cool programming tricks in Ruby Language. He was bullish about power of Ruby and lamented over limitations of C# and Java. "C#(especially after version 3.0) has a bigger toolbox of idioms than Java , but Ruby is far better" he said.
Ruby being dynamic and capable of supporting internal DSL's( Domain Specific Language) has always had my due respect. However, I wanted to know what made this Ruby evangelist so strongly opinionated. One of the things that came up in his praise for Ruby was that even literals in Ruby were objects. So one could very naturally write something like 
5.times{puts "Hello"}
and print Hello five times.  This he said was possible because the times method had already be defined in Ruby's Integer class. &q…