<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>http://rmathew.com/</id>
  <title>rmathew.com</title>
  <link rel="self" href="http://rmathew.com/atom.xml"/>
  <link rel="alternate" href="http://rmathew.com/"/>
  <author>
    <name>Ranjit Mathew</name>
    <email>rmathew@gmail.com</email>
    <uri>http://rmathew.com/</uri>
  </author>
  <updated>2010-03-03T23:42:50+05:30</updated>
        <entry>
    <id>http://rmathew.com/2010/pp2e.html</id>
    <title type="html">&amp;quot;Programming Pearls&amp;quot;</title>
    <updated>2010-03-03T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2010/pp2e.html"/>
    <content type="html">
&lt;p&gt;
&lt;a href=&quot;http://www.cs.bell-labs.com/cm/cs/pearls/&quot;&gt;Programming
Pearls&lt;/a&gt; by &lt;a href=&quot;http://en.wikipedia.org/wiki/Jon_Bentley&quot;&gt;Jon
Bentley&lt;/a&gt; is a book based on a collection of articles written by the
author for the eponymous column in &lt;a
href=&quot;http://cacm.acm.org/&quot;&gt;Communications of the ACM&lt;/a&gt;. True to its
name, the book presents several pearls of programming wisdom based on
the hard-won experience of a brilliant computer programmer who was also
lucky enough to be associated with some of the brightest minds in
computer programming (the group at Bell Labs). The icing on the cake is
the clarity and brevity of the book. I have read the book at least
three times over the years and I continue to learn new things from it -
no wonder this book is considered a classic in computer programming.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/pp2e.jpg&quot; alt=&quot;&amp;quot;Programming Pearls&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0201657880?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201657880&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201657880&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The book is divided into three parts with five chapters per part. The
first part presents the fundamentals of programming, from programme
design to algorithms, data structures, programme verification and
testing. The second part focusses on performance and shows how to
perform rough estimations of running costs, improving algorithms, tuning
code and saving space. The third part applies the principles of the
previous two parts to problems in sorting, searching and
string-processing.
&lt;p&gt;
The chapters are short, clear and peppered with interesting anecdotes.
These make them easy to read, though it would be a terrible mistake to
zip through them. The author himself recommends that you take
the time to understand the concepts presented in a chapter and attempt
solving the given problems yourself before taking a look at the
solutions. The chapters only give you a flavour for some of the
concepts - you'll have to supplement it with reading a suitable book if
you are not familiar with these concepts. Here the author has some
recommendations and the usual suspects (&lt;i&gt;The Art of Computer
Programming&lt;/i&gt;, &lt;i&gt;&lt;a href=&quot;cc2e.html&quot;&gt;Code Complete&lt;/a&gt;&lt;/i&gt;, &lt;i&gt;&lt;a
href=&quot;tpop.html&quot;&gt;The Practice of Programming&lt;/a&gt;&lt;/i&gt;, etc.) all figure
prominently.
&lt;p&gt;
The author ends the book with a couple of amusing epilogues presented
as interviews with himself. He takes a dig at himself for the frequent
references in the book to his colleagues from Bell Labs. One of the
appendices contains rules for code tuning adapted from his
now-out-of-print book &amp;quot;Writing Efficient Programs&amp;quot;. I suspect
that an absolute beginner would have some trouble understanding these
recommendations since they are presented here without much elaboration
or examples, though there are references to related material elsewhere
in the book. Another appendix presents a model for estimating the costs
of various data-types and operations. These can be used to make quick
back-of-the-envelope calculations about the time and space that will
likely be taken by a given function during its execution.
&lt;p&gt;
Some of the material, like that on performance improvement or programme
verification, might not be very fashionable today, but no serious
computer programmer can afford to ignore it. Much of the advice in this
book is timeless and will definitely help you become a better
programmer.
&lt;p&gt;
Note that the web-site for the book as given in it,
&amp;quot;&lt;tt&gt;www.programmingpearls.com&lt;/tt&gt;&amp;quot;, is not valid any more as
a domain squatter has snatched control of it - the correct web-site is &lt;a
href=&quot;http://www.cs.bell-labs.com/cm/cs/pearls/&quot;&gt;http://www.cs.bell-labs.com/cm/cs/pearls/&lt;/a&gt;.
&lt;p&gt;
The sequel to this book was published as &amp;quot;&lt;a
href=&quot;http://www.amazon.com/gp/product/0201118890?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201118890&quot;&gt;More
Programming Pearls: Confessions of a Coder&lt;/a&gt;&lt;img
src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201118890&quot;
width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px
!important;&quot;&gt;&amp;quot;. That book is a little hard to find in most
book-shops as it did not become as famous as this one.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2010/cc2e.html</id>
    <title type="html">&amp;quot;Code Complete&amp;quot;</title>
    <updated>2010-02-24T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2010/cc2e.html"/>
    <content type="html">
&lt;p&gt;
Books filled with good practical advice about &lt;em&gt;constructing&lt;/em&gt;
software are rare. &lt;a href=&quot;http://cc2e.com/&quot;&gt;Code Complete&lt;/a&gt; by
Steve McConnell is a well-written rarity in this field and has a
well-deserved reputation as a classic. It is one of those books that
every computer programmer ought to have read. I had read the first
edition, published in 1993, as a budding programmer and the book left
a lasting impression on me. With the benefit of several years of
experience, I find myself agreeing almost entirely with the updated
second edition, published in 2004. When someone asks me &amp;quot;How do
I write good code?&amp;quot;, I point them to this book without hesitation.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/cc2e.jpg&quot; alt=&quot;&amp;quot;Code Complete&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0735619670&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0735619670&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The book is about &amp;quot;software construction&amp;quot; - as the author
notes, this includes coding and debugging, detailed design, construction
planning, unit testing, integration, integration testing, etc. The bulk
of the book focusses on coding since most of the effort in construction
is spent in coding. The emphasis of the book is towards creating a
toolbox of effective software construction techniques and on the
importance of using the right tool for a given job. In particular,
the author repeatedly advises you to programme &lt;em&gt;into&lt;/em&gt; a
language rather than &lt;em&gt;in&lt;/em&gt; it.
&lt;p&gt;
An endearing quality of the book is that instead of pontificating, the
author offers copious references to papers, articles and books to back
up his claims. The tone of the book is entirely non-condescending and
you can see that the advice is coming from a wary professional with
years of experience working on real projects with real people rather
than a wily snake-oil salesman. Rookie programmers will do well to heed
the advice in the book and experienced programmers will find themselves
nodding every now and then as they read the book.
&lt;p&gt;
At around 960 pages the book might seem intimidatingly big, but it is
worth spending the time needed to read it from cover to cover. The book
is divided into several parts, each part comprising several cohesive
chapters. Each chapter begins with an overview of the material covered
in the chapter and ends with pointers to additional resources, a summary
of the key points of the chapter and a check-list to help you verify if
your code adheres to the guidelines prescribed in the chapter. The
side-margins of a page are used to provide cross-references to material
covered elsewhere in the book, insightful or funny quotes, a short URL
on the book's web-site that contains additional material and icons to
bring something to your attention. These icons are &amp;quot;Hard
Data&amp;quot; (typically a reference to a study backing some claim),
&amp;quot;Key Point&amp;quot; and &amp;quot;Coding Horror&amp;quot; (an example of
badly-written code). This structure makes it easy to find the material
you're looking for as you refer to the book from time to time.
&lt;p&gt;
The focus of the book is on imperative programming and it mainly uses
code in Visual Basic, C, C++ and Java as examples. Functional
programming enthusiasts might particularly take offence to the material
on recursion where the author seems quite disinclined to use it and
advises minimising its usage. The author gives an example of a recursive
implementation of a factorial function and says that it is slow and has
an unpredictable impact on memory. In fact, the code uses a &lt;a
href=&quot;http://en.wikipedia.org/wiki/Tail_call&quot;&gt;tail-call&lt;/a&gt; and is
therefore a prime candidate for tail-call optimisation using a decent
compiler. A good programmer can use recursion to create neat functions
without adverse effects in many a case.
&lt;p&gt;
The author rightly points out the perils of &lt;em&gt;premature&lt;/em&gt;
optimisation of programmes, especially that done without proper
measurements to identify the real bottlenecks. The primary emphasis
should be on creating correct and maintainable code with performance
improvements taken up at the end, &lt;em&gt;if&lt;/em&gt; it is needed. I generally
agree with this, but would point out that many a time you would barely
have time to tackle performance in the end if you're working on a tight
schedule (as most of us are forced to do). Many programmes also have a
flat profile in that there are no obvious bottlenecks and yet the
programme is unacceptably slow. If you have automated regression-testing
set up with comprehensive code-coverage (as the author recommends
elsewhere in the book), performance becomes important even if it doesn't
matter during a single run of the programme or during a typical
user-interaction. In such cases, it might be better to keep an eye on
the performance of a programme during most of its construction.
&lt;p&gt;
There are at least three important aspects of software construction
that the author unfortunately leaves out of this otherwise excellent
and comprehensive book: security, supportability and concurrency.
Writing secure code is difficult, but very important and precious few
programmers are aware of the necessary techniques. The supportability of
software determines how effectively you are able to diagnose problems
encountered during its deployment - logging, state-dumps, etc. are
techniques that help here. Concurrency is important but is made
difficult by constructs available in mainstream programming languages.
To be fair to the author, it is only relatively-recently that security
and concurrency have come into increased focus with the Internet and
many-core CPUs being the prime drivers respectively.
&lt;p&gt;
With an additional 10 years of experience gained before the publication
of the second edition of this book, the author has slightly revised some
of his earlier recommendations and freely admits it. For example, the
first edition recommended a pretty-formatting of code where the
&amp;quot;=&amp;quot; operators of consecutive assignment statements line up
like this:
&lt;pre&gt;
int foo       = bar;
boolean snafu = wombat;
&lt;/pre&gt;
&lt;p&gt;
It turns out that while this looks pretty in the beginning, it leads
to additional effort as the code changes (e.g. variables change names)
during subsequent maintenance. It is not much worse to have a simpler
formatting that does not place unnecessary burden on maintenance. The
second edition also covers object-oriented programming and agile
development methods, but presents them in an even-handed pragmatic
manner. Much of the advice from the first edition remains intact in
the second edition.
&lt;p&gt;
The quality of the Indian reprint, published by &lt;a
href=&quot;http://www.wppublishers.com/&quot;&gt;WP Publishers&lt;/a&gt;, is unfortunately
quite disappointing. It has very thin pages because of which some of the
text and graphics on the opposite side of a page show through. The ink
doesn't have a good consistency and fades a bit in some places. These
make it a bit hard to read this reprint. At a price of Rs 600, they
could have done a better job.
&lt;p&gt;
If you are a computer programmer and wish to improve yourself, get this
book and read it.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2010/tpop.html</id>
    <title type="html">&amp;quot;The Practice of Programming&amp;quot;</title>
    <updated>2010-01-23T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2010/tpop.html"/>
    <content type="html">
&lt;p&gt;
In their book &lt;a href=&quot;http://tpop.awl.com/&quot;&gt;The Practice of
Programming&lt;/a&gt;, Brian Kernighan and Rob Pike aim to advise computer
programmers on things like testing, debugging, style, performance,
design, portability, etc. that they are not usually taught in computer
science classes or programming courses. This is what they call the
&amp;quot;practice&amp;quot; of programming. Many pick these up over the
course of their careers with some trial and error; many simply don't.
This is the kind of book that has lessons for both rookie and seasoned
programmers and that deserves multiple readings over the course of
one's career.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/tpop.jpg&quot; alt=&quot;&amp;quot;The Practice of Programming&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/020161586X?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=020161586X&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=020161586X&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
I first read this book about a decade back when I was a relatively-new
professional programmer with a couple of years' worth experience.
Reading this book again after all these years makes me appreciate the
wisdom contained in these pages and agree with almost all that the
authors have to say. In fact, I think this is a great approach to
becoming a good programmer - learn the basics of programming, spend a
couple of years writing lots of programmes for fun or profit, read books
like this to improve yourself and come back to such books after several
years, having applied their principles in the interim. If you read such
a book &lt;i&gt;immediately&lt;/i&gt; after learning the basics, you might not
really understand the reasons behind the advice in the book and will
have to just take the words of the authors at face value.
&lt;p&gt;
This book is a typical &amp;quot;Kernighan book&amp;quot; - it is short and
to the point, the language is clear and simple, the material is
logically ordered with a natural progression and some of the examples
show that it is simple to implement things (e.g. a regular
expression parser) that might appear hard otherwise. It is also
an old-school Unix book in that it uses the command pipe-line:
&lt;blockquote&gt;
&lt;pre&gt;grap | pic | tbl | eqn | troff -mpm&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;
for type-setting instead of using something like a system based on &lt;a
href=&quot;http://en.wikipedia.org/wiki/TeX&quot;&gt;TeX&lt;/a&gt;.
&lt;p&gt;
The programming languages used in this book are C, C++ and Java with
an occasional sprinkling of AWK, Perl and Tcl. Most of the examples
use C however and some of the advice can be considered specific to this
language rather than being agnostic. That is not as bad as it seems
since every serious programmer must have C in their arsenal and not be
wedded to a single language or a narrow set of languages.
&lt;p&gt;
The book is full of pearls of wisdom that you might miss on a quick
skim through it. For example, in a section on debugging a problem, the
authors say:
&lt;blockquote&gt;
&lt;p&gt;Resist the urge to start typing; thinking is a worthwhile alternative.
&lt;/blockquote&gt;
&lt;p&gt;
When faced with a bug, most of us either fire up a debugger or start
modifying our programme in the hope of making the bug go away. With
experience we learn that carefully reading the code in question and
thinking about it lets us resolve the issue faster and some times
exposes other latent bugs. As another example, in a section on
performance, the authors say:
&lt;blockquote&gt;
&lt;p&gt;Thus the first principle of optimization is &lt;i&gt;don't&lt;/i&gt;.
&lt;/blockquote&gt;
&lt;p&gt;
Once again many of us spend a lot of time trying to optimise rarely-used
programmes or portions of a programme that we determine to be
bottlenecks based on reasoning and intuition alone. We have to ask
ourselves if the programme in question is worth speeding up and then
use measurements to determine the real bottlenecks. Even then, using
better algorithms and data structures coupled with clean and simple
code can provide greater benefits than complex code that tries to be
clever.
&lt;p&gt;
The last chapter in the book goes into topics like creating
domain-specific languages or compiling code on the fly with an emphasis
on using the right language for the job. It is better to create little
specialised tools that work with text files on their standard I/O
streams and that can then be combined in various ways (using Unix
pipes for example) to solve different problems. This is, of course,
the &lt;a href=&quot;http://en.wikipedia.org/wiki/Unix_philosophy&quot;&gt;Unix
philosophy&lt;/a&gt;. As an example, the authors create scripts for
getting the document for a given URL, removing HTML tags from a document
and formatting a text document into 60-character lines (written in
Tcl, Perl and AWK respectively). They then combine these scripts
to create a very simple, command-line-based, &amp;quot;web
browser&amp;quot; that shows a web-page as formatted plain-text.
&lt;p&gt;
In short, read this book if you want to be a better programmer. If
you have read it in the distant past, read it once again - you might
have missed some things the first time round.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2010/gwartney.html</id>
    <title type="html">&amp;quot;Economics: Private and Public Choice&amp;quot;</title>
    <updated>2010-01-10T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2010/gwartney.html"/>
    <content type="html">
&lt;p&gt;
If you are looking for a comprehensive and accessible introduction to
economics, &amp;quot;Economics: Private and Public Choice&amp;quot; by James D.
Gwartney, Richard L. Stroup, Russell S. Sobel and David Macpherson is
the book for you. It covers both microeconomics and macroeconomics in
addition to the core principles of economics. Though it is a textbook
meant for an undergraduate course in economics, it is also suitable as a
gentle introduction to the dismal science for the lay person. I read
the tenth edition of this book that was published in 2003.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/gwartney.jpg&quot; alt=&quot;&amp;quot;Economics: Private and Public Choice&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0324580185?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0324580185&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0324580185&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
This is a &amp;quot;modern&amp;quot; textbook in every sense. It is quite
colourful and is richly illustrated with several pictures, graphs and
icons. The chapters are not too big and are written in a simple
language. They begin with an overview of the chapter and end with a
summary of the key points learned in the chapter, a sneak preview of
what is in store in the next chapter and several critical analysis
questions for testing your comprehension (only some of which are
answered in an appendix). Several boxes sprinkled throughout the text
either talk about applications of economics or introduce a noted
economist. Teaching aids for the book like presentation slides,
instructor's manual, etc. can be separately obtained from the publisher.
The book comes with a ridiculous CD-ROM containing &lt;i&gt;a single HTML
file&lt;/i&gt; that in turn redirects you to the &amp;quot;&lt;a
href=&quot;http://gwartneyxtra.swcollege.com/&quot;&gt;Gwartney Xtra!&lt;/a&gt;&amp;quot;
web-site containing supplementary material for the book. I cannot help
but wonder why the publishers could not just provide the URL for the
web-site in the book.
&lt;p&gt;
The book is divided into six parts, each containing closely-related
chapters that progressively expand upon the respective subject of the
part. These parts are:
&lt;ol&gt;
&lt;li&gt;The Economic Way of Thinking&lt;/li&gt;
&lt;li&gt;Markets and Governments&lt;/li&gt;
&lt;li&gt;Core Macroeconomics&lt;/li&gt;
&lt;li&gt;International Economics&lt;/li&gt;
&lt;li&gt;Core Microeconomics&lt;/li&gt;
&lt;li&gt;Beyond Basics&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I was surprised to see macroeconomics presented before microeconomics -
I would have expected it to be the other way round. The last part is
a collection of 14 special topics on subjects like the burden of
social-security, rising healthcare costs, increasing national debt,
etc. that still seem quite relevant. The focus of the book is on the
United States, but international readers will not feel lost while
reading the book as the core issues that are discussed remain
universally relevant. The thrust of the book might be termed right-wing
or republican as it argues for a reduction in taxes, smaller role of
the government, etc.
&lt;p&gt;
Unlike some other textbooks on economics, this book is not math-heavy.
Like some other textbooks however, there is a lot of hand-waving and the
reader is expected to just believe the authors. For example, at least
in the beginning the authors could have shown how supply curves are
derived from empirical data and how they shift under changed conditions.
This book also seems to be revised every couple of years like other
college-level textbooks - this is a very expensive textbook and these
superfluous revisions can be seen as an underhanded attempt by the
publisher to kill the used-books market.
&lt;p&gt;
The book presents a strong case for capitalism, but does not explore
why communism or socialism became more popular in other countries. It
does provide excellent insights into why the democratic process does
not quite work the way people expect it to work. It shows how people
are forced to choose among candidates who might not represent their
stand on &lt;i&gt;all&lt;/i&gt; the relevant issues, only some. It explores the
rent-seeking behaviour of special-interest groups who use campaign
financing and intensive lobbying to get politicians to pass laws that
strongly benefit them but weakly harm the general public, sometimes in
not-so-obvious ways. It explains how politicians have a strong incentive
to take decisions that have short-term benefits but long-term hazards.
&lt;p&gt;
I felt that the book did not cover the very basics of economics and
finance in much detail. For example, the origin of money or the
evolution of the banking system could have been expanded upon. While
the book presents almost all the fundamental concepts, it does not
put it all together to illustrate how the student can perform economic
analysis on their own in a given situation. For example, how can you
arrive at the value of a house or a stock and decide whether an offered
price is cheap or dear? Concepts like opportunity cost, interest rate,
present value of money, inflation, etc. could have been used in the
analysis for such a case.
&lt;p&gt;
It is my firm belief that everyone should be familiar with the basics
of economics since it is so important in our times. If you have never
been introduced to the subject before, this is a good textbook to
get started provided you can afford the price.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/soart.html</id>
    <title type="html">&amp;quot;The Story of Art&amp;quot;</title>
    <updated>2009-11-08T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/soart.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;The Story of Art&amp;quot; by E. H. Gombrich is a classic and popular
book that charts the evolution of art through the ages. Using a plain
language and written in a non-condescending style (sadly quite rare for
the art books that I have seen in my life), it is a book that I wish I
had read much earlier in my life. It would make a great gift for a
teenager to gently initiate them into the wonderful world of art.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/soart.jpg&quot; alt=&quot;&amp;quot;The Story of Art&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0714832472?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0714832472&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0714832472&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The book mostly covers paintings, sculptures and architecture in its
coverage of art. The period covered begins from pre-historic times and
ends in modern times. As the author himself acknowledges, the book
almost exclusively deals with western art in order to keep its size
manageable. Within these limits, it does a splendid job of noting the
contexts in which art developed, which provides valuable insights into
the development of particular styles. You cannot fully appreciate a
work of art without understanding the context in which it was created.
&lt;p&gt;
The book has more than 400 illustrations, works of art reproduced in
full colour, that aid the text. In the main editions, these are put right
next to the relevant text for easy reference; in the pocket edition,
these are collected in a set of plates towards the end of the book in
order to reduce its bulk. The pocket edition has two ribbon bookmarks
so that you can keep track of your place in the text as well as in the
set of plates. Flipping back and forth between the two as you read the
text becomes painful after a while, but that's the price you pay for a
less bulkier (and cheaper) edition of the book. Unless you want to read
this book while travelling, I would suggest that you get one of the main
editions (which are much heavier and, of course, more expensive than the
pocket edition).
&lt;p&gt;
I fully agree with the author that the illustrations, all of them
scaled down reproductions, do not do full justice to the respective
works of art. I have had the privilege of viewing many of these works
in person and no photograph or video properly captures the colours
or scale or texture or the brush-strokes (in case of a painting) of a
work of art. For example, something like a painting on the ceiling of
a chapel is best appreciated &lt;i&gt;in situ&lt;/i&gt; and in the normal lighting
for the place. Of course, this involves a fair bit of travel, which is
not possible for all of us. As the author notes, this is one of the
biggest challenges for a lover of art.
&lt;p&gt;
While the author keeps referring to various elements of the &lt;a
href=&quot;http://en.wikipedia.org/wiki/Composition_%28visual_arts%29&quot;&gt;composition&lt;/a&gt;
of different works of art, he does not fully elucidate either the &lt;a
href=&quot;http://en.wikipedia.org/wiki/Elements_of_art&quot;&gt;elements&lt;/a&gt; or the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Principles_of_art&quot;&gt;principles&lt;/a&gt;
of art. You get a general idea of these things, but you'll have to
look elsewhere for a fuller exposition. This is understandable in a book
on the &lt;i&gt;history&lt;/i&gt; of art. It is also understandable when you consider
that these are not considered sacrosanct in modern art.
&lt;p&gt;
If you read this book looking to &amp;quot;understand&amp;quot; &lt;a
href=&quot;http://en.wikipedia.org/wiki/Abstract_art&quot;&gt;abstract art&lt;/a&gt;, you
will be disappointed; I certainly was. The author uses a somewhat vague
language to describe such art and very carefully tries to not pass a
judgement on such art. His defence is somewhat credible in that enough
time has not passed for us to judge &amp;quot;modern art&amp;quot; and to sort
its place out in the grand history of art.
&lt;p&gt;
There is an essay in the final chapter of the book where the author
ponders over the current state of art. He highlights the shift
away from representationalism possibly as a reaction to the fidelity
with which a camera captures a picture in modern times. He notes the
widespread non-conformist attitudes of modern artists and a
&amp;quot;rebellion against the rebellion&amp;quot; of some of the modern
artists in going back to representationalism.
&lt;p&gt;
This is the sort of book that every person ought to have on their
bookshelves. I would certainly recommend that you read such a book
&lt;i&gt;before&lt;/i&gt; you visit art museums in order to appreciate the context
in which art was created. After you read this book, make it a point
to visit the art museums in a city you travel to. It is quite an
enriching experience.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/paris.html</id>
    <title type="html">&amp;quot;Paris&amp;quot;</title>
    <updated>2009-11-05T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/paris.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;Paris&amp;quot; by Colin Jones is a history of the city of Paris,
covering the period of about 2,000 years from its days as the
Roman camp of Lutetia to the present. The author chronicles its rise
to prominence as one of the greatest cities in the world and a major
centre for art and fashion. He does not shy away from talking about
the horrible attrocities of its past either. This is a book written
by someone who clearly loves the city for what it is and what it has
been.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/paris.jpg&quot; alt=&quot;&amp;quot;Paris&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0143036718?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0143036718&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0143036718&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The coverage of the 2,000-year period is not uniform, with the author
understandably concentrating on some intervals longer than others
depending on their influence on the city. There are numerous
&amp;quot;feature boxes&amp;quot; spread throughout the chapters of the book
that go into more details of a particular topic, ranging from the Louvre
to the public toilet. Unlike such boxes in other books, your flow is
not interrupted if you start reading them after the text immediately
preceding them and the topic in question is usually something alluded
to in the last paragraph you were reading in the main text.
&lt;p&gt;
Though the overall narrative is fairly linear, there are occasional
references to topics that are yet to be covered but that are still
relevant to explaining the context of the current topic. This turned
out to be not as bad as I had initially feared. The book manages to
remain quite entertaining as well as informative throughout the text.
This is a well-researched book written in an easy-to-read style. I am
sure that even die-hard Paris fans will discover something new about
the city if they were to read this book.
&lt;p&gt;
You must have stayed in Paris for at least a little while to make sense
of some of the things (e.g. street names) that the author talks about
in this book. French is thankfully not used extensively in this book -
the meanings of the French phrases that are used can easily be guessed
or looked up in a dictionary. You should also have a fair knowledge of
world history in general and French history in particular to place some
of the events and characters in mentioned this book in their proper
historical context.
&lt;p&gt;
The book has a fair collection of paintings and photographs spread
throughout, though all of them were reproduced in low-quality
black-and-white prints in the &lt;i&gt;hardcover&lt;/i&gt; edition that I read,
which was a big disappointment to say the least.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/buyo.html</id>
    <title type="html">&amp;quot;Buyology&amp;quot;</title>
    <updated>2009-11-02T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/buyo.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;Buyology&amp;quot; by &lt;a href=&quot;http://www.martinlindstrom.com/&quot;&gt;Martin
Lindstrom&lt;/a&gt; is a book that purports to show that our subconscious
drives our buying decisions in ways that we rarely suspect. Marketers
can successfully sell products to their target consumers by
understanding these factors; otherwise their campaigns are a waste of
time, effort and money. The author tries to back these claims by citing
the results of some studies.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/buyo.jpg&quot; alt=&quot;&amp;quot;Buyology&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0385523882?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0385523882&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img
src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0385523882&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The studies in question involved over 2,000 volunteers and used
brain-mapping with &lt;a
href=&quot;http://en.wikipedia.org/wiki/Functional_magnetic_resonance_imaging&quot;&gt;Functional
Magnetic Resonance Imaging&lt;/a&gt; (fMRI) to study their reactions to
products and marketing messages. By noting the parts of a volunteer's
brain that &amp;quot;light up&amp;quot; when presented with a test, the
researchers draw various conclusions about how the product or marketing
message affects their subconscious.
&lt;p&gt;
This is where the studies seem to be flawed, as far as I can tell. It
seems to be a case of the classic logical fallacy usually known as
&lt;a href=&quot;http://en.wikipedia.org/wiki/Affirming_the_consequent&quot;&gt;affirming
the consequent&lt;/a&gt; - &amp;quot;A implies B&amp;quot; does not necessarily mean
that &amp;quot;B implies A&amp;quot;. In other words, suppose a part of my brain
lights up under fMRI when, say, I'm hungry. If you now observe that the
same part of my brain lights up when I see a product, it does not
necessarily follow that the product makes me feel hungry. Maybe it does;
maybe it doesn't.
&lt;p&gt;
I feel that there is not enough material in this book that justifies
its existence. It should perhaps have been published as an article in
a magazine instead. There is a fair amount of fluff in this book
seemingly to fill out the pages. In addition the author comes across
as quite egotistical dedicating several passages to tell you
(again and again) that he surely has influenced your life in one way
or the other and that he is constantly travelling all over the world
meeting his big and important clients. It seems as if this book did
not have an editor.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/wine.html</id>
    <title type="html">&amp;quot;101 Essential Tips: Wine&amp;quot;</title>
    <updated>2009-09-12T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/wine.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;101 Essential Tips: Wine&amp;quot; by Tom Stevenson is an
introductory little book for those interested in wine. It is a
copiously-illustrated book with easy-to-read text and is so small that
it can be finished in just a single sitting. It serves its purpose
fairly well, though the title is a little misleading.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/wine.jpg&quot; alt=&quot;&amp;quot;101 Essential Tips: Wine&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0789496852?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0789496852&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0789496852&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
This book is supposed to be a collection of 101 tips, though most of
the text can hardly be described as &amp;quot;tips&amp;quot; - only part of
the text, for example the bits dealing with storing wine or what to
look for while purchasing wine, can really be thought of as containing
tips. The division into 101 tips looks entirely arbitrary and
shoe-horned to fit the title of this series of books from the publisher.
&lt;p&gt;
The book is not entirely suitable for absolute beginners to wine in
that it does not tell you just what is meant by terms like
&amp;quot;body&amp;quot;, &amp;quot;tannin&amp;quot;, etc. This is important for people
who have grown up in cultures (e.g. India) where wine consumption is
not prevalant. There are also some terms like &amp;quot;terroir&amp;quot; and
&amp;quot;sommelier&amp;quot; that are surprisingly missing from a text of this
nature.
&lt;p&gt;
The book would have benefited from a wine vintage chart (something like
&lt;a href=&quot;http://www.thewinesocietyofindia.com/wine-vintage-guides/vintage-chart/&quot;&gt;this
one&lt;/a&gt; by the Wine Society of India) to help beginners select a good
wine while shopping. It would have also benefited from recommendations
for selecting wine that can pair well with Indian or Chinese food.
Those of us for whom the correct pronunciation of French or Italian
words doesn't come naturally would have appreciated a pronunciation
guide for some of the terms.
&lt;p&gt;
These quibbles aside, I liked the book for its welcoming, unpretentious
and non-condescending text. Numerous colourful photographs and figures
alongside the text ease the reading further (though I felt that the
colour reproduction was not entirely faithful to the respective
subjects) and mostly help in visualisation. Some of the tips are really
useful if you are not a connoisseur of wine.
&lt;p&gt;
A book like this can only help you get started with appreciating wine.
You need to sample a variety of different wines to really appreciate
what such books talk about. This book however is cheap and accessible
enough to merit a dekko.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/db.html</id>
    <title type="html">&amp;quot;An Introduction to Database Systems&amp;quot;</title>
    <updated>2009-06-05T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/db.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;An Introduction to Database Systems&amp;quot; by &lt;a
href=&quot;http://en.wikipedia.org/wiki/Christopher_J._Date&quot;&gt;Christopher J.
Date&lt;/a&gt; is a classic text-book on database concepts by one of the
foremost writers and thinkers in the field. The book has been kept
fairly up-to-date over the years by the author and includes topics
like logic databases, temporal databases, decision support systems,
object databases, object-relational databases, etc. Most of the book
however concentrates on the relational data model and relational
database management systems. This is not surprising since most of the
popular database management systems today are based on this model and
the author too clearly prefers this data model over all the others.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/db.jpg&quot; alt=&quot;&amp;quot;An Introduction to Database Systems&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0321197844?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321197844&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0321197844&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
Almost all of the text in this book is a wistful reflection on the pure
relational data model and its imperfect implementation in real database
management systems. This is actually quite good since it is quite
important for a serious student to know how things &lt;i&gt;ought&lt;/i&gt; to be in
addition to how things actually are. The book teaches you how to design
good databases in general; it does not teach you the specifics of a
particular product like Oracle or DB2. Beyond a preliminary overview
of the general concepts, it will also not teach you writing complicated
SQL queries, query optimisation for a particular product or writing
stored procedures in PL/SQL. This book is what you need to get a solid
understanding of the concepts underlying modern database managements
systems.
&lt;p&gt;
The book is divided into a few logical parts, each part comprising
well-defined chapters. Each chapter has an introductory overview,
detailed exposition, summary of concepts, self-check exercises,
well-anotated bibliography and answers to selected exercises. There
are chapters on all the important concepts like the relational data
model, relational algebra and calculus, database integrity, SQL,
database normalisation, query optimisation, transactions, concurrency,
recovery, security, etc.
&lt;p&gt;
The book provides most of the examples in a weird language called
&amp;quot;Tutorial D&amp;quot; instead of SQL. It does not tell you much about
the data models and database systems prevalent before the relational
data model, depriving the student of a useful perspective on the
historical significance of this model. The book does not provide any
information on how relational databases could be implemented dismissing
it as a detail that varies from product to product. This is quite
unfortunate since it is very instructive to see how an abstract data
model is concretely implemented in an efficient manner.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/cn.html</id>
    <title type="html">&amp;quot;Computer Networks&amp;quot;</title>
    <updated>2009-05-17T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/cn.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;Computer Networks&amp;quot; by &lt;a
href=&quot;http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum&quot;&gt;Andrew S.
Tanenbaum&lt;/a&gt; is a comprehensive text-book on the topic written by an
author with many popular text-books to his credit. There are more than
800 pages in this book, though the prose is fairly accessible and
peppered with the entertaining wit and sarcasm that is the hallmark of
the author's text-books. Even though its 2002 vintage shows through every
now and then, the book on the whole is fairly up-to-date and still quite
relevant. It is therefore a great text-book from which to teach yourself
about computer networks.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/cn.jpg&quot; alt=&quot;&amp;quot;Computer Networks&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0130661023?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0130661023&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0130661023&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
While the book talks about the seven-layered &lt;a
href=&quot;http://en.wikipedia.org/wiki/OSI_model&quot;&gt;OSI model&lt;/a&gt; for computer
networks as well as the much simpler TCP/IP model, it uses a hybrid
model to describe the relevant concepts and protocols. This model
comprises the Physical Layer, the Data-Link Layer, the Network Layer,
the Transport Layer and the Application Layer. I personally feel that
the model used in this book is a more natural fit to computer networks
as they exist today.
&lt;p&gt;
There are enough protocols described here, across all layers, to sate
the appetite of almost every person. At times the author describes the
politics behind the promotion of some of the protocols and the reasons
for some protocols becoming more dominant than others. You also get to
appreciate just how much effort has gone into these protocols to cope
with all sorts of network errors and the evolving needs of users. The
book covers a lot of wireless and mobile networking issues as well in
this edition to reflect their increasing importance in the modern world.
&lt;p&gt;
The sections on multimedia, cryptography and copyright issues,
while no doubt very interesting, seem a little out of place for this
book. Some of the figures do not appear anywhere close to their sites
of reference, which makes it a bit cumbersome to flip back and forth
between the relevant text and the respective figure. The book uses a
proportional font for code listings instead of the usual monospace fonts,
which makes it difficult to read through the code.
&lt;p&gt;
While this book is a great reference for the concepts related to
computer networks, it is not so great as an actual network programming
reference. You would be much better served for that purpose by one of
the books by &lt;a href=&quot;http://en.wikipedia.org/wiki/W._Richard_Stevens&quot;&gt;W.
Richard Stevens&lt;/a&gt;.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/osc.html</id>
    <title type="html">&amp;quot;Operating System Concepts&amp;quot;</title>
    <updated>2009-04-19T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/osc.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;Operating System Concepts&amp;quot; by Abraham Silberschatz, Peter
Galvin and Greg Gagne is a text-book that teaches the basics of
operating systems design. As is implied by the title, the book focuses
more on the concepts than their implementation. Almost all the concepts
that you need to know to appreciate the working of an operating system
are explained here and illustrated with numerous case studies.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/osc.jpg&quot; alt=&quot;&amp;quot;Operating System Concepts&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0470128720?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0470128720&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0470128720&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The book covers all the operating systems concepts that you find in a
standard text-book like process management, memory management,
concurrency control, device management, etc. Unlike some of the other
text-books, it also covers security, networking, distributed systems,
etc. This makes the book slightly bulky, though it also makes it a
comprehensive reference on the topic for beginners. A couple of chapters
towards the end bring it all together by taking a detailed look at Linux
and Windows XP. &lt;a href=&quot;http://www.os-book.com/&quot;&gt;The book's web-site&lt;/a&gt;
provides additional appendices on BSD Unix, Mach and Windows 2000.
&lt;p&gt;
The biggest criticism I have for this book as a computer programmer is
that it only covers the concepts, not their implementation. While it is
true that most of us will never ever implement an operating system, it
is my experience that only by looking at and tinkering with working
code do we programmers gain a solid understanding of a system. When you
look at the code you realise that it does not take black magic to write
an operating system. The tinkering of fearless programmers with such code
creates a breeding ground for fresh breakthroughs in this field - after
all, Linux is the result of such tinkering by a very talented hacker.
This focus on implementation is what makes &amp;quot;&lt;a
href=&quot;http://www.amazon.com/gp/product/0131429388?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0131429388&quot;&gt;Operating
Systems Design and Implementation&lt;/a&gt;&amp;quot;&lt;img
src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0131429388&quot;
width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px
!important;&quot;&gt; by Andrew Tanenbaum such a valuable book when compared
to this book.
&lt;p&gt;
This book has gone through several editions over the years, gaining a
couple of co-authors and losing one. It refrains from passing
judgement over design alternatives. The language is simple and
non-condescending. Some of the topics should perhaps have been dropped
and some moved to an &amp;quot;advanced&amp;quot; text-book. For example, the
chapters on networking, transaction processing and distributed systems
really belong to other text-books devoted to the respective subjects.
&lt;p&gt;
If you are looking for a refresher text-book on operating systems or
if you are just casually interested in operating systems design, this
is a good book to have. If you are more serious, you will need to
supplement this book with reading code from a real operating system like
Linux or FreeBSD.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/ca.html</id>
    <title type="html">&amp;quot;Computer Architecture&amp;quot;</title>
    <updated>2009-03-30T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/ca.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;Computer Architecture&amp;quot; by John Hennessy and David Patterson
is an advanced text on the subject that is a sequel to their other
book &amp;quot;&lt;a href=&quot;../2009/coad.html&quot;&gt;Computer Organization
and Design&lt;/a&gt;&amp;quot;. The authors assume in this book that the reader is
already familiar with the topics introduced in the other book and build
upon these topics. Even then there is a fair amount of overlap among
these books that is a bit irritating if you have only recently read the
other book.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/ca.jpg&quot; alt=&quot;&amp;quot;Computer Architecture&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0123704901?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0123704901&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0123704901&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The book covers the exploitation of instruction-level parallelism and
thread-level parallelism in modern microprocessors in great detail. It
goes on to cover memory cache design and organisation, virtualisation
and secondary storage systems in detail. It shows how instruction set
design can affect the implementation of pipelining and virtualisation.
The authors illustrate the principles introduced in the book very well
by using recent microprocessors as examples. This makes the book quite
current and relevant, though it also makes the book look a bit dated
after a few years.
&lt;p&gt;
As with the other book, a fair portion of the book is in its appendices
most of which are on an accompanying CD. This makes the book less bulky
and more cost-effective to produce but it also makes it cumbersome to
refer to the off-book appendices. I can appreciate this compromise as
the alternative would have been to make the book more bulky and omit a
lot of the material from the appendices.
&lt;p&gt;
A lot of the material in this book, especially the case-studies and
some of the appendices, has been contributed by other authors. Impressive
as the primary authors' credentials are (one is the father of MIPS and
the other of SPARC), they cannot be expected to be experts on every
topic in this domain and this extensive collaboration brings others'
expertise to bear on specialised topics like floating-point arithmetic,
embedded systems, etc.
&lt;p&gt;
Throughout the two books the authors have stuck with their
&amp;quot;quantitative approach&amp;quot; to this field. Instead of making
hand-waving statements like many others, they provide concrete formulae
to measure various aspects of a computer's performance and extensively
use various benchmarks to test existing systems. These benchmarks include
the SPEC and TPC benchmark suites to cover a range of performance
aspects.
&lt;p&gt;
This book would make for a great text-book for an advanced course on
computer architecture. It would be particularly useful to computer
architects, operating system designers and compiler writers. For the
rest of us, this book provides a great insight into just what goes in
the making of modern high-performance computer systems that most of us
just take for granted.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/coad.html</id>
    <title type="html">&amp;quot;Computer Organization and Design&amp;quot;</title>
    <updated>2009-03-20T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/coad.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;Computer Organization and Design&amp;quot; by David Patterson and
John Hennessy is an introductory text on this subject for budding
computer scientists and computer engineers. The field has been
in a state of constant flux in recent times and this book serves as an
excellent reference even for professionals, since its authors have kept
it up-to-date with all the latest developments. The downside is that
such a book becomes dated pretty quickly by its very nature, assuming
the field continues its breakneck pace of development even into the near
future.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/coad.jpg&quot; alt=&quot;&amp;quot;Computer Organization and Design&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0123744938?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0123744938&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0123744938&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The authors are the designers of two early and successful RISC
microprocessor architectures (MIPS and SPARC) and this expertise is
demonstrated very well in the book. They do not shy from providing
details that other authors might have omitted in an introductory text.
The flip side is that the book spends a lot of time on the architecture
of a microprocessor and very little on the other aspects of computer
architecture and design.
&lt;p&gt;
The book primarily uses the MIPS architecture to illustrate the concepts.
It also uses the x86 architecture in places to illustrate more
complex implementations of the basic ideas. The MIPS instruction set
and architecture turns out to be fairly regular and minimal, making it
a good example from the real world for teaching, unlike the x86
instruction set and architecture with its overwhelming complexity and
idiosyncracies.
&lt;p&gt;
The book describes the basics of the MIPS instruction set and then shows
how programmes in a high-level language are translated into this
instruction set. It describes how instructions are decoded and executed,
how arithmetic is implemented, how pipelining works, how caches work,
etc. With each chapter, you explore the relevant parts of the MIPS
instruction set and architecture. Throughout the book, the authors
maintain their &amp;quot;quantitative approach&amp;quot; to this field by
showing how to measure various things rather than just describing the
concepts.
&lt;p&gt;
Quite a bit of the book's material has been moved to a companion CD
making it a bit cumbersome to refer to that material, especially since
the book makes references to this material throughout. This also means
that the book is not as bulky as it would have been without the CD and
that the authors have been able to provide more information on the CD
than would have otherwise been possible in a regular book. I would have
personally preferred the &amp;quot;Computers in the Real World&amp;quot; sections
after each chapter on the CD rather than in the book since they are so
incongruent to the material described in the book.
&lt;p&gt;
The book stands quite tall compared to the other books on this subject
and its current popularity is entirely justified. I wish this book was
available when I was studying computer science. If you are a practising
computer programmer who graduated quite a while ago, you must get this
book and go through it to keep up with the advances in modern
microprocessors.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/dsna.html</id>
    <title type="html">&amp;quot;Data Structures and Algorithms&amp;quot;</title>
    <updated>2009-03-15T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/dsna.html"/>
    <content type="html">
&lt;p&gt;
&amp;quot;Data Structures and Algorithms&amp;quot; by Alfred Aho, Jeffrey Ullman
and John Hopcroft is a relatively-short introductory text for data
structures and algorithms useful for computer programming. It covers a
surprisingly-broad set of topics considering its size. It is fairly
dated now but it still has all the essential data structures, algorithms
and algorithm analysis techniques.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/dsna.jpg&quot; alt=&quot;&amp;quot;Data Structures and Algorithms&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0201000237?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201000237&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201000237&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
Early on in the book the authors describe algorithm analysis techniques
and the effect of badly-designed algorithms on performance as the size
of the input data increases. They also introduce the concept of an
Abstract Data Type (ADT) and use it to describe various data structures.
The algorithms are described using a pseudo-language that is a bit too
similar to Pascal - programmers these days will find it a bit weird and
distracting, though it is still close enough to the currently popular
programming languages like Java or C++ for easy translation.
&lt;p&gt;
If you are an absolute novice, this might not be a good book with which
to start the study of data structures and algorithms. It does not
clearly explain &lt;i&gt;why&lt;/i&gt; you need to study so many data structures and
under which constraints you would prefer one over the other. It also
leaves many of the details of the algorithms to be worked out by the
reader. There are no solutions provided for the exercises given in the
book. Many a time the book uses unnecessarily formal descriptions when
a much simpler language would have sufficed.
&lt;p&gt;
Some of the &amp;quot;advanced&amp;quot; data structures like red-black trees,
AVL trees, splay trees, etc. are either not described here or are just
alluded to without any details. An important and basic algorithm like
binary search through sorted data is only mentioned in passing. There
is not much information on either parallel or cache-friendly algorithms,
both of which are important on modern systems.
&lt;p&gt;
If you are already familiar with the basic data structures and
algorithms and do not want to carry around some of the other unwieldy
tomes on this subject, this is a good book to have around as a refresher.
If you need a comprehensive up-to-date treatise on the subject, this is
not quite the book.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/irrex.html</id>
    <title type="html">&amp;quot;Irrational Exuberance&amp;quot;</title>
    <updated>2009-02-19T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/irrex.html"/>
    <content type="html">
&lt;p&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Robert_Shiller&quot;&gt;Robert Shiller&lt;/a&gt;
(of the &lt;a
href=&quot;http://en.wikipedia.org/wiki/Case-Shiller_index&quot;&gt;Case-Shiller
housing index&lt;/a&gt; fame) is one of the few level-headed economists who
have been able to recognise and point out market bubbles in the making
and who have had the courage to stand by their analyses even in the face
of ridicule. His book &amp;quot;Irrational Exuberance&amp;quot; became famous
for calling out the stock-market bubble in the US when it was published
in early 2000, just some time before the bubble burst. The second
edition of the book has again been remarkable for pointing out the
housing-market bubble in the US when it was published in 2005, though
this time it took a little over a year since then for the bubble to
burst.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/irrex.jpg&quot; alt=&quot;&amp;quot;Irrational Exuberance&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0767923634?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0767923634&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0767923634&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The book starts off by providing a historical perspective of the stock
market and the housing market in various cities. It then examines the
structural, cultural and psychological factors that result in market
bubbles, followed by some of rationalisations that people usually resort
to when they find themselves in the midst of such bubbles. It ends with
examining the ways in which influential people can prevent such bubbles
from forming and hurting a lot of people when they burst.
&lt;p&gt;
The author has been able to strike a fine balance between academic
rigour and prose interesting to the lay person. Almost all the
assertions are backed by the relevant data, method of collection,
references, etc. There are quite a few endnotes in the book for each
chapter so that the serious reader can get more details. At the same
time, an intelligent non-economist should also be able to follow and
appreciate most of the arguments in this book. This is a rare
accomplishment.
&lt;p&gt;
If you believe in the efficient market hypothesis or that stocks are
always good investments for the long run or that real-estate is a sure
way of significant capital appreciation, you &lt;i&gt;must&lt;/i&gt; read this
book and consider the arguments and data provided here. If you were
already sceptical of one or more of these theories, you will obtain
substantial ammunition here for your debates with people who believe
otherwise. The author provides cogent arguments against each of these
beliefs that have now become a part of conventional wisdom.
&lt;p&gt;
The book is somewhat biased towards examining the irrational
expectations that people have from the stock market. The book talks
about the housing market in detail only in the beginning and in the
end. I would have preferred a more uniform treatment of the two.
    </content>
  </entry>
        <entry>
    <id>http://rmathew.com/2009/vijay.html</id>
    <title type="html">&amp;quot;The New Cambridge History of India: Vijayanagara&amp;quot;</title>
    <updated>2009-01-06T00:00:00+05:30</updated>
    <link rel="alternate" href="http://rmathew.com/2009/vijay.html"/>
    <content type="html">
&lt;p&gt;
After &lt;a href=&quot;http://rmathew.blogspot.com/2009/01/hampi.html&quot;&gt;our
recent trip to Hampi&lt;/a&gt;, Anusha and I became quite curious to know more
about the history of the &lt;a
href=&quot;http://en.wikipedia.org/wiki/Vijayanagara_empire&quot;&gt;Vijayanagara
empire&lt;/a&gt;. Our high-school text-books on history barely touched upon
the rise and the fall of this great empire that ruled over almost all of
southern India for about three centuries beginning in the 14&lt;sup&gt;th&lt;/sup&gt;
century. We picked up Burton Stein's &amp;quot;The New Cambridge History of
India: Vijayanagara&amp;quot; mainly because at about 150 pages it looked
like a more manageable read than the other such books. It was also far
more recent than the other books and therefore had a much better chance
of incorporating the findings from recent research into this aspect of
Indian history.
&lt;div class=&quot;book_display&quot;&gt;
&lt;img src=&quot;../books/images/vijay.jpg&quot; alt=&quot;&amp;quot;The New Cambridge History of India: Vijayanagara&amp;quot;&quot;&gt;
&lt;br&gt;
&lt;a
href=&quot;http://www.amazon.com/gp/product/0521619254?ie=UTF8&amp;amp;tag=rmathew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0521619254&quot;&gt;
&lt;img src=&quot;../books/images/buyamz.gif&quot;
alt=&quot;Buy From Amazon.com&quot;&gt;
&lt;/a&gt;
&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=rmathew-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0521619254&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
The book turned out to be a serious study of the history of the
Vijayanagara empire as well as a commentary on the published literature
on this topic. It seems therefore to be better suited for students of
history than the general public and it does get dull at times. That
does not mean that it does not have fascinating information for the
patient lay reader. This is especially true for those in India since
the history generally taught to us in our schools is quite lopsided.
&lt;p&gt;
The main focus of the author is on the economic, political and social
factors affecting the rise and the fall of this empire. Reliable
collection of taxes over such a vast and disparate region coupled with
the pressure on the treasury by the need to maintain a full-time
professional army made for tricky economics. Since this empire was ruled
over by three separate dynasties coming into power via means such as
usurpation, there is plenty of politics to go over. An empire like
this that ruled over a diverse population speaking Kannada, Telugu,
Tamil and Tulu spread over the entire Indian peninsula meant that local
chieftains were both necessary as well as threatening for running the
empire. Finally, the empire was constantly threatened by bordering
kingdoms. It was therefore quite amazing that the empire survived and
thrived for as long as it did. Quite remarkably, the book shows that
the very factors that enabled the empire to form and sustain itself
ultimately led to its downfall.
&lt;p&gt;
To fully appreciate the book, you should have some familiarity with the
other main dynasties that ruled over parts of southern India like &lt;a
href=&quot;http://en.wikipedia.org/wiki/Chalukya_dynasty&quot;&gt;the Chalukyas&lt;/a&gt;,
&lt;a href=&quot;http://en.wikipedia.org/wiki/Chola_Dynasty&quot;&gt;the Cholas&lt;/a&gt; and
&lt;a href=&quot;http://en.wikipedia.org/wiki/Pandyan_Kingdom&quot;&gt;the Pandyas&lt;/a&gt;.
There are extensive bibliographic references in this book for the
serious student of history. Having visited &lt;a
href=&quot;http://en.wikipedia.org/wiki/Hampi&quot;&gt;Hampi&lt;/a&gt; is not a
pre-requisite for reading this book, though it definitely helps in
appreciating the few plates that are there. There is not much
information about the flourishing of art in this empire as is evident
from the ruins of Hampi - you will have to look elsewhere if you are
interested in that aspect of the empire.
    </content>
  </entry>
</feed>
