Programming Game AI by Example is one of those books that would have changed my life had I had read them when I was 15. Mat Buckland is taking a really high tech portion of game making and turning it into child's play. With source code!

From the very beginning we are being told that AI in games is different from what we would normally associate with Artificial Intelligence. AI in games is the thing that makes game agents look smart, but let the user enjoy the game the most. In other words, something that seems smart, but is just stupid enough for you to continue playing.

The book is comprised of ten chapters, heavy with code, but very well structured. The main tool in use are Finite State Machines, but we first get a mechanics physics lecture in chapter 1 where we learn what a vector is and how to normalize it and how to use this in the game physics. Moving to chapter 2, we learn what a state machine is and how to optimize memory by making each one a singleton, how to compose them and why more exciting aspects of artificial intelligence, like say neural networks, are not used more in games. We delve further into methods to optimize what we have learned to make it practical: prioritized dithering, partitioning, BSP, quad and oct trees, fuzzy-Q logic, cell space partitioning, all with code examples, in chapter 3. Chapter 5 is reserved for graphs, Dijkstra, A* and such. Chapter 6 goes into integrating Lua into your games, as a good tool to define and tweak the innards of your game before compiling it all for performance into a single code base. Raven, the example game engine, is detailed in chapter 7. Path planning is described in chapter 8, complete with many optimizations and tricks to make an algorithmic movement of units look natural and smart. Chapter 9 is about goal driven agent behaviour, where we learn how to make an agent define goals and act upon those goals. The composite pattern is suggested as a good solution for goals within goals. We end with a very interesting chapter about fuzzy logic. The basis of this is to fuzzify a situation, infer a behaviour, then defuzzify into a usable algorithmic value.

The bottom line is that this is a very easy book to read, explaining matter-of-factly how to easily create the intelligence in games like Fifa or Counter Strike. The code examples are extensive, but not necessary to understand the gist of things. At the end, it is both a fascinating and intriguing read as well as a good reference book for when you actually need this stuff.

I end this review with a quote from Dijkstra that was also mentioned in the book: The question of whether Machines Can Think... is about as relevant as the question of whether Submarines Can Swim. Very nice book and a recommended read.

and has 0 comments
I started reading The Passage because of an Internet review. It was so exuberantly positive that I thought I would have a great time reading the story. It said "I don’t think I’m exaggerating when I say that almost everyone has heard about The Passage by Justin Cronin by now. At least the people in the booking world have." The only explanation I have now, having read the book, is that the reviewer is a bookie and they have some sick sense of choosing what they read. Ok, I am a little mean. Truth is that other people that I respect have blogged about the book and recommended it; I just can't fathom why.

Partly to blame is the writing style. Justin Cronin needs to make you understand what everyone is feeling by describing the most mundane parts of their lives and what they experienced. It's not the good type of description, where you get to know the people because of their thoughts and actions, it's just a lot of internal monologues on subjects I couldn't care less about. I feel that a good book is the one that contains mostly ideas relevant to the subject of the book and most of what these people thought or did was not. I am not very good with other people's feelings, so I thought it was all me and I continued to read through the book as a virus from South America that made people into blood thirsty immortal creatures was brought in the US in order to study how it could be used to create weapons. Not the best plot device ever, but I was already forcing myself to suspend my disbelief. (Cronin, that was your job, not mine!) Naturally, the virus escapes containment, unleashing chaos and destruction on the face of the world. I was a third into this rather long book when all the characters so painstakingly described disappear. They all die. Fast forward almost a century later. Now you see my dilemma? How can that be good writing?

Anyway, now people are living inside a high walled colony (because vampires can't enter a makeshift colony defended by lights and crossbows, but they have defeated armoured vehicles and military bunkers) and believe themselves to be the last remains of humanity. All 100 of them. I have to, again, read all about the feelings of people and how they see themselves and the world. Here we get some chapters extracted from people's diaries that are presented at some future outbreak conference. So, halfway through the book, we know it will end well. In case I was starting to enjoy the story. There are some heroic characters around, they do heroic stuff, then, another third in the book, they leave the colony. About a dozen or so. They go through vampire infested territory, losing a few people and the opportunity to know how they felt about it, and find out some important information on how to defeat the vampires. They were not the only remnants of humanity, no, humanity was nice and well fighting the vampires in the most ridiculous and inefficient manner possible. So, after completely removing another 95% of all the characters we got to know uselessly, we have a Mad Max kind of ride to other people. Lucky for me, these other people were pretty much empty plot devices so I didn't get to know how they felt one way or the other. Blessed joy!

At this point I was barely containing my impatience for the book to end. Some sort of bloody resolution to the mess I had read until then. They kill a master-vampire, they get a powerful version of the virus that makes people hybrids and retain their memories, they use a nuke! Wonderful. Then some idiotic woman decides she knows what is best and makes a completely unilateral decision based on "humanity" which pretty much dooms them all and separates the main character from his love forever, but they all accept it as "what should be". Fuming with frustration, I speed it up in order to get to the end of the book, mere tens of pages coming. And it comes. With a little religious crap and a sort of lame cliffhanger and a complete stop. Guess what? It's a bloody saga! See the book cover, there is more coming!

So I am sorry, Axe! I am sorry, Wertzone! I hated the book. It was as pointless as it wasn't making any sense. Maybe the guy can write, but I couldn't notice it because of all the ridiculous premises of the book and all the feely descriptions. I will not read the rest, I will not recommend this book and, if for some strange reason OMG, everybody is talking about this book, tell them you read it here: read something else!

and has 0 comments

World of Ptavvs is a book first published in 1966, therefore it feels very dated indeed. Still, while reading the book, I've realised how I missed the style of the sci-fi back then, when the world was grand, the future was brilliant, people would all be intelligent and rational, doing what is smart and what is right, with a power of will that defined their very being. Remember Asimov? It's like that! And it's no wonder, both Larry Niven and Isaac Asimov were technical people at their core, even if they have expanded their interests in many other spheres as well. I have to reiterate this: in this time of Generation Me, when everything seems to be focused on the intensity of one's emotions, rather than on what the situation at hand is and what to do about it, when legions of film makers and young adult writers pound this insane idea that what we feel is more important than what we think and our own belief is more important than the welfare of the people around us, in these horrible times books like World of Ptavvs feel like good medicine.

Not the the book was not ridiculous in many aspects. The fusion drives, the trips towards Pluto that took a few days, a "belter" civilisation populating the main asteroid belt and moving around in ships that were essentially huge fusion bombs, the way people with terrible burns and psychic trauma would calmly talk about their ordeal to the scientific investigator come to solve the problem, the idealistic discussions that spawned out of nowhere in moments of maximum tension, the intelligent civilisation of dolphins that dream to go to space, the psionic powers... all of these were at the same time wonderful to behold and quite silly. However, I liked the book, I gobbled it up.

The plot is about this alien that can control the minds of others. Their entire civilisation is based on enslaving other populations via their Power. He is the victim of a malfunction in space and activates a retarder field that will protect him from time and space interactions until someone removes him from this stasis. Thus, he reaches Earth and remains on the bottom of the ocean for billions of years. When people get him out of his shell, all hell breaks loose, the book transforming into a space race and a philosophical introspection at the same time.

I can't make justice to the subject in a few words any more than I can do it in more words without spoiling the pleasure of the read - I've already said too much. If you feel you are in the mood for old school sci-fi, World of Ptavvs is a good book, reminiscent of the works of Asimov or van Vogt. Silly, yet grandiose at the same time.



I think that The Checklist Manifesto is a book that every technical professional should read. It is simple to read, to the point and extremely useful. I first heard about it in a Scrum training and now, after reading it, I think it was the best thing that came out of it (and it was a pretty awesome training session). What is this book about, then? It is about a surgeon that researches the way a simple checklist can improve the daily routine in a multitude of domains, but mainly, of course, in surgery. And the results are astounding: a two fold reduction in operating room accidents and/or postoperatory infections and complications. Atul Gawande does not stop there, though, he uses examples from other fields to bring his point around, focusing a lot on the one that introduced the wide spread use of checklists: aviation.

There is a lot to learn from this book. I couldn't help always comparing what the author had to say about surgery with the job I am doing, software development, and with the Scrum system we are currently employing. I think that, given he would have heard of Scrum and the industrial management processes it evolved from, Gawande would have surely talked about it in the book. There is no technical field that could not benefit from this, including things like playing chess or one's daily routine. The main idea of the book is that checklists take care of the simple, dumb things that we have to do, in order to unclutter our brain for the complex and intuitive work. It enables self discipline and allows for unexpected increases in efficiency. I am certainly considering using in my own life some of the knowledge I gained, and not only at the workplace.

What I could skim from the book, things that I marked as worthy to remember:
  • Do not punish mistakes, instead give more chances to experience and learning - this is paramount to any analytical process. The purpose is not to kill the host, but to help it adapt to the disease. Own your mistakes, analyse them, learn from them.
  • Decentralize control - let professionals assume responsibility and handle their own jobs as they know best. Dictating every action from the top puts enormous pressure on few people that cannot possibly know everything and react with enough speed to the unpredictable
  • Communication is paramount in managing complex and unexpected situations, while things like checklists can take care of simple and necessary things - this is the main idea of the book, enabling creativity and intuition by checking off the routine stuff
  • A process can help by only changing behaviour - Gawande gives an example where soap was freely given to people, together with instructions on how and when to use it. It had significant beneficial effects on people, not because of the soap per sé, but because it changed behaviour. They were already buying and using soap, but the routine and discipline of soap use was the most important result
  • Team huddles - like in some American sports, when a team is trying to achieve a result, they need to communicate well. One of the important checks for all the lists in the book was a discussion between all team members describing what they are about to do. Equally important is communicating during the task, but also at the end, where conclusions can be drawn and outcomes discussed
  • Checklists can be bad - a good checklist is precise, to the point, easy to use. A long and verbose list can impede people from their task, rather than help them, while vague items in the lists cause more harm than good
  • A very important part of using a checklist system is to clearly define pause points - they are the moments at which people take the list and check things from it. An undefined or vaguely defined pause point is just as bad as useless checklist items
  • Checklists are of two flavours - READ-DO, like a food recipe, with clear actions that must be performed in order, and DO-CONFIRM, where people stop to see what was accomplished and what is left to do, like a shopping list
  • A good checklist should optimally have between five and nine items - the number of items the human brain can easily remember. This is not a strong rule, but it does help
  • Investigate failures - there is no other way to adapt
  • A checklist gotcha is the translation - people might make an effort to make a checklist do wonders in a certain context, only to find that translating it to other cultures is very difficult and prone to errors. A checklist is itself subject to failure investigation and adaptation
  • Lobbying and greed are hurting us - a particularly emotional bit of the book is a small rant in which the author describes how people would have jumped on a pill or an expensive surgical device that would have brought the same great results as checklists, only to observe that people are less interested in something easy to copy, distribute and that doesn't bring benefits to anyone except the patients. That was a painful lesson
  • The star test pilot is dead - there was a time when crazy brave test pilots would risk their lives to test airplanes. The checklist method has removed the need for unnecessary risks and slowly removed the danger and complexity in the test pilot work, thus destroying the mythos. That also reduced the number of useless deaths significantly.
  • The financial investors that behave most like airline captains are the most successful - they balance their own greed or need for excitement with carefully crafted checklists, enabling their "guts" with the certainty that small details were not missed or ignored for reasons of wishful thinking
  • The Hudson river hero(es) - an interesting point was made when describing the Hudson river airplane crash. Even if the crew worked perfectly with each other, keeping their calm in the face of both engines suddenly stopping, calming and preparing the passengers, carefully checking things off their lists and completing each other's tasks, the media pulled hard to make only the pilot a hero. Surely he denied it every time and said that it was a crew effort because he was modest. Clearly he had everything under control. That did not happen and it also explains why the checklist is so effective and yet so few people actually employ it. We dream of something else
  • We are not built for discipline - that is why discipline is something that enables itself. It takes a little discipline to become more disciplined. A checklist ensures a kind of formal discipline in cases previously analysed by yourself. It assumes control over the emotional need for risk and excitement.
  • Optimize the system, not the parts - it is always the best choice to look at something as a whole and improve it as a whole. The author mentions an experiment of building a car from the best parts, taken from different companies. The result was a junk car that was not very good. The way the parts interact with one another is often more important than individual performance

I am ending this review with the two YouTube videos on how to use and how not to use the WHO Surgical Safety Checklist that Atul Gawande created for surgical team all around the globe.



It was long overdue for me to read a technical book and I've decided to go for a classic from 1999 about refactoring, written by software development icons as Martin Fowler and Kent Beck. As such, it is not a surprise that Refactoring: Improving the Design of Existing Code feels a little dated. However, not as much as I had expected. You see, the book is trying to familiarize the user with the idea of refactoring, something programmers of these days don't need. In 1999, though, that was a breakthrough concept and it needed not only explained, but lobbied. At the same time, the issues they describe regarding the process of refactoring, starting from the mechanics to the obstacles, feel as recent as today. Who didn't try to convince their managers to allow them a bit of refactoring time in order to improve the quality and readability of code, only to be met with the always pleasant "And what improvement would the client see?" or "are there ANY risks involved?" ?

The refactoring book starts by explaining what refactoring means, from the noun, which means the individual move, like Extract Method, to the verb, which represents the process of improving the readability and quality of the code base without changing functionality. To the defense of the managerial point of view, somewhere at the end of the book, authors submit that big refactoring cycles are usually a recipe for disaster, instead preaching for small, testable refactorings on the areas you are working on: clean the code before you add functionality. Refactoring is also promoting software testing. One cannot be confident they did not introduce bugs when they refactor if the functionality is not covered by automated or at least manual tests. One of the most important tenets of the book is that you write code for other programmers (or for yourself), not for the computer. Development speed comes from quickly grasping the intention and implementation when reading, maintaining and changing a bit of code. Refactoring is the process that improves the readability of code. Machines go faster no matter how you write the code, as long as it works.

The book is first describing and advocating refactoring, then presenting the various refactoring moves, in a sort of structured way, akin to the software patterns that Martin Fowler also attempted to catalog, then having a few chapter written by the other authors, with their own view of things. It can be used as a reference, I guess, even if Fowler's site does a better job at that. Also, it is an interesting read, even if, overall, it felt to me like a rehearsal of my own ideas on the subject. Many of the refactorings in the catalog are now automated in IDEs, but the more complex ones have not only the mechanics explained, but the reasons for why they should be used and where. That structured way of describing them might feel like repeating the obvious, but I bet if asked you couldn't come up with a conscious description of the place a specific refactoring should be used. Also, while reading those specific bits, I kept fantasizing about an automated tool that could suggest refactorings, maybe using FxCop or something like that.

Things I've marked down from the book, in the order I wrote them down in:
  • Refactoring versus Optimization - Optimizing the performance or improving some functionality should not be mixed up with the refactoring of code, which aims to improve readability of code while preserving the initial functionality. Mixing them up is pitting the two essential stages of development one against the other.
  • Methods should use their data of their own object - one of the telltales of need to refactor is when methods from an object use data from another object. It smells like the method should be moved in the responsibility of that other object.
  • When it is easy to refactor, choose a simple design - Of course the opposite is true, as well: when you know it will be hard to refactor a piece of code, try to design it first. If not, it is better to not add unnecessary complexity. This is in line with the KISS concept.
  • Split your application into self encapsulated parts - One of the ways to simplify refactoring is to separate your application into bits that you can manage separately. If you didn't design your application like that, try to first split it, then refactor.
  • Whenever you need to write a comment, consider extracting a method with a meaningful name - or renaming methods to be more expressive.
  • Consider polymorphism when seeing a switch statement - Now that is an interesting topic in itself. Why would polymorphism help here? How could it be simpler to understand than a switch/case statement? The idea behind this is that if you have a switch somewhere, you might have it somewhere else as well. Instead of taking decisions inside each method, it is better to split that behaviour in separate classes, each describing the particular value that the switch would have operated on.
  • Test before refactoring - this would have been drilled in your head already, but if not, the book will do that to you. In order to not add faults to the program with the refactoring, make sure you have tests for the existing functionality, tests that should pass after the refactoring process, as well.
  • The Quantity pattern - Review the Quantity pattern in order to improve readability and encapsulate simple common actions performed on specific types of units.
  • Split conditionals into methods - in other words try to simplify your conditional blocks to if conditionMethod() then ifMethod() else elseMethod(). It might seem a sure way to get to a fragmented code base, with small methods everywhere, but the idea is sound. A condition, after all, is an intention. Encapsulate it into a well named method and it will be very clear what the programmer intended. Maybe the same method will be used in other places as well, and then, using polymorphism, one can get rid of the conditional altogether.
  • Use Null objects - an interesting concept that I haven't even considered before. It is easy to recognize the need for a Null object when there are a lot of checks for null. if x==null then something() else x.somethingElse() would be turned into a simple x.something() if instead of null, x would be an object that represents empty, but still has attached behavior. An interesting side effect of this is that often the Null object can be made an immutable singleton.
  • Code inside Assertions always executes - This is a gotcha I found interesting. Imagine the following code: Assert.IsTrue(SomeCondition()) Even if the Assert object is designed to not execute anything in Release mode, only compiled in Debug, the method SomeCondition() will execute all the time. One option is to use an extra condition: Assert.IsTrue(Assert.On&&SomeCondition()) or, in C#, try to send an expression: Assert.IsTrue(()=>SomeCondition())
  • Careful when replacing method parameters with parameter object in parallel processing scenarios - Which nowadays means always. Anyways, the idea is that old libraries designed for parallel processing used large value parameter lists. One might be inclined to Introduce Parameter Object, but that introduces a reference object that might lead to locking issues. Just another gotcha.
  • Separate Modifier from Query - This is a useful convention to remember. A method should either get some information (query) or change some data (modifier), not both. It makes the intention clear.

That's about it. I have wet dreams of cleaning up the code base I am working on right now, maybe in a pair programming way (also a suggestion in the book and a situation when pair programming really seems a great opportunity), but I don't have the time. Maybe this summary of the book will inspire others who have it.

and has 0 comments
This is the second book by William Golding that I am reading. Unbeknownst to me, it is part of a trilogy! Even Nobel prize winners for Literature seem to can't help but write the damn things. How is one to finish reading all they want to read?! Anyway, the guy wrote Lord of the Flies, reason for the Nobel and a story I enjoyed both as book and movie. Rites of Passage has many similarities with that book. It happens at sea, on a ship, not on an island, but just as removed from the normal rules of civilised society. It reveals dark depths of human morality. It exposes hypocrisy and narrow mindedness. Golding also won an award for it, the Booker prize this time.

So, what is it about? There is this nobleman, godson of an unidentified but very important man, travelling on a ship from England to "the Antipodes" where he is to take an important state office. The guy is the highest socially elevated person on the ship, giving him some sort of equal footing with the captain himself, who is normally king and church on his ship. Now, the book appears as the journal of said guy, of the name of Talbot, written to his godfather, as a means to thank and humour the man, restricted in his own life by the gout disease. That is where the book is at its most difficult: the language is that of an Englishman noble from the 19th century, with antiquated words and funny ways of turning them into sentences. I pride myself on having understood and finished it, but now, that I know it is part of a trilogy, I am a bit disconcerted.

Anyway, the journal of Talbot presents us with the marvellous world of a ship at sea, forcing the reader to both empathise with the man, but also share some of his opinions of the lower castes and of the social system. We get to share his view of the current events as well. He thinks of himself as noble, intellectually and morally superior to other people on the ship, while exercising a benevolent and understanding indulgence at the actions of others. He truly seems to be the most intellectual person on board, as educated in comparison with others as a college graduate is to a four grade drop out. However, he is a bit of a dick, full of condescension and of the weaknesses of all men.

The main moral of the story is that his arrogant views on the world of the ship are reasonable, if taking as true the presuppositions he makes as member of his social class and having his position on the ship. However, they are completely wrong as related to what really happened. We understand this in the second half of the book, where he relates the contents of another man's journal, who's perspectives on the situations turn our perceptions on their head. Also, the finale is quite grotesque, revealing that his blindness to the world around him is, more or less, voluntary and part of the social system he represents.

This is a difficult book to read, but one that opens eyes, so to speak. Not only we get to see how English was meant to be used (bah, Americans! :) ) but also the author is taking us through the recesses of the human mind and society and the experience of the read is a visceral and personal one. If you can handle the language and the slow pace, I recommend reading this book.

There is also a quicker option for the ones who want to see what happens without having to read the books. The To the Ends of the Earth trilogy has been adapted to a miniseries, by the BBC, of course, starring Benedict Cumberbatch.

and has 1 comment
Towers of Midnight, the 13th book in the Wheel of Time series and the book before last in the saga, was a great read. As the second volume written by Brandon Sanderson after Robert Jordan's death, it benefited a lot from Sanderson's fluid writing style and the fact that all the stories are coming to their end.

The plot was interesting, too, with all three ta'veren characters doing their part, all the girls (except Nynaeve!) being involved and quite a few Forsaken as well, with interesting gimmicks the Darkfriend previously known as Luc and even a gholam!. The entire Trakand clan is represented and there are blessedly few Aiel. In this book Moiraine is found, there is some news of lovely and terrible Lanfear and someone dies (although, of course, nobody important and they die quite uselessly) while battling Aelfinn and Eelfinn, while The Final Battle approaches, with the revelation of red veilled dark Aiel?

My feeling of the book was one of discovery. Brandon Sanderson is writing this book with the enthusiasm of someone that just started work on a story (because he did!), yet with all the legacy material from Robert Jordan to build upon. No wonder the last part of the series was supposed to be just one book and resulted in three at the end. That means the story feels fresh, even if I have been reading it for the last four months. Also, it is no surprise that Sanderson could not maintain the fearful and deferential view of women that Jordan cultivated in the previous books. Oh, don't worry, they continue to meddle in all the affairs of others and their behaviour is just as erratic and irrational as before, it's just that men don't act like cowed idiots anymore and actually have a backbone. I don't know if this was supposed to happen in the original author's view, but I am willing to bet that it was not. Actually, this is one of the worse points of the story, when Elayne (the queen of Andor), Egwene (the Amyrlin seat) and Faille (Perrin's wife and princess of Saldaea) are plotting and acting like they own the world, while at the same time putting themselves in all sorts of dangers where they have to be saved by others. Of course, the others more often end up dead, but there is always some handy rationalization for behaving like an idiot. Amazingly enough, though, Cadsuane and even Moiraine are behaving quite well. The End must really be coming!

The bottom line is that I have finished reading the series. The last book won't be published until 2013, so now I am free to read other books. Yatta! I've gathered a technical book about refactoring, The Rites of Passage, by William Golding, and The Checklist Manifesto, which I hear is both instructive and interesting to read (not to mention short). So, I guess the wheel won't be turning as the wheel wants until next year. Meanwhile, you're stuck with me!

and has 4 comments
The Gathering Storm is the 12th book in the fantasy series Wheel of Time and the last in the saga to be written (partially) by Robert Jordan. The guy died while writing it and the book was continued by Brandon Sanderson. The result? A better book! I firmly believe that Sanderson is writing better than Robert Jordan, while at the same time retaining enough of his style to not feel too much of a disconnect. I wish I was a literary critic right now, so that I could tell you what was better, but I am not; as a reader I can only tell you that I felt less like crawling through thick fluid and more like swimming. There is proof: I've finished reading this book almost a week ago and, while not having time to write this post, I did get two thirds in the thirteenth book of the series.

Ok, I must admit that being a series finale, it was bound to be more interesting, however more focus on the action and less on Nynaeve's braid pulling helped a lot. The plot revolves more about Rand and Egwene and less on the others. Rand is getting more and more erratic do to his obsession for eliminating his emotions. Instead, he buries them within, causing more and more insanity. Luckily, he gets over it, and not by psychotherapy, either. Egwene, instead, having been captured by the White Tower, has been demoted to Accepted and forced to do chores and beatings in order to stop calling herself Amyrlin. She uses her enormous ego and Aiel teachings to overcome the hurdles and reunite the Tower with the unexpected help of Verin, as we finally learn who she was.

The story of this book is interesting in itself. It was supposed to be the last book of Wheel of Time, but then it grew too much and it was decided a split into no less than three other books. The initial target was 200000 words, but the final estimation reached 750000. That means most of the book was written by Sanderson. The reception for the book was positive, since many of the threads left unended in the previous books were clarified.

Right now I am almost at the end of the final published book in the series, Towers of Midnight. The fourteenth book is supposedly ending the saga and will be published sometime at the beginning of 2013. So in about 9 months it will all be over :-)

and has 0 comments

Knife of Dreams is the last book in the series written by Robert Jordan. He died after finishing it. It was one of the nicer books in the series, mostly because it prominently featured Mat, who is one of the few characters in the Wheel of Time series I can empathise with.

The obvious and unnecessary story arch with Perrin's wife abduction by the Shaido Aiel finally ends, Elayne, Egwene and Nynaeve are all acting like they know everything and some get abducted by the Black Ajah and the White Tower, only to deny any wrongdoing or link to the cause of their predicaments. Cadsuane continues to be a pain in the butt, without actually providing a good return of investment and Min is either worrying without cause or acting stupidly and precipitating harm to Rand. Aviendha is not much better, but she rarely appears in this one. In other words, all the women are pompous idiots in Knife of Dreams, while Rand and Perrin act like buffoons. So the only satisfying story arch remains that of Mat.

I've started to read the last three books, which the new author (working on the basis of very detailed notes left by Robert Jordan and big fan of his) points out are three pieces of the same story, only one larger than a single volume could have contained. After that, I am free of the Dark One and the taint will be gone!

and has 1 comment
The tenth book of the Wheel of Time series was by far the least interesting. The action is taking place simultaneously or a bit after the events in Winter's Heart. I had waited to see what is going to happen next only to get a "parallel" book that only showed how everybody is taking their sweet time before doing anything. Of course, we know by now that Rand has finally done what needed done a few books ago, but what about all the not interesting characters? Well, we will get to know that in Crossroads of Twilight.

Having finished it, I embark on reading the last few books and see how the hell it is all going to end. That is the problem with stories based on prophecies. By the time the book gets anywhere, you know how it is going to end.

and has 1 comment
My blog becomes boring as I fly through the Wheel of Time series and it seems this is all I write about. The truth is that the feeling that started creeping in from books four or five, the "let's get it over with" feeling, has become stronger and undeniable. I don't want to stop reading the series, but I want to finish it soon, so I get to something that is truly interesting.

Winter's Heart is somewhat fractured. It continues where Path of Daggers left it and again it ends without a definite book boundary, just like a simple episode from a series. There is a rather important situation right at the end of the book, but it is underwritten, leaking important knowledge matter-of-factly and barely describing what should have been glorious fights with the One Power.

My impressions: Mat's storyline becomes intriguing, after a bit of utter boredom. Perin's story becomes ridiculous, with choices no sane man would make, not to mention women, and the obnoxious Aiel again getting a foothold in the plot. It has reached a point for me where any mention of Aiel just rubs me the wrong way. Rand is trying to make his enemies unsure of his plans, therefore he acts erratically, but that means he doesn't really do anything, until the end of the book. The girls are all doing whatever they feel like it, without coordinating with the boys, but still assuming they don't need to. The worst are the "evil ones" which seem to have fallen asleep. Fain tries to kill Rand, but not when he has him alone somewhere, only when he can "lure" him into a trap, together with all his friends.

Some ideas do come up. One is that Shai'tan is nothing more than a force of evil, not unlike Sauron, nothing corporeal or even conscious. All the evil in the book is done by people "doing the Great Lord's work" and their minions. The idea that the Dark One is imprisoned and that is why his actions make no sense is moot. Also, it seems that the Chosen are being reincarnated almost as soon as they die, only in other bodies. They call themselves differently, for some reason, but they possess the power and knowledge they had before death. They fear death, also, which make no sense at all. Robert Jordan's talent here is to make the evil side act stupidly, but without letting the reader feel so, and he manages it pretty well. Too bad I am more of a rational person.

I really like the idea that the One Power (which was always two, one male, one female) has an evil equivalent (the True Power - who comes up with these names?). Being of a Western origin, it is likely Robert Jordan will feel the need to unite all of these powers under "one God", so interesting interactions and hybrids might appear later. A tantalizing hint that Moiraine might be alive is also presented, when a reincarnation of Lanfear appears. Now that more annoying characters have popped up, I almost miss her, not to mention Lanfear herself, which is my favourite evil insane female character in the book :)

and has 1 comment
The one word that comes into mind when I think of the book is "frustrating". Having abandoned any semblance of independence between the books, Robert Jordan continues in The Path of Daggers many of the story arches began in A Crown of Swords and I don't know if he ends any. All the characters are acting like proud chickens, lacking any thought. They are emotional, weak, playing games when important issues are at stakes, taking serious offence from irrelevant words. I am sick of people "educating" others via beating, switching, shaming, pompous posturing, power plays and torture. The fate of the world is at stake and each and every one of the heroes of the story act like they still have other options. And while they are disgusted by people doing that very thing, but not seeing it in themselves.

At this point I am left with no other choice than to "watch" the story unfolding like on TV, because I feel no connection with it whatsoever. My wife asked me which of the characters in the book I most identify with. And I couldn't think of any. Even Shai'Tan doesn't make any sense at all. I've already started Winter's Heart and it continues in the same way.

and has 0 comments
The seventh book of the Wheel of Time series is a direct continuation of the sixth. I was saying in a previous post that book six, Lord of Chaos, was long and it doesn't even have a complete ending; A Crown of Swords overlaps Lord of Chaos a little, then opens up some other doors and doesn't close them either. Either this is the pattern (pun not intended) of the next books, or this is actually a weave (ok, now I was doing it on purpose :) ) of at least three books that are strongly coupled to each other.

A Crown of Swords is back to a size closer to the average of the other books, but since it is so connected to the books before and after, it doesn't really matter. There is a lot happening and some of it is captivating. I can't really empathize with most of the characters, though, except maybe Mat, and he is very present in this book. A new evil type of darkspawn appears, along with an advanced type of Myrddraal. The girls are hunting ter'angreal, the Seanchan are stirring again and a new battle against Forsaken is close. Also an Aes Sedai hero is approaching Rand and completely dissing him. Fun stuff!

and has 0 comments

Lord of Chaos was a long book to read. In size, it was as long as Shadow Rising, the longest book in the series so far, but it felt more packed. After all, Rand and Egwene can use portals and they go where the action goes, the Tower is divided, the Aiel are divided, a force of channelling men is created, Cairhien and Tear soldiers fight along Rand, there is action in Ebou Dar, Tear, Cairhien, Salidar, Andor, Two Rivers, Amadicia, The Forsaken are executing a plan of the Dark Lord and so on and so on.

There is a problem with consistency again, at least as I see it. If this was a strategy game, imagine more players playing in the same team, but each of them doing whatever they feel like. They are all friends, they even have one central character they can rally with, but they continue to do things their way. If the other team would have even a modicum of coordination, they would easily win. Also, the series has succumbed to levelitis, the disease that causes all main characters in a story to level up continuously, until it becomes unmaintainable. Rand and Eqwene can Travel or enter Tel'aran'rhiod in the flesh, Elayne can make ter'angreal, Nynaeve can heal stilling and gentling, Mat has the memories of countless heroes and has a talisman against saidar, Perrin is a lord, Loial can fight, Min can read auras and fight with knives, etc. It is getting so grand, that I fear for the books to come.

Even so, I've enjoyed the book and at the end I could barely stop reading to see where all the tension accumulated in the last hundred pages would explode, and how. The grandness and action packing of the book also led to a kind of split, where the stories started now have not ended yet and I must continue to read the series to see what is going to happen. The name of the book is also strange, as the Lord of Chaos is somehow related to the Dark One, but we don't really learn who he is; only hints are left here and there. Finally, Shai'tan seems to be more than just the cardboard evil destroyer of life and gains some complexity.

Sigh! There are 14 books in the series, I have just started the 7th and they seem to be growing in size as I go along... this is going to take a while.

and has 2 comments

I am already inside the story and it is getting harder and harder to analyse individual books. All I can say is that, again, there are a lot of incredibly condescending and arrogant people, mostly women, which are presented as indomitable based on looks or appearance or prestige, yet with not a shred of usefulness. I was reading this book and I was finding myself daydreaming of what I would say to such an annoying individual. What I find even more disturbing is that a lot of times the superiority of one's opinion was demonstrated via violence. Educational violence, mind you, switching, bottom beatings or pinches, meaningless and hard chores, but still violence and hardly acceptable to me.

Rand and Mat go together in The Fires of Heaven, but their contact is almost not existent and Mat is always trying to get away. What happened to their long time friendship? It evaporated in Jordan's writings. Perrin has saved the Two Rivers, but then married and stayed there, as if the world was saved and there was nothing to be done about it. Eqwene is with Rand as well, but more Aes Sedai and more arrogant by the minute, her relationship with Rand abandoned since subjected to the conscriptionary methods of both Aes Sedai and Wise Ones. A horrid character, if you ask me. Morraine is even more mysterious and useless as in the previous books, except for the end, where she does something heroic, but kind of dumb. Rand is getting "hard", but still suffers the people around him as he could do nothing about them. A prisoner of his own small village upbringing, he seems a sad sorry character, as remote from heroism as a dung beetle is from a professional dancer.

Interestingly enough, I found the Elayne and Nynaeve story arch a lot more satisfying. Complex, reasonable and thrilling. That until they voluntarily return to the Aes Sedai, where they have to again suffer all the humiliations an Accepted is supposed to suffer to gain "character". A new female Forsaken appears, Moghedien, but not nearly as interesting as Lanfear, who is present in this book, but terribly inconsistent. The ending of the book also annoyed the hell out of me, since I believe her outburst was completely out of character.

All and all, as interesting and captivating as the others in the Wheel of Time series, but suffering from a kind of character sublimation, in which the story is being carried by people that don't act like themselves. Book 6 is on the way.