Sunday, July 13, 2008
Recently I’ve looked through new book “Data structures and Algorithms using C#” by Michael McMillan (Cambridge University Press, NY, 2007). The title was sound promising for me as well as abstract. But then… Hmm... The idea is really good, but realization is really raw, I’ve spent about 4 hours reading this book and noted inadmissible amount of mistakes and inaccuracies.
Sometimes round brackets () are used instead of square  in arrays. Sometimes author completely forgets that his book is declared as C# book, and he starts talk about VB.NET (chapter 6), it seems that this chapter was taken from other book, and here is the proof: Page 99 tells us about method ConvertBits() that was developed earlier, but there is no such method back to start of the book :). The same for the Chapter 16. :)
Fig 3.1. Lies. This is not a Bubble sort algorithm :). There are a lot of copy-pastes in text. Some methods completely don’t agree with their descriptions. For example so-called “Self-organization according Pareto rule” SeqSearch subroutine from chapter 4 is actually “Bubble-pop self-organization” SeqSearch, that described at the end of the section.
Author wrote a lot of unnecessary code, for example he wrote a Timing class that behaves similarly to the StopWatch class already defined in FCL … (chapter 1), or he could use Char.IsDigit() method instead of writing regular expressions in implementation of own method named IsNumeric() (chapter 5).
Sometimes code is just wrong. For instance on pages 60-61 a loop starts from 0 instead of 1, that leads to IndexOutOfRangeException on a first step. Find primes method (chapter 6) is completely wrong and even will not compile. Wrong variable name in Node class (p.221). Code on page 230 (chapter 12) contains important misprint; printed: parent.Left = parent.Right; but should be parent.Left = current.Right;. Wrong method call (p. 256) in Insert() method; printed: ShiftUp[currIndex]; but should be ShiftUp(currIndex). AVL Trees Insert() method (p. 267) contains mistakes: height is variable but is used like a method. I can continue this list… but it should be already clear that this book is really very raw.
I’m not sure why it was published, but I will not recommend reading it. The main idea about data structures and searching algorithms with C++ (and sometimes with C#) examples can be taken from Wikipedia. It is much better and more efficient than resolve author’s mistakes.
Tuesday, July 08, 2008
Sunday, July 06, 2008
Позавчера (4 июля), были скручены (النكاح) узами брака два любящих сердца, два раба Божьих – Альфия и Степан. Дай Аллах благословение этому союзу, укрепи их иман и дай им побольше детей иншаАллах. Амин. Я был свидетелем на никахе и в ЗАГСе (хотя свидетели там уже давно не нужны). МашаАллах все прошло очень хорошо. Молодые очень гармонично смотрелись один на фоне другого. Дай Аллах им счастья. На свадьбе познакомился с замечательными сестрами - серьезными, целеустремленными девушками. Побольше бы таких мусульманок. Айнара подарила мне свою книгу (сборник стихов), некоторые вещи очень берут за душу.