Wednesday, December 14, 2005

Religious Question of Performance

I hate to argue with people about performance. It's a waste of time. For me it's a solved problem:

First, I will implement the system with a good design so I can change it. Then, I will profile it to see if the performance is good. If not I can easily change it.

There's also some other argument about managed code (Java/.NET) performance vs. Native code performance. There is an ACM article that concludes the performance of the program is more dependent on programmer's ability than programming platform.

And as a software engineer you should know there are always other factors than performance: time, money …. If tuning performance prevents you from reaching other goals it’s not a wise plan to do it early (when you can do it late in the project when you know you need it).

Of course you should consider performance in architecture (like caching or other known patterns), but that’s another story.

I highly recommend chapter 25 of Code Complete 2nd edition (Code-Tuning Strategies) for a through discussion about performance tuning.


Jackson
’s Rules of Optimization: Rule 1. Don’t do it. Rule 2 (for experts only). Don’t do it yet—that is, not until you have a perfectly clear and unoptimized solution.

—M. A. Jackson

Tuesday, December 06, 2005

Frappr.com

This site is my newest discovery. There, you can create a group that its members are distributed around the world. Every member can designate his/her place on the world map with a balloon that will contain some information about that member.

You can put some text and your picture in there. It's fun to play with, and sure is a good new toy to waste some time.

PS: I believe that the map is provided by GoogleEarth.