Archive

Archive for July, 2007

Build Your Own CAB TOC

July 28, 2007 Leave a comment
Categories: Great Links

.NET 3.5 Language Enhancements Article

July 28, 2007 Leave a comment
Categories: Great Links

.NET 3.0 Woes

July 26, 2007 Leave a comment

We started using WCF in our project recently.
The vision (read architecture) was good when people (the likes of Don Box) were speaking about WCF.
However after using it and getting my hands dirty, I really doubt if the implementation really lives up the expectation set by the vision.
There has been a quite a few issues with WCF, but the one I ran into yesterday was proof that Microsoft has compromised on people aspects (atleast at the developer level). The vision still seems to be good. People like myself are getting into Microsoft development teams (Core teams, I believe WCF is one of the core elements of the Framework). This is what I saw yesterday.
I wanted to write my own ServiceHost so as to apply the WCF configuration myself. I was rather wild when I learned that configSource attribute is not supported on any of the WCF configuration sections. And if I really had to load the configuration from an external source I had to reinvent the whole WCF configuration approach myself. Source: http://blogs.msdn.com/drnick/archive/2006/12/04/overriding-the-default-configuration-file.aspx. Well that’s not what I wanted to blog about.
The ServiceHost class contructor (or one of it’s base class’s) call ApplyConfiguration which happens to be a virtual method. Oops, constructors calling virtual methods, I thought that was not encouraged. I decided to google on this and found that I was right. The good folks from Microsoft have written about this here and here. In fact they found it reasonable to include it as a FxCop rule as said here. But only for folks outside of Microsoft may be. They went ahead and violated their own rule. The irony is that it slipped out of the design, design reviews, development, development reviews and testing. ServiceHost happens to be one of the core classes of WCF.
The bottomline is that Microsoft is compromising on the process (the fact that this one slipped thru all the reviews and testing) for getting stuff out early, as well as people. Not so good news.

Categories: Entertainment

Org-wide Process groups, What value do they add to the Organization

July 23, 2007 Leave a comment

Recently, Prakash went in for the ISO 9001:2000 periodic surveillance audit.
The audit (as I understood from Prakash) has been just the opposite of the wisdom laid out here.
"Somehow the customer has been neglected in our eagerness to predict and control software development." Metrics have taken precedence over the customer. 

You know The bottomline has been compromised when the auditor wants a metric in place and answers "So What!" to the point that "Customer is happy! (Even without the metric and you not heading anywhere towards The Goal with the metric)". Any metric which doesn’t give a measure of The Goal is just a waste of your precious time. Any process which doesn’t enable development and becomes a hindrance (You know this, when you have to do somethings for the heck of It – Mainly to shut the process folks) should be seriously thought about.

I feel that Organization wide process groups (call them SEPG, OPG or whatever and whichever organization you worked with must have had one) are beginning to miss a point, they must enable the teams to achieve ‘The Goal’ and not come in as a hindrance. The moment this happens they are more of a pain point than anything else.

I was reading a blog entry from Amit Rathore’s blog, which prompted me post this entry.

Categories: Uncategorized

Jing Screen Capture / Screen Recorder App

July 18, 2007 Leave a comment

My colleague Sanket shared this killer app.
Jing can record your screen activity & sound to create swf movies.
Really cool!

Categories: Great Links

The Habits and Attitudes of Successful Business Owners

July 16, 2007 Leave a comment

Focus – "If you chase two rabbits, both will escape." – Anonymous
Think! – "The happiest people are not the people without problems, but the people who know how to solve their problems." – Robert Seashore
See the opportunities – "Opportunity’s favorite disguise is trouble." – Frank Tyger
Develop good work habits and attitudes – "Motivation is what gets you started. Habit is what keeps you going." – Jim Ryun
Don’t let criticism crush you – "Critics are like eunuchs in a harem: they know how it’s done, they’ve seen it done every day, but they’re unable to do it themselves." – Brendan Behan
Don’t make the mistake of figuring out how to do something after you get a customer who wants the service – "Don’t learn the tricks of the trade… learn the trade." – Anonymous
Never forget why you’re doing this – "He who has a why to live can bear almost any how." – Friedrich Nietzsche
Be willing to take calculated risks – "Don’t be afraid to take a big step if one is indicated. You can’t cross a chasm in two small jumps." – David Lloyd George
Start even when you don’t have complete information – "If all difficulties were known at the outset of a long journey, most of us would never start out at all." – Dan Rather with Peter Wyden
Focus on your strengths, not your weaknesses – "Do not let what you cannot do interfere with what you can do." – John Wooden
Ask for business – "Ask and it shall be given you; seek and ye shall find; knock and it shall be opened unto you." – Bible, Matthew 7:7
Don’t be afraid to make mistakes – "Good judgment comes from experience and…experience comes from bad judgment." – Anonymous
If you discover you’ve been wrong, stop the damage immediately – "No matter how far you have gone on a wrong road, turn back." – Turkish Proverb
Persist – "A chicken doesn’t stop scratching just because worms are scarce." – Anonymous
Be open to changing the way you work – "If you do the things you’ve always done, you’ll get the results you’ve always gotten." – Anonymous
Keep pushing, even in good items – "Even if you’re on the right track, you’ll get run over if you just sit there." – Will Rogers

Compiled from http://www.dietsoftware.org/habits.shtml. Go ahead read the full article. 

Excellent read.

Categories: Uncategorized

Talking about Empty your Cup

July 13, 2007 Leave a comment

 

Quote

Empty your Cup

We (I and Sendhil) conducted a 5 day Agile Software Development Session in our Organization last week. As part of the Agile design session, Sendhil had a slide "Empty your cup". Unless someone agrees to iterative design and development, Agile design is a very controversial topic and to make sure people are ready to listen, Sendhil talked about the Zen story.

Story:  "You cannot learn anything if you already feel that you know."

There was an American professor who had made a lifetime’s study of the Japanese tea ceremony. He was the western expert. He heard there was an old man living in Japan who was a master of the tea ceremony. So he made a special trip to Japan to see him. He found the master living in a small house on the outskirts of Tokyo and they sat down to have tea together. The professor immediately started talking about the tea ceremony, his study, all he knew about it and how he was looking forward to sharing his learning with the old man. The old man said nothing, but started to pour tea into the professor’s cup.

While the professor talked, the old man continued to pour the tea, the cup filled and the old man kept pouring. The tea split down the sides of the cup in a stream onto the floor, yet the old man did not stop. “Stop!” said the professor. “You are crazy. You can’t fit any more tea in that cup. It’s full.”

“I was just practicing,” replied the old man, “for the task of attempting to pass learning to a mind that is already full.”

Original URL:

http://www.lifepositive.com/Mind/Transformation/c_120_Stories_to_transform_your_life42004.asp

http://www.rider.edu/~suler/zenstory/emptycup.html

Categories: Uncategorized

On IITians

July 9, 2007 1 comment

I may be completely wrong about this, but this is based on my interactions with the IIT folks so far.
They still carry the IIT brand name and live in a different world. It’s hard to get thru’ the shell of IIT and put a point across to them. They may be bright individuals but when I have to take them into my team I would think twice.

Categories: Uncategorized

YAGNI and Flexibility

July 6, 2007 Leave a comment

Building for requirement which does not exist means, always using this (whenever there is a dependency)

 

YAGNI Means using

When there is only one client and one service flavor. Service is not even a separate class yet.

 

And using,

When there are multiple clients and one service flavor. One might argue that getInstance is not Yagni because you don’t have another Service flavor yet?? But since there are multiple clients I think its better we move that(construction) into a single location. Service isn’t abstract yet.

 

And using,

When there are couple of clients and couple of service flavors.

And using,
 
When there are couple of clients and a services side is really complex.
Idea borrowed form Encapsulating Construction Streamzine from netobjectives.
Gaurav raised the question of more examples like this.
I’ll try to post more examples like this in the future.

Categories: Uncategorized

Split Loop – Refactoring

July 6, 2007 1 comment

We had a discussion a couple of days back in the Agile Software Development Training.
We were talking about the Split Loop refactoring.

void printValues() {
	double averageAge = 0;
	double totalSalary = 0;
	for (int i = 0; i < people.length; i++) {
			averageAge += people[i].age;
			totalSalary += people[i].salary;
	}
	averageAge = averageAge / people.length;
	System.out.println(averageAge);
	System.out.println(totalSalary);
}

Not everyone was in agreement. One of my colleague raised the question, what if the number of records are more? If the number of records are more, then move the processing to data could be a better solution?? Does that mean putting business logic in stored procedures / sql?? May be not. Build a query in the business logic using something like NHibernate Query Generator so that the you don’t have to build you business logic in stored procedures. That said I still favor the Split Loop.

The criteria to use
1) Number of records
2) Is it a realtime application (more performance requirements) / embedded system
3) Is this the real performance bottleneck (address Macro optimizations, before running into Nano Optimizations like this)

Categories: Uncategorized