Working in the web marketing statistics business, I know how difficult it is to produce reliable statistics about visitors and their actions. A good web stat application, whether it is behavioral or marketing related, has to make good decisions all the time to produce correct, uniform, and reliable statistics. It takes constant monitoring and adjustments and also has to be build with intelligence for self maintenance. It also has to make decisions about fraud and various browsers and platforms. To summarize; it’s a very, very difficult discipline.

Despite all these efforts to produce uniform and reliable statistics I just found that some of the biggest free statistic engines do not agree by far. Here on this website, I use StatCounter and Google Analytics to give me a simple visitor behavior statistic. The reason why I use both of them is because I am curious to how each of them performs and their ability to give me the correct statistic.

Because they produce the same kind of web statistics in a very similar manor, I expected them to produce the same reports more or less. However, this is not the case – not by a long shot.

Google Analytics counts 28% lesser unique visitors than StatCounter. 28%!! This is not a minor fluke in The Matrix, but a massive inconsistency. The problem is that neither of them tells me why. Whether it’s because Google Analytics has an elaborate fraud filter or because the StatCounter script is below Google’s in the HTML, I don’t know. But I do know that it leaves me rather confused and makes me question who of them is right, if any of them are. I don’t want to analyze my log files, that’s too much of a trouble and I don’t like trouble. Besides, who says my log files are correct. They also have to be cleansed for fraud, spiders and other clients and request that are irrelevant.

So, where does this leave me hanging? As I see it, I need a third web stat on my page and compare them all. If this doesn’t do the trick, a fourth and a fifth will be put to action. If you know any correct, uniform and reliable web stat, please let me know. Remember, it has to be free for this experiment.

During the last couple of years, I’ve been reading quite a few books about various programming topics and related technologies. Some of them take a very practical approach with a lot of examples and some take a more philosophical approach and some books are somewhere in between.

Examples of the practical books are Microsoft ADO.NET Core Reference by David Sceppa and Visual Basic .NET Unleashed by Paul Kimmel. They are filled with code samples and how-to guides and are good books for reference.

The Pragmatic Programmer by Andrew Hunt and David Thomas take a philosophical approach with few code samples. A book like this is easier to read and makes you think.

The books in between could be C# 2005 Business Objects by Rockford Lhotka. It’s not exactly philosophical but it touches some of the same topics. It is also filled with code samples that are understandable through discussions in the book, thus making it a little philosophical.

The problem with the practical books is that they are too broad in their covering of the subject. When they state that the book is for intermediate users, you can rest assure that most of the content is not. The same goes for the advanced books. This is regardless if the book is highly focused on a niche in programming or takes a more broad perspective. They are good for reference but so is the Internet.

The philosophical books tend to be more challenging and that’s usually a good thing. However, the lack of practical use makes them vulnerable to personal interpretation and thereby looses some of their usefulness. This could also be a benefit of course, depending on the nature of the book.

Both the practical and the philosophical books always make me skip pages, because there are a lot of wasted ink and paper in them. This could come in form of over-explaining things or just stating the obvious again and again.

I find that almost every programming book falls into one of these three categories. My personal favourite category is the one that mixes code samples with a philosophical approach, because it forces you to participate in the discussions and make your own judgments on specific coding and architectural problems while you read it. It can also be used as a reference and thereby combining the best of the two worlds.

So, what does make a good programming book? To be honest, I don’t have a clue. Maybe it depends on what your expectations for a certain book are before you read it. I have been disappointed many times because of high expectation.