I wrote a bunch of posts regarding my past employment, but said nothing about the new one. In fact, I was a bit superstitious, didn't want to jinx what was going to happen. Now it shall all be revealed! Well, long story short I will be relocating to Italy (re-boot, get it?)and working at the European Commission's Joint Research Centre in Ispra. That's it, cheers!

Just kidding. How does one get to, first, have the opportunity in the first place and, second, actually decide to go? For the first point I would have to say pure blind luck. I happen to have a LinkedIn profile that shows a lot of experience in the field of Microsoft .NET and so they called me, since they needed someone like that, and I turned out not to be a complete wacko (only a partial one) at the interview. The second point is actually the most complicated. Most Romanian developers of my experience are rooted, so to speak. Married, many with children and obligations, relatives and social circles, they often find it too hard or completely impossible to relocate to another country. Luckily for me, I have no children, I don't have any social circles to talk about, I will probably talk to and visit my relatives just as much from Italy as from Bucharest and I have one of the most understanding wives one could want. She stays behind, at least temporarily, to mind the fort, continue her own career and take care of the dog, while I go on to the adventure of my lifetime.

I may be exaggerating, but I will check out several experiences that I have never had before:
  • living alone - I know it sounds strange, but in 36 years I have never lived alone. I was either living with my parents, with my business partner or with a girlfriend or wife
  • living in another country - I have worked in Italy before, a few disparate weeks, but never lived in another country for long enough to understand the local culture and experience the way locals see the world
  • living in a small town - Ispra is a 5000 people enclave, so it's not even a small town, more of a village
  • working for the European Commission or some other governmental organization like that - I am afraid of the bureaucracy, frankly, I hope there is some sort of separation between devs and that sort of thing
  • working with actual new technologies - I thought there are some people that inflate their resumes in order to get jobs they don't really deserve, but I never imagined that most companies would misrepresent themselves to appear more attractive as a workplace. I've heard a lot about what great new project I will be working on, only to be relegated to some legacy crap that no manager wants to rewrite even when it's bankrupting their company. Oh, I really hope the JRC people didn't bullshit me about an ASP.Net MVC 4.5 web site with Web API's, AngularJS and Google Maps.
  • staying separated from my wife, but not being mad at each other - not that I have ever stayed separated from her while being angry, but still. Our relationship started as a long distance one, since we were living in different cities, and only after a year we moved in together. I am curious as to how this reversal will affect us. I believe it will strengthen our bond, but there are alternative scenarios.
  • working and living in a truly multicultural environment - the place will have Italian, French, German, Swiss, Romanian and who know what many other types of people. I will have the opportunity to relearn all the European languages, express myself in them, learn about other cultures from the horse's mouth, so to speak.

All in all, this is the gist of it. You can see that I am excited enough (setting the stage for future disappointment). My plane leaves Bucharest next Friday, on the , while actual work begins on the . Hopefully this will generate a deluge of technical blog posts that will compensate the lack experienced in the last two years.

and has 0 comments
In a recent news article I've read that Bradley Manning has received a 35 years prison sentence. I can't even begin to understand how to feel about this. On one hand, he was a member of an organisation that specifically prohibited what he has done. On the other hand, the same organisation was swearing to anyone having ears that it doesn't do what Manning revealed they did. The multiple levels of "law" that are apparent both in this case and the Edward Snowden case are sure to make even jurists scratch their heads. In cases where some guy is arrested based on a secret law, incarcerated and pretty much tortured in a secret prison then sentenced by a secret court, it all seems like an alternate reality. We've had people close their web businesses, then declaring they can't discuss why they did it because it would be illegal. Please feel free to read the links above, although that may well put you in a special category for US surveillance, for all I know. (OK, let's not be mean!)

The thing with Manning, though, is that he was a mere private, a kid. By the accounts revealed in the court, he was the product of an alcoholic mother and had gender identity issues, as well. He revealed some information (I will be discussing that in a moment), then he was pretty much caught and incarcerated. Do pay attention to the last paragraphs of the Ars Technica article on his sentencing:
During one period of his pretrial incarceration, Manning's clothing was confiscated every night, and he was then forced to stand for inspection by guards while naked. He was also prevented from sleeping between 5am and 8pm and not allowed to have sheets on his bed.
. Then they sentence to guy to 35 years in prison, maybe he can get out in 8 if he "behaves well". This is the story of a screwed up kid with a conscience that now gets even more screwed up. Of course, there is the possibility that he gets out of prison, writes a book, sells the movie rights and becomes a rich hero of the masses...

Then there is the extent of the information he leaked, information that was then published by another entity, Wikileaks, which at least in theory should have restricted publishing any material that exposed specific people to harm. Wikileaks continues to do well, just as the news outlets that published information like this from Manning and Snowden (arguably harassed by governments, but still in business), which for me makes no sense, since that should mean the publishing of those articles is legal. So the only illegal thing these guys did was give information that is legal to publish to publishing entities. It is hard to see this as anything else than punishing people for telling on you. I see it like a bad teacher beating children who told on him to their parents, bureaucratic institutions that are flexing their muscles when being confronted with even the idea of oversight. Can anyone explain to me how this is different?

Now, obviously the upbringing and psychology of the guy leaking government information shouldn't even be on the table here. What we should be discussing is what is reported in those leaks and what the effect on the people (and their serving government) is. However, that is way over my head. I can read reports of torture of an American private by Americans and be flabbergasted, I can feel disgust when watching the video of a helicopter pilot shooting dead a dozen people kilometres away because he thinks he sees an RPG, and they are actually reporters with a camera, but there are a lot of documents that were leaked, from foreign diplomacy and espionage on allies to reports of wrongdoings by army and intelligence entities. I can't claim to know enough about this stuff to make a statement, but as far as I can see, nobody really appears to know enough about this. It seems like the little government oversight we expect as people was missing to begin with. And that is what worries me. Stop making examples out of people who come forward with untoward things because you can't adapt to the reality of the people who hired you!

and has 1 comment
This is the second book about LSD that I read, after The Center of the Cyclone: An Autobiography of Inner Space, by John C. Lilly and it is also the autobiography of a scientist, but unlike Lilly, who seemed to have gone bonkers while writing his book, Hoffman maintains a scientific attitude about the whole thing, objective when needed, subjective in more personal chapters that he clearly delimits from the others. LSD: My Problem Child is the story of the invention of the drug, straight from its inventor, Albert Hoffman, a then chemist for pharma company Sandoz. In a nutshell I loved the book, the style, the author's integrity and the fine ironies that he slips from time to time. As you can see in the link above, the book is already free online so there is no real reason not to read it.

Hoffman explains in the book how, while researching the chemical properties of the ergot and attempting to potentate substances already discovered to have positive medical effects, he created Lysergic acid diethylamide. The substance had no visible effects on the test animals so he went on testing other substances. Five years it took for Hoffman to return to LSD in order to further understand its function. Usually a very thorough chemist, he touched some of the substance and only then the effect was understood. This simple anecdote hints on how many interesting chemicals we might have gone unnoticed, even after someone created them.

The method by which chemists work to find useful chemicals in nature is also very interesting. They take a plant, let's say, that has a specific effect that is testable via animal experiments. They isolate the active substance that produces that effect. Then they attempt to recreate the substance synthetically. After doing that, they test all kinds of related substances that they create via simple chemical operations from the original substance. This often leads to more powerful drugs or even completely new effects. Quoting from the book: "Of the approximately 20,000 new substances that are produced annually in the pharmaceutical-chemical research laboratories of the world, the overwhelming majority are modification products of proportionally few types of active compounds. The discovery of a really new type of active substance - new with regard to chemical structure and pharmacological effect - is a rare stroke of luck."

It took another five to ten years for LSD to reach mainstream. Until then psychologists and psychiatrists were using it to more effectively reach the patients and LSD was considered a wonder-drug. Sandoz was extremely happy with Hoffman's discovery. But then it became a subject of abuse. A counterculture of recreational use for LSD led to an institutional backlash that made the drug illegal, even if it was not addictive, not toxic and one could not overdose accidentally. However, it was essential to take it in a controlled environment, with someone to act as a guide and safety net. Many people did not do this and hurt themselves or others or had psychotic breaks. To get someone out of an LSD trip was simple: either guide them via calm words or (the technical solution) give them a calmer agent like cloropromazine which immediately cuts off the "high".

How come the black market is filled with toxic, addictive, nasty drugs, but someone considers LSD to be a problem? Anyway, I am quoting again from the book, a little bit that talked about experiments on primates, but one that I took to be a fine ironic jab at society's reaction to the drug: "A caged community of chimpanzees reacts very sensitively if a member of the tribe has received LSD. Even though no changes appear in this single animal, the whole cage gets in an uproar because the LSD chimpanzee no longer observes the laws of its finely coordinated hierarchic tribal order."

What I liked about the book very much was how thoroughly and objectively Hoffman researched LSD and other psychedelics (he also identified and separated psilocybin, another psychoactive substance present in "magic mushrooms" used by native Americans in religious rituals). He not once preached the recreational use of the drugs, deplored the misuse of these kinds of substances, but he also kept a strong position that they do no harm and can have amazing effects when used for medical purposes and the correct way. Far from being a "druggie" book, this is one of those autobiographies that you can't let down from your hands until finishing reading it. I recommend it wholeheartedly.

and has 0 comments
The sixth book in the Dexter series is not really better than the others. I would have thought that five rehearsals would have resulted in a slightly better book, but instead it seems as if Jeff Lindsay is slowly losing the inspiration he started with book after book. In Double Dexter, the police is impossibly incompetent and this time even Dexter falls into the same category. It takes him chapters to do and act like he was supposed to and a lot later than even an average reader would see it coming. The opponent is inconsistent and not really a challenge, if it weren't for Dexter's apparent drastic drop in IQ.

If you have not read any of the books so far and maybe just watched the CBS series, be warned that they are completely different beasts. The show writing is clearly better and the plots are divergent to the point of being different stories altogether, but with the same character. Not that this eighth and final season is great writing anymore, but that's a different subject altogether.

Bottom line: Having read Double Dexter, I cannot say that I hated it, I really like the character, but I think Lindsay is bored with Dexter. Maybe he should just invent someone else and start writing better books.

and has 0 comments
I was watching this spy movie where a general was talking about "turning" all kinds of nationalities to their cause. And it got me thinking: what is the real difference between them? Nationalities, I mean. When guys like Snowden or Manning spill out secrets to the press, what are they betraying, and to whom? When a spy sells the secrets of his country to other spies, from another country, what is really at stake?

The problem, as I see it, are borders. I've seen borders in my life. I may leave my city block and move towards the poorer ones. There is a border there, not physical, but social. Same applies to when I leave town and go into the country. You never know exactly when the city ends and the country begins, but the border exists. I've also passed between country borders. Spent a lot more time and money, of course, in order to do that - one has to have the proper papers and documents and IDs - but I've never seen a smaller difference between the people from one side and the other as I have seen with national borders. Of course, one country may be a lot richer overall than the other. See Mexico and the US, for example, as a brutal example, but everywhere I went I saw people from one side infiltrated, working or visiting, the other side. When you take those people into account, the border blurs.

Is Snowden more of an American than he is a conscientious member of the human race? He says no. Is a British spy selling secrets to the Russians more of a British than he is a spy? I would bet no. At least he doesn't feel that way, for sure. Who is the owner of secrets spilled? The country, one says... What does that mean? The land? The buildings? The people? Are the people really so different as to need those secrets? Are the borders between nations really necessary?

I really didn't mean to make this a long post. My point, as always rather unclear, is that I am more alike to software developers in Russia and the US than I am with a lot of my countrymen. The nationality of a person doesn't really matter except to the people that manage that nationality. They are the one that put those borders there in the first place and they are the ones that consider they have ownership of a country's secrets. Normal people usually don't give a damn. Am I very different from a Muslim terrorist? Yes I am, but that difference has been nurtured and created by these border managers. I do have to wonder, if those borders weren't there, would the terrorist still exist?

What is the modern purpose of borders anymore? I have no idea, frankly. Why can't I just move around wherever I want, speak the language I like, settle where I have space and work and, maybe, protect the secret of the people that employ me, rather than of those that are employed by me - like a government. What would happen if borders would suddenly be abolished, everywhere? I just don't know. It seems to me a lot of noise, about nothing.

and has 0 comments
Old Man's War is the first book in a space opera series that spans five books (at least at the moment). People recommend it highly and I do have to admit that it is well written, with an easy going style that is also well read. John Scalzi is not trying to create the perfect world, with details that always make sense and with crushing emotional depth, though. The book is something that you can finish in a day or two, with no sleep lost on what the characters are going to do next. For a while it did remind me of the excellent, if repetitive, Seafort Saga, by David Feintuch, but while that series felt dated because it was inspired by the British navy and was written in 1994, Old Man's War was written in 2005 and had no real reason to, but it did. If you haven't read Seafort's Saga, especially Fisherman's Hope, the fourth book, I would recommend it over this.

What is it Old Man's War about? Well, in the future, old people from Earth are joining the army when they are close to death because the CDF, or Colonial Defence Force, has the technology to rejuvenate them in exchange for a limited conscription. I won't spoil for you the exact method, but let's just say that it has a lot of logical problems that are compounded by the concept of the Ghost Brigades. So you have this main character, a funny old fart that joins at 75. One can assume that in the future 75 old people are still humorous and reasonably mentally and physically fit, as opposed to now, but even so, Scalzi was 36 when the wrote the book. What made him feel like he could pull off a character twice his age, with all the wisdom and particularities one gathers at that age? In my opinion, he rather failed, as John (why do people use John as their leads in books and scripts? Is the name really that common in the US? I have to admit that Lost ruined that name for me. Every time I hear about a guy named John I hear the phony people in Lost intone it with grave meaning while they're saying absolutely nothing important. Arrgghh! Anyway...) comes off closer to the writer's age (and having the same name, too). I might even have an issue with the title, since John is an old man for a third of this first book and then he's young and fit.

The rest of the book is about how he intelligently and valiantly rises from the rank of corporal (which he earned in training in an equally smart way) to captain in a few months and has a series of unlikely events happening to him (and here I am not making a pun of their explanation of "skipping", either). He makes connections to some people, which the writer attempts to infuse with meaning, but somehow fails, as when some died I didn't feel anything. Scalzi gets it right towards the end of the book, but then the book ends, and ends in a less satisfactory manner than I would have expected.

To summarize: I will probably read the next books to see what happens. However, it does seem a bit too light, too rational (in writing style), to make an impact. I do feel that John Scalzi has a lot of potential as a writer, but that somehow he misses the emotional component necessary for a book to "click" with the reader. On the other hand, I've seen a lot of rather failed first books that only led to the writer blossoming in the following publications. I do hope that's the case here. The fact that Paramount Pictures optioned the book in 2011 only shows it is rather shallow, as the really deep ones never make it to film. This doesn't mean I didn't have fun reading it, but most of the time I waited for something to happen. I felt that everything was a setup for something grand. When the book ended I was a bit shocked, as I thought I was in the middle of the story at least and still waiting for that big thing to occur. It's not a hard sci-fi book, it's not a personally jarring one and it is not a military heavy story. The obvious bias towards the human hero makes it all feel surreal.

and has 1 comment
Update 1 June 2014: Somewhere in the blog post I recommended Truecrypt. Strange events happened today when suddenly, in the wake of a crowdfunded security audit, the Truecrypt page changed to recommend switching to something else, mainly Microsoft's BitLocker, published a version that only decrypts and does not allow creating encrypted disks and basically went "poof!". It is noteworthy that the developers of the encryption tool were and have always been anonymous. Strange indeed. Read more here.

Update 24 Aug 2013: Just forget what I said about having a secure and anonymous Windows 8 computer. Read this link here: LEAKED: German Government Warns Key Entities Not To Use Windows 8 – Links The NSA.

I wanted to see how Windows 8 looked and felt, as I didn't really see or try it beyond looking from afar at those obnoxious icon things they called tiles. Also, as a prerequisite that I added myself, I wanted to be as anonymous as possible, using new emails that have no connection with my previous names or nicknames and hiding as much as possible about my identity. So far, I can only describe the experience as creepy.

But let's start with the beginning, as they say. I plugged a Windows 8.1 Preview bootable USB stick in a laptop and started the machine, after previously making sure it could only boot from USB devices. On a black screen a little fish appeared, a strange little creature that blew air bubbles, then a funny looking 'waiting' logo that looked like beads trying to catch other in a circle. It entered a pretty standard interface that allowed me to upgrade or install a new version of Windows. I took the latter, as I wanted a clean, anonymous install. I've reconfigured the partitions, formatted them, but, to my surprise, a warning appeared informing me I could not install Windows on the newly created partitions, as the computer could not boot from them. This was all related to the settings in BIOS that allowed only USB devices to boot. It was an unexpected surprise, both pleasant (they thought about the drive not being bootable) and unpleasant (I had to restart the laptop, add the hard drive to the boot list and start over.

Starting over I had to immediately connect my computer to the Internet. It was not mandatory, but I didn't really have an easy alternative. As a warning, connecting the machine to the Internet gives away your location (especially if it's your broandband IP which is contractually linked to your name and address) and probably pins it to that location. In truth what I should have done is use some sort of anonymous Internet source, like via GPRS from a disposable card. The best option that I can think of is to create a TOR router and use it exclusively with this machine. Now, using a cellular Internet source is not a grand idea, either, as to use it they need to triangulate your position anyway, but we're already getting into more details than needed. After all, this is all a test for now and the blog entry is mostly about Windows 8.

Choosing a colour theme was a bit annoying. That colour theme defined at least the background colour of my desktop. I had a lot of colours to choose from, but they were all overly bright. The best one (which was my favourite anyway) was chosen by default, which forced me to choose another. The only other option that was remotely acceptable was grey, but a bright version of grey. I wanted black, but there was no option for that.

Choosing a username was the real creeper. The username was actually an email. I chose to create a new Windows account, but this would not actually create a new email, just use the email provided by you to associate it with Microsoft. I had to give them my email, my password, my phone number, a security question, my alternate email. I refused to enter my phone number, but they forced it anyway, as they needed two ways of recovering my password and I didn't want to enter an alternate email, so I entered a bogus phone number. The password was the funniest part. I entered a password, one that would be safe from cracking, only to be met with an alert "Your password cannot have more than 16 characters". Are they trying to make passwords easy to crack? Apparently (with emphasis on that word) they don't, as they suggest or require all the other "standard" solutions for a safe password: upper and lowercase letters, digits, special characters. As a famous Xkcd comic shows, that's just stupid.

Just another detour towards personal security and anonymity: giving them an email as the account name normally means you already had that email. I entered a bogus one, but eventually I would have to create it. Any access to that email will be logged somewhere. The email that you use (and by extension the Microsoft account) should be accessed only from this machine and only when the network is secured (via TOR or other mechanisms), otherwise connecting you with the laptop and finding you will be trivial. Obviously the phone number should not be real, nor the alternate email. Also, there were the options that you could Customize. Even if I left all the options as suggested, there were a lot of them set to true by default that did things like: send files to Microsoft in case of crash, remember searches and location in order to optimize Bing searches, send to Microsoft browsing history in order to preload pages in Internet Explorer, etc. Spooky, indeed.

After all this, the screen turned grey (obviously) and a large text appeared slowly: "Hi". Then a long pause, then the text was replaced just as slowly by "We are setting things up for you" or something to that effect. During the "set up" stage, the background cycles the hue from colour to colour. This was by far the creepiest part of the setup. Perhaps I've seen to many horror movies, or perhaps the Windows startup designer has, but I half expected a screeching sound and something jumping from the screen, or maybe a quiet voice coming from a big red eye calling me Dave or something.

To summarize the security bit (of which I am not an expert, mind you): the setup was creepy enough, but after being prepared a plan should be more clear. The most fragile part of the anonymising process is the Internet, actually. No matter how you do it, it identifies you and your location rather directly. There is something called TOR to save you, but to be certain your software always uses it for Internet access, a true external hardware router should be set (there are several solutions, the one that I like best - without actually trying it - is the Raspberry PI version). Even so, anything you do from Windows 8 will likely be associated with the Microsoft account, so the first thing you do after setup is use some sort of encryption on your drive (TrueCrypt sounds like it has both the required features and spirit), then make sure you only use this laptop for things that have nothing to do with your real life. You don't send yourself emails, you don't visit your own blog, you don't lookup restaurants near your location, talk to friends who know who you are on the messenger, or anything that has to do with your real life.

All that pretty much sounds like having a dedicated laptop for a completely different part of your life; a bit schizoid. But consider what that means: there is almost no one on this planet that cannot be traced or located on the Internet. The technology is more and more connected and there are numerous ways to circumvent the meagre security measures that are put in place for most software. Even TOR is not perfectly safe and besides, it only proxies TCP packets, so it's not a full replacement. So: Human nature, the connected nature of operating systems and software these days, numerous vulnerabilities that can be exploited by both evil hackers and governments, they all conspire to make you visible on the Internet. You are not "safe" on the Internet because it provides you with anonymity, but because no one cares enough to get to you.

I have very fond memories of the games Star Control and Star Control 2, played on my PC when I was but a wee boy. They were DOS games released in and , respectively, and were absolutely marvellous: large universes, with many star systems, each of them with planets and moons; many alien species which were strange and funny and obnoxious; storylines that were both absurd and very captivating. I had a great time.

I want to open a parenthesis here and talk about the quality of games back then. Click here to hide the following rant, if you are not in the mood for it. I really have no idea how the PC game market was working in the US, but here in Romania, there were very few PCs, no Internet and the distribution of games (all pirated) was done via friends who would recommend and share what they thought was great. There were no walkthroughs, rarely any printed maps or special instructions (since they were not original games) and the only way to finish up a game was to actually play it. Sometimes it got frustrating enough that after hours of trying to find something, you would call friends and ask them what they did. I can only imagine that even in a country were they were a lot more computers and games were bought, rather than copied, the game play situation was similar. In other words, the relationship to the game played was personal: someone that you know and respect came to you and recommended the game. This was the only thing that made you play it other than seeing the cover in some window and feeling like you have to try it. Also, not having any Internet (or very little on it), you would not have access to many reviews and neither to game updates, if something was wrong in the game. And you also have to think of the state of affairs in software programming: every software firm was basically a gang of enthusiasts inventing and trying their own way in which to build software.

Yet, a lot of the games back then were great. Not all, maybe not most, but certainly the ones reaching me through "the grapevine", probably because the bad ones would be filtered away. One has to ask oneself how games back then required a number of hours of play orders of magnitude larger than present ones. How their stories had the complexity of movie scripts (often a lot better) and so much intricacies like alternate game modes, humour and so on. And the answer is, of course, the Internet. Once the gameplay is too complex, players swarm to online walkthroughs, often in video format, to tell them what to do. Atmospheric gameplay where one has to walk for hours to find something are considered antique and wasteful of time. And of course, if they are not social enough, they aren't even worth playing. The advertising is done via the web, with "stars" or other such whimsical method of rating a game, often resulting in simplistic orgies of graphical design with repetitive action as the only thing to do, humour provided by caricaturesque icons of birds or zombies.

That being said, as a software developer myself, I played The Ur-Quan Masters for only two days, using said walkthroughs and being nagged by the wife and dog for not spending time with them. I also had moments where I cursed the necessity to move towards a planet or a star by actually waiting until the ship got there, and often by manually controlling the craft to reach there. Also very annoying was to manually look for star names, until I downloaded the map from ... the Internet. So I am not just a geezer that hates the new, all melancholic about the past; the present has its boons... few as they are. Anyway, to the game!


In , ten years after its release, the makers of Star Control 2 made released the source of the game as open source. Maybe this should be heeded by other game and software makers: create a copyright licence that voids itself ten years after the release of the software. The world would be a better place! Anyway, some people decided to port that to different platforms, including Windows. Now I know that DOS and Windows are made by the same company and that the port sounds easy, but you should look at the bugs for this port like 'Not thread safe' or 'Not safe for 64 bits' and so on.

Accidentally I found out about this port for Star Control 2, called The Ur-Quan Masters. Why was the name changed? Because even as the source code was free to use, the name was copyrighted. Weird, right? I installed the latest version (0.7.0.1 - you gotta love these open source versions that tend to reach 1.0, but never do - a bunch of perfectionists, all of them :-) ) and I couldn't start it. It threw an error no matter what I did. In their defence, I was trying to play it on an Athlon 2500+ processor running Windows XP (I know, geezer!). But I did manage to install and run version 0.6.2, which seems to be working on my machine. This is part of the motivation for writing this post, since I found no one on the Internet complaining about the same problem as me. I did try all the compatibility modes for it, BTW, and it didn't work. Maybe I should have tried running in Windows 98 (yes, I still have that installed as a secondary OS).

You see, the plot is that you are the descendant of an exploration mission that was never picked up from the planet they were supposed to investigate. They did find an ancient alien starship factory and managed to build just the skeleton of a ship to send you back to Earth to see what had happened. Getting there you find the Earth encased in an impenetrable shield with an orbiting station around it. The crew of the station tell you the story: alien race called the Ur-Quan came for enslaving all sentient races, won the war and gave earthlings two choices (well, actually three, if you consider total annihilation, but let's not get technical): join them as their slaves or relocate all resources to Earth and be trapped under the slave shield. Humans chose the latter. Now, your mission is to find alien races, make them join you in defeating the Ur-Quan and ... well, defeat the Ur-Quan. You have to do that by exploring amongst hundreds of stars, each with their own solar system of planets and moons. You get fuel and extra modules for your ship at the human station, but you need to bring materials (minerals) in order to get them. Minerals are gathered via manual missions to the surface of each planet and moon, while fires, lightning, earthquakes and alien lifeforms are attacking your landers. Aliens are diverse and most very funny: a cowardly race that speak like Italians, an evil spider race, a sexy race called the Syreen, warrior type race (that is weak and stupid), automatic probes that declare their peaceful intentions then attack you, mean spirited aliens that consider all harm done to you as a practical joke and so on. There is even an Emo race, although the term became popular a long time after the release of the game.

Oh, the memories! The vibrating music originally thought for PC speaker or maybe AdLib cards brought back feelings of old. The witty dialogues and the immersive nature of the game made me relive a lot of past pleasures. Unfortunately, as I was saying in the rant above, there was a lot of immersion that I really didn't want, like waiting for minutes to get from a star to another, then manually navigate to reach a planet or moon. I couldn't help thinking as a software developer and consider how I would have done the game - of course, online, in HTML5 and Javascript, and actually it wouldn't be so hard. Playing the game I realised how different the perception of time was then compared to now. It was obscene how much time I had back then, and completely devoid of responsibilities, too.

Well, because of the time constraints I quickly hacked the game, added infinite money and proceeded to finish the game using a map and a walkthrough. I also was unable to finish the game due to two bugs: one where the Spathi should have given me an Umgah Caster and did not, and another where the Mycon were supposed to go to Organon and did not. Even so, it took me two full days, about 16 hours of gameplay. Anyway, I was close to the finish and I did watch the ending on YouTube (how nouveau of me! :-( ) For the people that loved playing this game in the past, maybe you should try it again. Old memories often bring complexity to present perspective. And for those who did not know of this game until this post, maybe you should try it, see what people of old considered a good game, even if they played it on 33Mhz 386 PCs with 4MB of RAM and 120MB hard drives.

Also, there is another attempt for a port to Windows from the same source called Project 6014, for some reason. I think it stalled, but maybe it brings some surprises to the table.

I leave you with a YouTube video gameplay by some guy (frankly the first I did find) if you are unwilling to take the trek yourself.

[youtube:KOndm_1w1ws]

I am a complete fan of the Ghost in the Shell franchise. For those unfortunate enough to not know what that is, it is a series of manga and anime stories that describe a near future where integration with machines is the order of the day, giving rise to cyborg bodies, mind hackers and all that stuff. It is also a police procedural, where the heroes are an independent force designed to counter cyber threats. It is also an espionage thriller, since many of the actions in the stories are not linear, but have many political implications and intricate plots. But what I thought was better than a beautiful and detailed sci-fi world with deep characterization and complex storylines is the exploration of the human soul and mind in a background that is mechanistic and science squeaky clean. To manage to do this repeatedly in manga, films and anime series is truly wonderful.

For me it all started with the movie. With impressive music by Kenji Kawai and a complexity and beauty and care for detail that I had never seen before (and rarely since), Ghost in the Shell blew my mind. Then there was the Ghost in the Shell: Stand Alone Complex, a two season series that went a little more toward the police procedural, but overall was just as wonderful as the film. And then the second film: Innocence. And now they made Ghost in the Shell: Arise, a four part OVA series, prequel to the film. Having seen the first one hour part, I can say I am very pleased and can't wait to see the entire series. It details the roots of major Kusanagi and what are the roots of her team. Very nice indeed. The only thing that I miss is Kenji Kawai's music.

I leave you with the trailer for the series and my recommendation to see all of the Ghost in the Shell animes, even the Tachicoma OVAs :)



Update September 2014: I've watched the entire series. The episodes are almost stand alone and totally worth watching. I liked the fourth one most, as it was clearly created to made the connection with the film and series. I loved the small tips of the hat to hallmark scenes in the film: the cloaked jump from a skyscraper, the destruction of the cyber hands while pulling on the lid of a battle tank and so on. Does that mean that a new series and/or film will be created? I certainly hope so. My only problem with the new OVA is that the music of Cornelius is not even close to the haunting quality of Kenji Kawai's.

and has 0 comments
Having seen the film, I decided to read the book. Now I can understand why so many people said the film was not like the movie, but also why the film itself seemed so episodic. In a nutshell, World War Z is a collection of more than 50 interviews of witness accounts about a fictional war against the zombies. This makes the only connections between the book and the film be the zombies and the episodic nature of it. In rest the stories are different, the way zombies behave, the take on how humans react and of course the shitty ending.

Now, about the book... It was easy to read, mostly because I could just take the PDA in my hand and read one of those mini stories in 10 minutes and then do whatever I wanted to do. Some of them were really great, too, but after reading the book I think I can safely say that it wasn't about zombies at all. Instead it was about the way people live now and the war was just a prop to make us see things clearly from a different perspective. Of course, some things never change: the great American spirit, the Russian brutality, the narrowmindedness of Asians and so many other clichés. Not that they are not believable, but it so shows that the author is American, even when he makes fun of his own country's flaws. Anyway, I encourage you to see the book as social commentary rather than a zombie or a horror book. That is also because the threat of "regular" zombies - you know, slow and dumb - can't really be that scary. So there are a lot of technical flaws with the zombies in the book. The situations described show the difficulty mainly in fighting millions of city dwellers now turned zombies and the war of attrition that the zombies were actually enabling, since they destroyed everything in their path, yet needed no food or supplies. Also a lot of the stories have this "I don't know why zombies don't die from bombs, water pressure, frosting, etc. I am just a dumb whatever telling a story". At some point it got a little annoying.

The bottom line is that I enjoyed a lot more the personal descriptions of how people live in other countries than the zombies, stories about them or the rather weak speculations on how people would react to their attack. The book was nicely written, but clearly amateurish; it lacked the depth of seasoned writers and had too many "props", like you see in screenplays. No wonder: Max Brooks is the son of Mel Brooks, he lived in the world of movies his entire life and this is only his second book.

and has 0 comments
I've had the opportunity to play these games on the work XBox and I just had to make the blog entry to compare them. The thing is that, even if some corporation wants DC Comics and Mortal Kombat to merge somehow, they are completely different both in concept and audience.

I've been a player of Mortal Kombat since it first appeared on PCs. Me and school friends were spending hours playing it (rather than go learn something useful, obviously). Even then - or maybe it is better said that especially then - it was clear that the game had soul, that someone really spent their time and love to make it. No matter who bought it and what they did to it, Mortal Kombat never completely lost that soul. You see, the game idea is clear: two players face each other in combat, they use different characters who have different abilities and in the end someone wins. Unlike other games that start off neutered by the present socio-political situation in the States, MK started off as brutal and bloody. You could use all kinds of magic and utensils to hit your opponent, chained combos and see lots of blood, but the hallmark of the game was that, in the end, after you have defeated your opponent, you had the opportunity to perform a Fatality, something that was truly gruesome like ripping their heads out with a bit of the spine, or cutting them in two or setting them on fire.

Now you will probably ask why has my sick brain made the connection between a brutal combat game and true love and having a soul. The thing is that the first MK started out with 8 characters, plus some bosses and hidden characters, then MKII has twice as that, and the various incarnations of the game saw up to 65 characters. And yet you will be hard pressed to find any major version where a player could not win with any of the characters against any other if they were good enough. That sense of balance shows the dedication of the developer teams that endured the various corporate transformations of Mortal Kombat.

The ninth version, Mortal Kombat IX, has a lot of characters, over 30, although some are DLC and make little sense in the Mortal Kombat universe, like Freddy Krueger or Kratos. Of course, you had to pay for them. Later on the Komplete Edition of the game had all the characters and all their skins available. Except for a little overpowering of Noob Saibot, MK IX was pretty balanced. The graphics were awesome, truly, and had various fatalities and X-moves - the super move one could execute with three bars of power, which showed anatomical X-ray like details in slow motion like cracked skulls and ribs. The only problem was the controller. I am a PC user and it took a long time to get used with the XBox controller and even more to understand how pressing forward would sometimes make my character jump up and backwards or some other thing like that. I know the controllers at work were pretty messed up, but I swear there had to be something to do with the programming as well. Also, as far as I could see, the game dropped frames. If you moved fast enough, the other player would have difficulty making their special moves, probably because some part of the data or processing was lost. But overall the game was great, the story was nice and the combination of different characters, skins and violence was delicious.

To make the transition easier, I will also mention another game, also featuring Mortal Kombat characters: Mortal Kombat vs. DC Universe. It is an older game, launched in 2009. This weird crossover featured fights between the likes of Raiden and Shang Tsung versus Superman and the Joker. It is the last game made by Midway Games, the creators of Mortal Kombat and the first introduction of the "evil empire": Warner Brothers, who brought with them DC Comics. After that Midway went bankrupt and sold the rights to Mortal Kombat to WB. Mortal Kombat vs. DC Universe had a bit of faux 3D movement, stage transitions (like punching someone through a wall and getting to another stage) and no fatalities. In fact, it had almost no blood, while the "powers" of the MK characters seemed oddly and randomly assigned (Shang Tsung had a punch teleport, Jax had a machine gun, etc). The playability of the game was OKish, with the major problem of in flight hits. One would jump toward an opponent, punch or kick and the character would stop in mid-air and perform the punch or kick there, which made it very unrealistic and static. Also, and that probably made it unpopular in the game room, it was unbalanced. Sonya Blade could kick everybody's ass just by jumping and kicking.

Enter Injustice: Gods Among Us, a game that is also made by NetherRealm Studios, who made Mortal Kombat IX, and also copyrighted by Warner Brothers. NetherRealm is actually what remains of Midway Games plus what remains of WB Games Chicago. In Injustice there are only DC Comics characters, the graphics are really good, a lot of stage interaction, flashy "social" statistics and "ranking", downloadable characters, obviously, and so on. The game play, though, total crap. Now, I may be very biased when it comes to Mortal Kombat type games, given by all love for the original game and concept, and I also understand that this wasn't supposed to be Mortal Kombat in the first place, but in my mind it represents everything that MK developers and players fought against. First, it has violence, but no blood. You get a lot of punches, kicks, explosions, object traumas like things falling on you, being thrown on you or through you (like arrows), only no blood. There are no parts of the body that get broken or smashed. It's like a good old fashioned cowboy brawl that results in someone saying "awwh, shucks!". Then there is the completely weird system of hits and blocks. You have to press Back to defend up and Down or Back-Down to defend down. Combine that with the fact that jumps are mainly vertical and so do not bring you closer to your opponent than walking, and you get a very asymmetrical game play where range fighters have to just run and shoot, while power characters have to dash a lot through bullets to get to their target. Even so, among similar type of characters there are huge differences. I would say that Deathstroke followed by Aquaman are by far the strongest characters, like lame-ass Green Arrow is a weakling. My favourite, Doomsday, had a lot of problems getting to anyone, even if it was supposed to be indestructible and on par with Superman. Well, they were on par in the game, Superman sucked, too. So: no blood, game imbalance and poor playability when there was obviously a lot of effort put into the shiny aspects of the game.

So you see, I had to write this post. Not because I didn't enjoy playing Injustice or because I think it is a bad game, but because it is like taking a cool 80's horror movie and turning into a 2010 remake that scares no one and can be played in cinemas to children. All Flash and no Meat, so to speak. MK is for gamers while DC games are for kids. All we need now is some Mortal Kombat game with parental controls on it. That being said, I can hardly wait Mortal Kombat 10! I hope they don't mess it up completely. As homework, you should try to read on the history of Mortal Kombat and of Midway Games. It's an interesting read. There was a really nice video with the developers of the first Mortal Kombat telling the story of the inception of the game, but I couldn't find it. Instead I leave you with the komplete :) history of the game from MKSecrets:


Today was my last day at the large corporation I was employed at. I quit for several reasons, but mainly because the project I was working on wasn't challenging at all. So one has to wonder: how did I get to be bored at work when only two years ago I was so happy to be hired by one of the best employers in Bucharest to work on an exciting new project? And the answer is : misrepresentation. I've titled the post thus because I sincerely think very few people, if any, wanted to harm me or lie to me or take advantage of me and yet the thing I was hired for changed and shifted until I became annoying for proposing ways of improving the project and asking for work. Let me take you from the beginning and you will see what I mean.

At the end of March 2011 I was working at a medium sized company, a place where there were some interesting projects, but the work ethic and methodology was really lacking. I had been working there for about two years and I was starting to get annoyed for not getting any recognition in the face of obvious personal improvement. And in my vulnerable state I was head-hunted by a human resources person from this major American corporation who wanted me to work on a project for them. I said I will give it a try, personally believing that I will either not like the place, not like the money or, even more probable, they will not think me worthy of the job. See where I am getting with this? I was already sold on the concept of a new job there and I didn't want to get disappointed, so I was playing down my chances. It seems that, after one telephonic interview, a series of six consecutive face to face interviews and another one with the head of the company, I was good enough for them. All I had to do was negotiate the wage. I was rather disappointed with the way the then current place of employment was handling salary increases (I've gotten only one raise, 2.25% in size, in two years) so I had a sum in mind that I would consider the minimum I would get in the new place of employment. You see, I am not a very good negotiator, I hate haggling, so I just drew a line in the sand and said that no one will push me over it. I was so serious when I went to talk to them... they proposed a sum that was more than 10% higher than what I was willing to fight for. Surprised, I accepted. Now all I had to do is wait for a call to tell me how we would proceed. It was near my birthday and I thought "Wow! What a nice present!".

At this point I'd had contact with the HR girl, who was very nice, been interviewed by a lot of people, both technical and not, also very nice, and even passed by the head honcho of the company who played a little game with me when we met, by pretending to be a very arrogant and annoying person while the top HR specialist was watching me with a stern expression. I am kind of proud of myself to have seen through their ruse, but I think they did try too hard. No one can be such an idiot to consider refactoring useless because you write good code from the beginning, right? Anyway, the guy who was supposed to be manager gave me a call the first week, told me there was some restructuring going on in the company, that we were still on and that I had to wait. He was nice too. He called me every week for about three months to tell me we were still on, while I was sweating bullets because I had already announced in my company that I was going to leave so that they can prepare for my absence, and they were starting to look at me suspiciously: I wasn't going anywhere. At the time my soon to be manager said he was going in holiday and that another guy was going to call me. No one did for more than two weeks. So I called them!

Now, you see, the HR girl was genuinely believing that she would offer me a better job and my prospective manager was also convinced he wanted me in his team and that we would work great together, they all wanted was best for them and me! So imagine my shock when I called and the new guy told me "Oh, you still wanted to get hired? I had understood that you refused the job". No, you moron, I did not. I politely asked for more information only to find out that they had no more positions as full employees, a limitation that had come from the US corporate headquarters, and that they could only offer me a consultancy job. Devastated, I asked what that meant. It meant I didn't get company stock as a bonus, but I was only paid the sum we had already negotiated. I didn't know about employee benefits when I got the job and I didn't really care for them, so I said yes. It was going to be a temporary measure until more hiring positions were opened.

The company had gone through a "reorg" (I was to meet with a lot of new acronyms and made up words in the new job, much to my chagrin - this particular one meant "reorganizing") and I was not to work under the guy who talked to me week to week, but under the new guy, the one that didn't know if I wanted the job or not. But he seemed genuinely nice and motivated, very enthusiastic about the new project, an administration web UI made in ASP.Net MVC. He asked me if I knew anything about the project. I said no. Why would I care about a project if I don't know if I would be hired or not. He seemed disappointed, but proceeded to explain what the project did and how great it was going to be, as it was meant to replace the old thing, made in ASP.Net in Visual Basic... by monkeys.

You see, he had the best of intentions as well, he was technical, willing to create something exciting and challenging and convinced that I would fit in their team and help with this new project made with new technology. When I finally got my hands on code and started actually working, the project was dead in the water. They had decided instead (and by they I mean some schmuck in US, not the people actually working on it) to just refactor the old admin and continue on. Different from what you may think, I was actually excited. In my head I had this tool that I would be working on to transform all VB.Net 2.0 code into C#.Net 4.0, become the hero of all, and create a formal framework of refactoring code from one language to the other. (If you don't know the terms here, just imagine I wanted to replace wood with stone so that the big bad wolf would not blow the house in). Alas, it was not to be. "Too risky" they call it when they feel afraid. I was yet to understand that in a large corporation responsibility dilutes until it becomes nothing. The only tangible thing becomes blame, which replaces responsibility and exterminates creativity and stifles initiative.

You see, like all the actors in this play, I too had good intentions. The first code I wrote was to fix some bugs that I had noticed in a bit of code related to online shopping. The customers had also noticed this bug and had found complex methods to get around it. While my fix solved the initial problem, it also broke any such method and, as I was a rookie in the formal way of doing things in the new company, the fix wasn't even bug free. From that time I was labelled "dangerous", from the initial problems with understanding the project and also my vocal way of expressing what I thought of leaving a project unstructured and buggy. Well, in hindsight, I have to agree that I wouldn't have felt a lot of love for someone calling me an idiot. Even if I were... especially if I were. Anyway, from this little incident you might have already guessed that a complete overhaul of the code (wood to stone) was out of the question. The powers that be had decided that starship Enterprise was to stay home, no bold missions for it.

I could go on with details, but you are probably already bored. Enough to say that I had my first real experience with Scrum there, a way in which all people had a role, each development cycle had phases that were followed in order and documented along the way, a system which, in time, would collect enough statistical data about the team so that it could predict development speed. All it needed for that was a team that would remain constant. Due to repeated reorg-ing my team had never the same structure for more than two or three months. The general (not per project, overall) company policy would shift radically, often completely in the opposite direction, every six months at most. Plans were set in motion, then discarded before reaching anywhere; performance metrics were created to measure project progress, only to be changed at the next strategic hiccup. It was clear that this was going nowhere like that and, instead of changing their way of constantly shivering in fear, they decided to close the project.

Only you see, the project earned money. Not a lot, but enough to count. There are tens of thousands of people paying for the service and hosting sites on it. You can't shut down a project like this. So they invented yet another expression "sustainability mode", to express the way they intended to zombify the project that they had advertised to clients and developers alike like the next cool thing that would solve all problems. I felt cheated and I could only imagine how clients that paid money instead of receiving them felt. There is an expression "the way to Hell is paved with good intentions". All the people - there were 70 developers and testers on the project and God knows how many managers and support staff - had the best intentions. We achieved a highway to Hell. Oh, and by the way, I never really got hired as a full employee. I remained "temporary" a consultant for the full length of my work there.

So what is the outcome of all of this? Two years of my life are gone. I have learned some things, but in the meantime lost a lot of my initial enthusiasm towards development. I stopped reading technical blogs and only spent my days thinking of the tasks ahead, like a good little robot. I've earned a lot more money, many of which I saved in the bank. I gained ten kilos (that's about 20 pounds, for you metrically challenged folk). I almost made my wife divorce me once, but we got over it. I've made some good friends. I learned to play chess a little better. I am not yet sure if the good balances the bad. Now I have found a new job opportunity, one that is even better paid. I only hope it will not be equally as depressing.

Was I wrong to be so optimistic about getting hired, as I am now, I guess, because it led to disappointment? Better to have loved and lost, I say. Were the people that misrepresented themselves and the project I was to work on wrong? I don't think so, I think they were equally optimistic and got equally disappointed. Was it wrong to have better expectations from the world? Prepare for the worst, but expect the best, I say. So yet again, I can't really blame anyone in the Romanian office and it is difficult to point the finger at the guys in the US as well. And yet, this is the result...

and has 0 comments
There is a Google tool called Google Alerts, which periodically looks for new information based on a query and sends it to you. Until recently I had it all sent on an RSS feed, but Google discontinued that option together with Google Reader (I know, boo!), so now I send it to an email address. Anyway, this article is about news in other languages than the one you select as default. I noticed today that one of the alerts, which contained German words, never returned any news in German, apparently all Google Alerts will show me will be English results. So I looked (on Google, of course) for ways to make the alerts multi language. The short answer is that they were never meant to be so and thus this is a sort of a hack, until they do something about it. Here is how you do it:
  1. Go to google.[your language], for example http://google.ro, for Romanian
  2. Search something there and ignore messages telling you to switch language or translate anything
  3. Go to http://google.[your language]/alerts/manage - note that this will not work over https, like the search. It will return a 404 page if your URL starts with https instead of http
  4. Add your alert (the language of the Alerts page should be the one that you have chosen)
  5. Test that it worked by exporting your alerts and checking the Language column for your alert in the resulting file
  6. Go to step 1 to add another alert in another language

So, in order to make an alert in multiple languages, you must add an alert for each language with the exact query. Well, since they are different languages, probably the query will be different as well, but if you are searching for a name, for example, it will always be the same.
This may work by starting the third step directly. It worked for me, but somebody on a forum said that you should not do that, probably something having to do with Google trying to guess what language should be applied from your location, account information, URL etc.
Also, there are some weird languages that may appear in the alerts file. For example the Italian language is "it-IT", the German is "de-DE", but the Romanian is "en-RO". Now I know a lot of Romanians that use half their words from English in a conversation, but that's not what Google had in mind, I think.

A while ago (geez, it's been 6 years!) I wrote an algorithm that was supposed to quickly and accurately find the distance between two strings. After a few iterations it got really simple to implement, understand and use, unlike more academic algorithms like Levenshtein, for example. I placed all the code in this blog and allowed everyone to use it in any way they saw fit. Let me make this clear that it is not the greatest invention since fire, but it is mine and I feel proud when people use it. And today I accidentally stumbled upon something called Mailcheck, by Derrick Ko and Wei Lu. Not only did they use my algorithm, but they also graciously linked to my blog. And, according to the description from their GitHub page, this javascript library is being used by the likes of Kicksend, Dropbox, Kickstarter, Minecraft and the Khan Academy. Talking about Sift going wild! Woohoo!

So I started to Google for other uses of Sift3. Here is a list:
  • Mailcheck, the software that I was talking about above.
  • Sift3 for AutoKey - Autokey does "Fast scriptable desktop automation with hotkeys". Toralf also published the result on GitHub Gist: AutoHotkey: StrDiff() and his implementation is now used in 7Plus, a software to improve usability in Windows
  • Longest common substring problem - wikibooks varient vs sift3 varient - which seems to make Wikibooks the winner. Drat! :) loser! On second look I noticed that the values did not show time, but operations per second, so more is better. Also, looking at the implementation I noticed that it uses a maxOffset not of 5, but of the minimum length of the compared strings, which makes it more accurate, but much slower (and still wins!)
  • A Java implementation on BitBucket
  • A PDF document suggesting the algorithm is being used in an Italian software called CRM Deduplica

All in all I am very satisfied of how Sift3 is being used in the wild and, I have to say, grateful to the people that trusted my work enough to include it in theirs. It took 6 years, but look how much it has grown!

Update: To celebrate the usage of my algorithm, I've added an improved Javascript version in the original post, a form of the algorithm that I call "3B", since there are only minor improvements.
Now I have a weird idea of an algorithm that would compute the similarity between lists of strings (which is the usual usage of string distance). Could it be done, in a simple and straightforward manner like Sift3? What do you think?

and has 0 comments
I've had some changes in my life lately and more are coming so I took a break from chess, but I found a bit of time to finish this chess puzzle book that I started reading a few months ago, but never quite got around to complete. Chess Tactics for Champions is not really for champions, but for beginner to intermediate level, or at least this is what it felt like to me. Susan Polgar chose to structure the book into chapters of about 25 puzzles or examples, each covering some important aspect of chess tactics. Here is a list of those chapters:
  • 01 - Forks and double attacks
  • 02 - Pins
  • 03 - Deflection/removing the guard
  • 04 - Discoveries
  • 05 - Double check
  • 06 - Skewers
  • 07 - Trapping pieces
  • 08 - Decoys
  • 09 - Intermediate moves
  • 10 - Pawn promotion
  • 11 - The back-rank problem
  • 12 - Destroying the castled king's protection
  • 13 - King chase
  • 14 - Mixed checkmates in two moves
  • 15 - Mixed checkmates in three moves
  • 16 - Mixed checkmates in four moves
  • 17 - Game-saving combinations
  • 18 - Perpetual check
  • 19 - Stalemate
  • 20 - Traps and counter traps
  • 21 - Sibling positions
  • 22 - Twenty-five famous combinations

The last two chapters are presentational only, but the first 20 contain puzzles that the reader must solve, with solutions at the end of the chapter. The authors tried to order the chapters by complexity, so that beginners could understand and solve the first chapters and then move over to the more advanced positions, but it is not always so. It seemed to me that, for most of the chapters, the last two puzzles are especially chosen for the "wow!" factor.

The bottom line is that the book is not just something you read. You solve the puzzles, some are frustrating, some are beautiful, most can be "seen" without a board in front of you - for the last chapter I would advise a board, though - but one can return to this book again and again. For example myself, once I get around to chess again, I might go through the book, just to get into the solving mindset that is essential to beautiful play. Now, I don't know how other chess puzzle books are, this being my second chess book I have read, but I imagine some could be a lot better. However, the structure of Chess Tactics for Champions makes it very easy to use as a reference book. One thing I felt was missing was pawn play. Of course, that often enters the category of strategic play, rather than tactic, but still.

More about the authors at Wikipedia: Susan Polgar and Paul Truong. They have been married since 2006.