Saturday, 9 March 2013

Ano Hi Mita Hana no Namae o Bokutachi wa Mada Shiranai, a rather emotional anime about friendship

The six friends, child and adolescent versions Ano Hi Mita Hana no Namae o Bokutachi wa Mada Shiranai (lit: We Still Don't Know the Name of the Flower We Saw That Day) has only 11 episodes and the last episode finishes up the story completely, so it wasn't something larger that just got cancelled. Better known as "Anohana: The Flower We Saw That Day", it is the story of very close childhood friends that pass through a deep trauma when one of them dies in an accident. A few years later, they all have drifted apart and each of them blames him or herself for the way things ended up. And here comes the ghost of the dead girl Menma, showing itself to only one of the group and asking him to fulfil her final wish so she can get to Heaven. The five friends get together to fulfil that wish, even if no one, including Menma, remember what it was.

At times it got annoyingly emotional with everybody crying and cringing and getting angry and stuff like that, but overall it was a nice anime, exploring the deep feelings of childhood that we don't really get over. So overall I liked it and, being short enough, I can easily recommend it to everybody, even if at times it feels like a soap opera. Perhaps making it a movie or a small series would have made it better.

Tuesday, 5 March 2013

Software patterns are useless

A couple a weeks ago I went for a job interview in order to see what is out there. It was a terrible phone interview and I failed to make a connection with the technical interviewers. I think I was just as disappointed in them as they were with me. However, what I believe killed it for them was an experiment I decided to conduct: to the usual question about software patterns I answered boldly that I didn't believe in software patterns and that I believed management techniques were what drove productivity and quality of work, not particular software commonalities. It was partly true, though, I do believe that, and this post is about my thoughts on the matter. Now, be warned: I may offend a few people that religiously pray in UML at Martin Fowler's shrine in the church of the Gang of Four.

Let's start with a brief history of software patterns. It started with inspiration from a building architecture book that explained that for similar problems there are similar solutions in architecture and that listing them would be a boon for the would be architect. Someone applied this to software in the form of common practices to solve common problems. The idea was that, outside the main goal of cataloguing best practices, these software patterns would provide a sort of common language for software architects.

Golden Hammer animation The problem is, of course, practice. The good part of a software pattern is that it provides a tested solution to a common problem. The bad part of a software pattern is that there are not that many common problems and most of the time software patterns are applied badly in practice. Invariably, at some point, the application of a software pattern leads to the Golden Hammer "antipattern". If the software pattern is well thought to apply to as many of the situations where a certain problem is met, then it is defined by a lot of flexibility. That may sound good, but a flexible architecture is usually low performing, overly complex or simply hard to understand in order to use them in very specific circumstances. That is why for most requirements there isn't one software library, but many, each attempting to juggle the right amount of performance, complexity and ease of use. And, of course, if a pattern is not well thought, why use it at all?

I guess the point I am trying to make is that current software patterns try to catalogue small issues, things that are, really, of little consequence, and that other things are way more important to behold, like long term vision. What is the point of using Inversion of Control if you don't plan to ever make components modular? Why would you create an MVC application if the code monkeys that you have hired will riddle the view with business logic? In fact, why would you make any effort of standardizing your application if you don't plan anything? And that is the basis of my contention: planning an application is the bottleneck. I would go for Software Planning Patterns way before I even consider mid level software patterns. The planning is where the need of the technician does battle with the need of the business owner. One strategy might be perfect when chosen only to become obsolete during implementation, I agree, but then you have an initial strategy, a current strategy and the techs must find the way to transition from one to another. Planning is where all the interested parties come together and need to reach a decision; the technical implementation, let's face it, must just work and then, hopefully, be reasonably maintainable.

And I dare say that in building architecture the long term plan for the building is already there. It must be, as it will last for decades. You don't start a skyscraper only to change your mind in the middle of the work and go for a stadium. You know the purpose of the building, you know how you will use it, you know the needs it has to cover, and all that is left is to determine the technical way to achieve this plan. Software is way more elastic than this and I believe this is why the concept of pattern does not easily transfer from the domain of construction to the one of software development. In a way, forcing these patterns on the software world is in itself like using a Golden Hammer: they don't fit exactly. Moreover, the word of the day in software is Agile, the management technique that assumes right from the word go that there will be change in the plans for the project and that the team must be ready for it. I submit that the current state of software patterns is too rigid, too inflexible, based on the assumption that there is a plan and that it will not change. Or worse, based on the assumption that there is no plan and that anything must be enabled by the software architecture. They either force you to lose flexibility or add so much of it that it makes the end product bloated and unproductive.

The answer is somewhere in the middle and that middle is different from project to project. No matter how well software patterns are designed and applied, in the end they must conform (or end up hindering) the strategic plans for the software project, which are, in my view, the true bottleneck of software development. As a domain specific language between software architects, software patterns are good, but one has to acknowledge the extreme minority of architects in software. Even in that small guild I don't find there are a lot of discussions where the lingo of software patterns is used much. The complex patterns are invalidated by the many "flavours" that unavoidably appear to handle that complexity, while the simple patterns are invalidated by components that encapsulate them and relieve the developer from having to implement them. My conclusion is that the importance of software patterns is being exaggerated. Little more than a miniatlas of common software practices, it serves as a pretty picture book, rather than an instrument that promotes understanding the field of software development.

Saturday, 2 March 2013

Eve no Jikan (Time of Eve)

This 6 episode long anime can by all rights be considered a single movie segmented into 6 small stories. The story is not extraordinary and the animation not great, but the quiet way it is told makes it nostalgic and generates a lot of kind feelings. What's it about? There are these two (highschool, of course) guys in a not far away future where robots and androids are common place. Some of them are advanced enough to obey complex commands and to look human and they all follow the Three Rules of Robotics, as coined by Asimov. One of the guys notices in the logs of his house android that it goes out from the house, occasionally, to places where it hasn't been instructed to go. The two friends follow the logs and find a weird bar where androids and humans must obey a single rule: all customers are to treat each other the same and not discriminate against robots. This makes the two understand the complex feelings that robots can have and discover their own difficulty in relating to said robots under the weight of society expectations. There is even an "Ethics Committee" that hates robots and wants to limit the interactions between man and machine, but just before they make any move the show ends.

animator and animation, next to eachother Eve no Jikan was an interesting concept, something that reminded me of some of the quieter episodes from Ghost in the Machine or Denou Coil, which says a lot considering that GiTS is my favourite anime ever. However, the sixth episode felt like one of the others and then it suddenly says the story is finished, so its production must have ended prematurely. Maybe with a little more backing, it could have become a cult anime, as well.

Wednesday, 27 February 2013

A Memory of Light (Wheel of Time 14 and final) by Brandon Sanderson

Book cover Finally, it is all over! The Dark One is defeated and all the character stories have come to an end. Funny enough, having Brandon Sanderson write the last two books made me want to read more. You may have noticed that in the title I give no credit to Robert Jordan; I know it's his story and that he left a lot of notes on how the book would continue before he died, but Sanderson has made it a lot better and it feels a waste to end it just when it got good.

The last book of the Wheel of Time saga, A Memory of Light, continues where Towers of Midnight left off, pits everyone against everyone and ends all threads. The battle of the end is epic and, except some slight miscalculations, is pretty much consistent with the other books. No Nynaeve braid pulling or needless spanking or otherwise humiliating women in this one, instead a lot of characters blooming from the dried up husks that they were becoming in the last Jordan books. As before, I loved Mat's character, but also Perrin is now a lot more involved, intrigues abound, people die (even important ones) and the ending is... let us say intriguing. One may still hope some offshoots of the story. There were some unexplained or otherwise inconclusive bits. For example there is a scene where Mat sends a lot of villagers to die protecting a river, then, when it matters most, the same villagers return through a gateway. I have no idea what that was about. Also there was a little bit of a story with some soldiers that had all their metal turned to something squishy. It just went and gone without much continuation. Then some ideas of the battle seem brilliant at the end of it, but not used during it, making the entire "Mat's strategical genius" idea a bit flimsy. Also, Demandred almost kicked his ass (and a lot of others as well) before he got killed. If there is something that felt a bit off, it was the women. Robert Jordan was obsessed with the women and he often wrote the story from their point of view. Sanderson is clearly a man's man :) Women had pretty small roles and little introspection.

Bottom line: a fourteen book saga is a lot to read. As much it pains me that it is over, it makes me even more glad that it is over. Sometime you just have to learn to let it go. The quality of the writing is very good and I dare say that this is probably the best book of them all, which makes it a fitting finale. It is also very long, the third in length from the entire series, at approximately 360000 words. If you have read The Wheel of Time so far, there is absolutely no reason to not read the last book. If you haven't started to read the series, you might want to think it over if you want to spend so much time doing it, but I don't think you will regret it. And lastly, if you have started to read it and then abandoned it for whatever reason, the last two books are a level higher than the rest of them and should provide motivation to carry on.

Oh, and you if you wonder if I am going to read the prequel and the companion books: no, I won't! If you do, though, please make the effort to comment on one of the Wheel of Time posts. Thank you!

Monday, 18 February 2013

Macross Frontier, a decent anime, but fraught with cliché Japanese themes

Series poster Macross Frontier is a 2008 anime series of 25 episodes set in the Macross universe, itself 25 years old at the time. Humanity is expanding in the galaxy using huge self contained colony fleets that are defended by the ubiquitous Mecha humanoid robots. Their enemies, a strange race of space bugs that seem to have no mind of their own, but whose method of communication or reason for doing anything is a mystery. Enter Alto, a beautiful guy - and when I say beautiful I mean it, as he is cute as a girl and many times in the series people address him as one, to his chagrin - that wants to be a pilot. He accidentally joins up with an elite piloting force and there the story seems to become interesting: space battles, interesting aliens, amazing tech, even political machinations. But wait! In Japan there has to be more. And there is! Alto is 17 years old, that means he is also in high school. Two of his pilot buddies are his colleagues. Then there is this galactic idol pop star singer that is very beautiful and somehow falls for Alto and subsequently becomes a student in the same class! And there is another girl who also wants to be a singer and she becomes one rivalling the first, only to fall for Alto and... join the same high school class! And all the time they need to act on their feelings, without actually expressing them in an articulate way, and trying to protect one thing or the other. And if you thought the two singers are just a filler device, not at all connected to the main story, you are wrong. The singing of one of them seems to affect the alien bugs!

To quote a friend, WTF is wrong with the Japanese? Why would you mix space battles with j-pop and high school? Why hasn't there appeared a service that strips the annoying 2 minute singing at the beginning and then at the end of every episode and lets you watch everything start to end? It would be perfect if it would also remove in separate streams the fighting plus the sci-fi from the ridiculous fascination with high school puppy love!

To conclude, it wasn't great by any means, and the insistence of showing every space battle in the context of a pop song was really annoying. The story was OK, although I could spoil it for you in about 5 minutes. The animation was standard, I didn't think there were any issues with it. If you love the kind of "oh, oh, poor me, I am in a love triangle and can't get out" story, this is the one for you. The sci-fi was, really, taking the backseat in this one. I have to admit, though, that the highschool theme was not exaggerated much, nor was it absurd to the point of annoyance like in Elfen Lied, for example.

Friday, 15 February 2013

No more mobile template

Due to the fact that Blogger thinks an iPad Safari browser is a mobile device and needs optimization of the blog template in order to fit the screen and the meagre computation resources and that there is no way to customize the way "mobileization" is done, I've decided to remove the mobile template from the blog. Please do let me know if this is an issue, so I could try to find a solution for it, but in the meanwhile I will just disable it.

Beautiful chess puzzle

Yes, yet another chess blog post. Don't worry, soon there will be a ton of rants about the programming world, just wait a bit.

This puzzle is from Chess Tactics for Champions, by four times women chess champion Susan Polgar. Here is a review of the book, much better than I could do it. So, on to the puzzle:

White to move.


[SetUp "1"]
[FEN "1k1r4/pP2q3/8/Q5pP/5bP1/5P1K/P1R5/8 w - - 0 1"]
1. Rc8+ Rxc8 2. Qxa7+ Kxa7 3. bxc8=N+ *