Thursday, July 22, 2010

Book Review: Coders at Work - Reflections on the Craft of Programming by Peter Seibel

Book Review: Coders at Work - Reflections on the Craft of Programming by Peter Seibel: Publisher- Apress: ISBN- 13: 978-1-4302-1949-1

I was trying to grab Coders at Work since last quarter or so because it was recommended by one of my friend. And certainly after reading the book I delighted. I must say, excellent book. Every programmer experienced or green horn must read to get insight into thoughts of today’s software founding fathers.

Instead of giving traditional review of the book, I will list few of the insight points mentioned by Zawinski, Fitzpatrick, Crockford, Eich, Bloch, Armstrong, Peyton Jones, Norvig, Steele, Ingalls, Peter Deutsch, Ken Thompson, Fran Allen, Cosell, and Donald Knuth.

1. Think Before Code
2. Quality vs. Shipment date. Shipment date wins.
3. Code is like prose. Must be readable.
4. The more things you learn and younger you learn, the better off you are.
5. It is easier to optimize correct code then to correct optimize code.
6. Variable names must be very clear and dissimilar. Choose listOfPersons over personNames if personName already exist.
7. For complex problems, document first and then code.
8. Code shows what it does not that what is supposed to do.
9. In pair programming, both programmers must be of same skill level.
10. Joe’s Law of Debugging: All errors will be plus/minus three statements of the place you last changed the program.
11. Test is a way of correcting errors rather than as a way of design.
12. Launch early and often (if application/system/service is free).

Disclaimer: I did not get paid to review this book, and I do not stand to gain anything if you buy the book. I have no relationship with the publisher or the author.

Further reading: A competing book is Masterminds of Programming edited by Biancuzzi and Shane Warden

One can get more information about book and related topics from:

1. Book’s web presence
2. Amazon:
3. Publisher -- Apress
4. Flipkart
5. Book Review at Slashdot
6. Book Review at Lambda the Ultimate
7. Another Review
8. Review by Simon Peyton Jones
9. Review at

Sunday, July 18, 2010

Consideration while choosing a Cloud Service Provider (Infrastructure as a Service – Cloud based Virtual Data Centre)

Any organization while purchasing Cloud services especially, Infrastructure as a Service which is essentially Cloud based Virtual Data Centre should give due consideration to following points:
1. Ability to port and run existing Enterprise Applications ( possibly unchanged) in the cloud
2. Self service portal for functional users (not of applications but of cloud).
3. Configurability, visibility and control over virtual data centre
4. Import and Export of virtual images
5. Support for existing software licenses
6. Accommodation of appliances
7. Role based user access control
8. Policy Management, Cost control and charge back
9. Team collaboration and Workflow
10. SLAs
11. Compliance
12. Access to log and audit data
13. Physical security of data centre
14. Disaster recovery plan
15. Security of data and Intellectual Property (IP)
16. Support and Training
17. Documentation
18. References

Sunday, July 11, 2010

What must be in Application or Service to Facilitate Testing

1. Time acceleration and deceleration to test time based calculations
2. Assert like feature
3. Appropriate logging and able to switch logging levels at run or deployment time
4. Facility to run application in Test Mode similar to Training mode
5. Facility to create and manage test scenarios in production environment similar to test users
6. Facility to measure time of execution for various tasks
7. Separation of messages (error, warning or info) and configuration parameters.

Friday, July 2, 2010

Capacity Planning

Pattern Template

I am proposing a pattern template. Please provide your reviews.

Pattern Template for book v 1.0 dated Oct 14 2009