In the last few days I've read several articles that all seem to say the same thing: computer algorithms we use today are biased towards wealthy white men, because they are made by companies in wealthy countries and predominantly by white male developers. Therefore they are inherently racist, misogynistic and wasteful. Nice journalistic metaphors were used such as: "Sea of dudes", "discriminatory code", "green algorithms", etc. I call bullshit!

Computer algorithms need to be, most of all, money makers. If Facebook or Google tweak an algorithm one way or another, the result is immediately apparent in the bottom line because of their huge user count. It may be possible that somehow, by cosmic coincidence, wealthy white males would also be the ones making most purchases, moving the most money, and thus the algorithm may appear biased. But it's not. The algorithm performs as it was supposed to. If a face recognition algorithm classifies black people as gorillas, Asian people as blinking, etc, it's not because the algorithm is racist, but because the data it was provided pointed to that result. If looking for a movie title you get torrent links rather than the official web page of the movie it's because that is what people want more. It's not a glitch, it's the way a machine understands reality. An algorithm is no more racist than the Nazi ovens or the Hiroshima bomb.

What I am trying to say is that code, especially now when it is becoming more and more embedded with machine learning (which is a much better term than the terrible misleading "artificial intelligence"), represents an intersection point between specifications, people biases and data biases, to which you add horrible bugs. Algorithms, just like the way pieces of your brain work, are but elements in a puzzle.

"Well, of course, and to make the entire puzzle more socially responsible, we need to make all pieces socially responsible!" That's stupid. It's like working on the paint of the car to make it go faster. Sure, you can use some over engineered paint to reduce drag, but the engine and the wheels are still going to be more important. Male developers don't decide to tweak an algorithm to make it disregard women any more than a human resources female employee doesn't decide to hire developers based on how much they value women. Owners, managers, money ultimately are what lead to decisions.

Stop trying to appear politically correct when you don't know what you are talking about. If a complex computer algorithm that uses math as its underlying mechanism shows a bias, it's not because statistics are racist, but because the data it was fed was biased. The algorithm in question doesn't reveal the small mindedness of the white developer or of the male mathematician, but a characteristic of the world it sees. Even with people feeding them the wrong data, algorithms are more objective than humans - that is a fact - because often you start developing them before you know what you are looking for; a person always works the other way around. Why not use code to show us where we are wrong, or biased, or angry at how the world is, or plain stupid? We have such a wonderful tool to make judgements from formal principles that we can actually tweak and, instead of scrutinizing the principles, you go nitpicking against the developers and the algorithms. I find it especially humorous to see random data introduced into a generic algorithm producing results that are considered biased because you don't like what you see.

Bottom line: want to change the world and make it better? Here is an algorithm for you: take the world and make it better.

And BTW, I find that constantly accusing developers of being white and male is a form of sexist racism. What do you want me to do? Turn black? If you would truly be unbiased you wouldn't care what is the social structure of your IT department. It's only now when computers matter so much that you are bothered of how much the geeks are getting paid. stupid.

For a very long time the only commonly used expression of software was the desktop application. Whether it was a console Linux thing or a full blown Windows application, it was something that you opened to get things done. In case you wanted to do several things, you either opted for a more complex application or used several of them, usually transferring partial work via the file system, sometimes in more obscure ways. For example you want to publish a photo album, you take all pictures you've taken, process them with an image processing software, then you save them and load them with a photo album application. For all intents and purposes, the applications are black boxes to each other, they only connect with inputs and outputs and need not know what goes on inside one another.

Enter the web and its novel concept of URLs, Uniform Resource Locators. In theory, everything on the web can be accessible from the outside. You want to link to a page, you have its URL to add as an anchor in your page and boom! A web site references specific resources from another. The development paradigm for these new things was completely different from big monolithic applications. Sites are called sites because they should be a place for resources to sit in; they are places, they have no other role. The resources, on the other hand, can be processed and handled by specific applications like browsers. If a browser is implemented in all operating systems in the same way, then the resources get accessed the same way, making the operating system - the most important part of one's software platform - meaningless. This gets us to this day and age when an OS is there to restrict what you can do, rather than provide you with features. But that's another story altogether.

With increased computing power, storage space, network speeds and the introduction and refining of Javascript - now considered a top contender for the most important programming language ever - we are now able to embed all kinds of crazy features in web pages, so much so that we have reached a time when writing a single page application is not only possible, but a norm. They had to add new functionality to browsers in order to let the page tweak the browser address without reloading the page and that is a big deal! And a really dumb one. Let me explain why.

The original concept was that the web would own the underlying mechanism of resource location. The new concept forces the developer to define what a resource locator means. I can pretty much make my own natural language processing system and have URLs that look like: me that post ranting about the single page apps. And yes, the concept is not new, but the problem is that the implementation is owned by me. I can change it at any time and, since it all started from a desire to implement the newest fashion, destined to change. The result is chaos and that is presuming that the software developer thought of all contingencies and the URL system is adequate to link to resources from this page... which is never true. If the developer is responsible for interpreting what a URL means, then it is hardly "uniform".

Another thing that single page apps lead to is web site bloating. Not only do you have to load the stuff that now is on every popular website, like large pointless images and big fonts and large empty spaces, but also the underlying mechanism of the web app, which tells us where we are, what we can do, what gets loaded etc. And that's extra baggage that no one asked for. A single page app is hard to parse by a machine - and I don't care about SEO here, it's all about the way information is accessible.

My contention is that we are going backwards. We got the to point where connectivity is more important than functionality, where being on the web is more important than having complex well done features in a desktop app. It forced us to open up everything: resources, communication, protocols, even the development process and the code. And now we are going back to the "one app to rule them all" concept. And I do understand the attraction. How many times did I dream of adding mini games on my blog or make a 3D interface and a circular corner menu and so on. This things are cool! But they are only useful in the context of an existing web page that has value without them. Go to single page websites and try to open them with Javascript disabled. Google has a nice search page that works even then and you know what? The same page with Javascript is six times larger than the one without - and this without large differences in display. Yes, I know that this blog has a lot of stuff loaded with Javascript and that this page probably is much smaller without it, but the point it that the blog is still usable. For more on this you should take the time to read The Web Obesity Crisis, which is not only terribly true, but immensely funny.

And I also have to say I understand why some sites need to be single page applications, and that is because they are more application than web site. The functionality trumps the content. You can't have an online image processing app work without Javascript, that's insane. You don't need to reference the resource found in a color panel inside the photo editor, you don't need to link to the image used in the color picker and so on. But web sites like Flipboard, for example, that display a blank page when seen without Javascript, are supposed to be news aggregators. You go there to read stuff! It is true we can now decide how much of our page is a site and how much an application, but that doesn't mean we should construct abominations that are neither!

A while ago I wrote another ranty rant about how taking over another intuitively common web mechanism: scrolling, is helping no one. These two patterns are going hand in hand and slowly polluting the Internet. Last week Ars Technica announced a change in their design and at the same time implemented it. They removed the way news were read by many users: sequentially, one after the other, by scrolling down and clicking on the one you liked, and resorted to a magazine format where news were just side by side on a big white page with large design placeholders that looked cool yet did nothing but occupy space and display the number of comments for each. Content took a backseat to commentary. I am glad to report that two days later they reverted their decision, in view of the many negative comments.

I have nothing but respect for web designers, as I usually do for people that do things I am incapable of, however their role should always be to support the purpose of the site. Once things look cool just for the sake of it, you get Apple: a short lived bloom of user friendliness, followed by a vomitous explosion of marketing and pricing, leading to the immediate creation of cheaper clones. Copying a design because you think is great is normal, copying a bunch of designs because you have no idea what your web page is supposed to do is just direct proof you are clueless, and copying a design because everyone else is doing it is just blindly following clueless people.

My advice, as misguided as it could be, is forget about responsiveness and finger sized checkboxes, big images, crisp design and bootstrapped pages and all that crap. Just stop! And think! What are you trying to achieve? And then do it, as a web site, with pages, links and all that old fashioned logic. And if you still need cool design, add it after.

I've noticed an explosion of web sites that try to put all of their stuff on a single page, accessible through nothing else than scrolling. Parallax effects, dynamic URL changes as you scroll down, self arranging content based on how much you have scrolled, videos that start and stop based on where they are placed in the viewbox, etc. They're all the rage now, like web versions of pop-up books. And, as anything that pops up at you, they are annoying! I know creativity in the design world means copying the hell out of whoever is more fashionable, but I really really really would want people to stop copying this particular Facebook++ type, all slimy fingers on touchscreens abomination.

Take a look at, for example. Reading about brain hacking and scrolling down I get right into Momofuku, whatever that is, and self playing videos. It's spam, that's what it is. I am perfectly capable of finding links and clicking (or tapping, whatever the modern equivalent of pressing Enter after a few Tab keys is now) to follow the content I am interested in. What I do NOT want is for crappy design asswipes to shove their idea of interesting content down my throat, eyes, ears or any other body organs. Just quit it!

If you are not convinced, read this article that explains how parallax scrolling web sites have become mainstream and gives two different links that list tens of "best web sites" using this design method. They are all obnoxious, slow to load, eye tiring pieces of crap. Oh look, different parts of the same page move at different speeds! How cool, now I have to scroll up and down just in order to be able to pay attention to them all, even if they are at the same bloody place!

Am I the only one who feels that way? Am I too old to understand what the cool kids like nowadays or is this exactly what I think it is: another graphical gimmick that values form over substance?

I really missed reading a good science fiction book and when I was in this vulnerable mental state I stumbled upon this very positive review on Ars Technica recommending Ann Leckie's trilogy Ancillary. Ars Technica is one of the sites that I respect a lot for the quality of the news there, but I have to tell you that after this, my opinion of them plummeted. Let me tell you why.

The only remotely interesting characteristics of the Ancillary series is the premise - that an AI gets trapped in the body of an "ancillary" soldier that was used as only a physical extension among many others - and the original idea of using no gender when talking about people. You see, in the future, the empire language has lost its need of defining people by gender and therefore they are all she, mother, sister, etc. It is important that the genre is translated into our backward English is all female, as to balance the patriarchal bias of our society. Way to go, Ann! The books also won a ton of awards, which made me doubt myself for a full second before deciding that notorious book awards seem to be equally narrow in focus as notorious movie awards.

Unfortunately, after two books that only exposed antiquated ideas of space operas past, boring scenes and personal biases of the author, I decided to stop. I will not read the third book, the one that maybe would give me some closure as the last in the series. That should tell you how bad I think the books were. On a positive note it vaguely reminded me of Feintuch's Seafort Saga. If you want to read a similarly out of date space opera, but really good and captivating, read that one.

You see, it all happens on ships and stations, where the only thing that doesn't feel like taken from feudal stories are... wait... err... no, there is nothing remotely modern about the books. The premise gets lost on someone who focuses exclusively on the emotions of the Artificial Intelligence, rather than on their abilities or actual characteristics. If I were an AI, I would consider that discrimination. The same ideas could be put in some magical kingdom where magical people clone themselves and keep in touch. I don't know who invented this idea that the future will somehow revert to us being pompous boring nobles that care about family name, clothes, tea and saucer sets (this is from the books, I am not making it up), but enough with it! We have the Internet. And cell phones. That future will not happen! And if it would, no one cares! The main character acts like a motherly person for stupid or young people, no doubt reflecting Leckie's mood as a stay-at-home mom at the time of writing the books. You can basically kill people with impunity in this world of hers, if you are high enough on the social ladder, but swearing is frowned upon, for example.

OK, ranted enough about this. I don't care that her vision of the future sucks. I wouldn't have cared if her writing was bad - which it isn't. It's not great either, though. I do care when I get flooded with review titles like "The book series that brought space opera into the 21st century", by Annalee Newitz, or "Ancillary Justice is the mind-blowing space opera you've been needing", by Annalee Newitz, or "Why I’m Voting for Ann Leckie’s Ancillary Justice", by Justin Landon - a friend of Annalee Newitz' from the Speculative Fiction compilations, and "A mind-bending, award-winning science fiction trilogy that expertly investigates the way we live now.", by Tammy Oler, who is writing with Annalee Newitz at Bitch Media. Do you see a pattern here?

I have to admit that I think it is a feminism thing. So enamored were these girls of a story that doesn't define its characters by gender, that they loved the book. Annalee's reviews, though, are describing the wonderful universe that Leckie created, with its focus on social change and social commentary, and how it makes one think of how complex things are. I didn't get that at all. I got the typical all powerful emperor over the space empire thing, with stuck up officers believing they know everything and everything is owed to them and the "man/woman of the people" main character that shows them their wicked ways. The rest is horribly boring, not because of the lack of action, but because of the lack of consequence. I kind of think it's either a friend advertising for another or some shared feminist agenda thing.

Bottom line: regardless of my anger with out of proportion reviews, I still believe these books are not worth reading. The first one is acceptable, while the second one just fizzles. I am sure I can find something better to do with my time than to read the third. The great premise of the series is completely wasted with this author and the main character doesn't seem to be or do anything of consequence, while moving from "captain of the ship" to "social rebel" and "crime investigator" at random.

The bigger a company gets, the stupider, it seems. I wanted to transfer the contacts from an old phone to a new one. Actually, since it was a phone - a smartphone, mind you - I thought it would be easy to just save everything to a file and import it to the other phone. Wrong! Every smartphone needs to be connected to some cloud account, otherwise it doesn't feel good. Let's enumerate the issues:
  • There are contacts on your SIM, but the SIM cards are too small to hold all the information of your contacts or all the extra info the phone associates with them - so no way to transfer to SIM, then just be on your merry way. This was the old way. In Windows 8 and higher, for example, the option to transfer to SIM has been removed completely
  • Each platform has it own cloud that, like clouds in the sky, are actually quite disconnected. Called it "corporate blindness", the symptoms being that you ignore that other companies even exist when you are working at one of these giants. You know, like when you are a character in a zombie movie and you see an undead walking towards you and you call it... a walker. Damn branding!
  • There is no way to delete all the contacts on your IPhone without a special software, and the software is not Apple.
  • There is no way to transfer contacts to a file from Windows 8. You can only transfer it to Outlook and then in a file

The day was saved by a very simple thing: a Nokia app that was installed by default on the phone called Transfer my Data. If you go to the app settings, it has the option to transfer all the contacts to a .vcf vCard file. All you have to do then is to email the .vcf file to your IPhone email account (I did it by first transferring it on my laptop via a USB cord and the standard Windows Explorer), open the email and click on the attached file. And voilà! Not only the contacts can be merged with existing contacts, but there is also the option to create entire new contacts (so overwrite and therefore delete old contacts).

Hope it helps someone who, like me, had to navigate through tens of unuseful and even deceitful corporate pages that try to force you to move your contacts to their cloud.

Today I wanted to read a PDF. Nothing more than that, just read a damn file. Instead, I got the first use of the Adobe Reader DC, which I may have inadvertently updated to when asked for an update (rather than a complete redesign). But I was OK with it, you know. Adobe Reader was always a lightweight reader of files and the updates have mostly been about security. So now they want to redesign it, what could possibly go wrong? Just rearrange some menus or something, right? Wrong.

I skipped EULAs and bloating features for a while until I got to (surprise!) an online login screen. I didn't want to log in anywhere, I just wanted to read the PDF, so I closed the login popup window. It reopened. I started looking for buttons or links for skipping, cancelling, ignoring, doing it later, but none were there. Quite literally I was locked until I chose to log in. You know what I did? I forcefully closed the process and installed Sumatra PDF reader. 10 seconds later I was reading my damn PDF.

And you know what? I have used Sumatra PDF on other computers in the past. What I found is that, besides some features for PDF that I will never use, like forms and such, Sumatra was better than Adobe Reader. Way faster, that's obvious, but then it read correctly some PDFs that could not be even opened by the default reading application from the company that invented the damn document standard. Once, I remember, we had a weird PDF that we had to wait for about a minute in Adobe Reader in order to render a single page. Sumatra opened it instantly. Not only it is smaller, leaner, faster, better, but Sumatra also reads a lot of other formats: ePub, MOBI, CHM, XPS, DjVu, CBZ, CBR.

Bottom line: I have abandoned the last Adobe tool that I was regularly using on my computer. Will they ever learn?

A day ago there was a "leak" of three TV series pilots. I know, it sounds like someone out there is pissing TV series, but a look at most of them and you start seeing the truth of it. I don't really believe they were stolen or anything, either. I think they were deliberately distributed to gauge viewer reaction. The three shows in question are Blindspot, Lucifer and Minority Report. What do they all have in common? Law enforcement. It gets ridiculous from here on, you've been warned.

Blindspot is about a young woman (lovely Jaimie Alexander - the actress playing the Asgardian warrior Lady Sif in the Thor Marvel universe) found naked, without memories and tattooed all over her body. The tattoos are clues about future crimes and our Jane Doe helps the FBI solve them. The series has the obvious hallmarks of the post Lost era, with just enough artificial mystery to keep one guessing, but not really caring. Anyway, all I can say is that if you make a show about Jaimie Alexander found naked you should bloody show her naked! Stupid Americans! The French should start remaking these shows and demonstrate how it is done!

Lucifer is about... the devil. He comes to Earth because he got tired of ruling Hell - which was his divine punishment from his father, God. And by Earth I mean Los Angeles. Yes, very subtle. He teams up with another lovely (Lauren German) who is a police detective. Why, you might ask? Devil may care, he just loves solving crimes and has daddy issues. The show is so ridiculously pompous that it raises hackles. It reminds me of the well deservedly cancelled The Transporter series.

Minority Report is based on a movie about "precogs" used to stop crime by predicting it, leading to the paradox of arresting and incarcerating people because of crimes they did not commit. Yet. I haven't watched it. Yet. But since the movie was based itself on the works of famous paranoid sci-fi writer Phillip K. Dick, it is the only one that I have hopes for. Of course the detective will be a young attractive person, teamed with another young attractive person with some special power that helps solving some type of crisis, probably crimes and possibly related to terror attacks. I can see it... in the future...

Update: I was right. One of the precogs in the movie helps a young black female police detective to prevent crimes. This is a horrible perversion of the film, which ended with showing the precog system not working and putting innocent people in jail. In the series, the police is frustrated that the precog era has ended and is convinced that every released arrestee from the program would have become a killer. Yuck!

... and I don't mean something like injecting ads; I mean they modify the images you download and the pages that you read. They do that without telling you, under the umbrella of "improving your browsing experience". Let me give you some examples.

Today I copied two image files on a server: a JPEG and a PNG file. When downloaded via a normal network connection, I was getting the original file, about 50KB in size. When downloaded via 3G the image was different! In the jpeg case the file was smaller by a few hundred bytes and in the case of the PNG the file was actually bigger than the original. What was worse, the metadata information in those photos, like the software used to compress it, for example, was completely lost.

I couldn't believe my eyes. I strongly believe that what you ask for from the Internet you should get. This may not have been obvious for someone downloading the images in order to see them, but I was actually conducting a test that depended on the exact size of the file I was downloading. This practice seems to be widespread, but when Googling for it very few links pop up, showing that people mostly have no idea that it happens. In this operator's case, they seem to only change images, but people on the Internet tell stories of bundling CSS and Javascript files inside HTML files, or removing comments from either of them.

The morality of this is dubious at best, in my view it should be illegal, however things are worse than that: this behavior breaks functionality in existing sites. How can you possibly guarantee that your application works as expected when mobile operators (and I guess any ISP) can change your content arbitrarily and without the possibility to opt out? It's like that joke with the boyscout explaining at camp that little old ladies are hardier than one might think, as they squirm and shout and hit you when you try to cross them the street and the instructor soon finds out that it never occurred to the boy that he should first make sure they want to get to the other side.

Here are some links regarding this, just to make sure people can find them more easily:

Mobile operators altering (and breaking) web content
Should mobile operators be free to modify content they deliver?
Mobile Proxy Cache content modification by O2
O2 UK mobile users - your operator is breaking this site for you.
Prevent mobile website image compression over 3G
Get rid of image compression on O2′s network
ByteMobile Adaptive Traffic Management

From the last link you can see that they are caching and modifying even movies, through practices like giving you a lower rate movie or caching a version with a lower resolution. They do this in the name of delivering you video content compressed with a format and codec that your device can safely open.

A solution for this? Encryption. Using HTTPS prevents access to the content from a third party. HTTPS is becoming more and more used, as the hardware requirements for its implementation become less restrictive and with the many revelations about government scrutiny of Internet communications. However, you might be interested to know that mobile operators are feeling threatened by it. Articles from their point of view decry the "threat" of encryption and the solutions against it! The terrible impact of encryption is seen as an impediment in their rightful "content and delivery optimization techiques".

Things are getting even worse. Remember the concept of network neutrality? It is a very hot topic today and a very important political and economic fight is being fought right now to protect the transparency of the Internet. However, if you look further, you see that nobody considers the practice of "optimization" as something net neutrality should protect. In December 2010, the US Federal Communications Commission set three basic rules for net neutrality:
  • Transparency. Fixed and mobile broadband providers must disclose the network management practices, performance characteristics, and terms and conditions of their broadband services;
  • No blocking. Fixed broadband providers may not block lawful content, applications, services, or non-harmful devices; mobile broadband providers may not block lawful websites, or block applications that compete with their voice or video telephony services; and
  • No unreasonable discrimination. Fixed broadband providers may not unreasonably discriminate in transmitting lawful network traffic.
So they are primarily focusing on blocking and throttling, but not on preserving the integrity of the transmitted data!

There would be no point for reviewing the individual books, since, like with Corwin, it is one big story spanning five books. Eight years after the first five disappointing books in the series were published, Roger Zelazny comes back with a little more writing skill, a more interesting plot and a different character. That's the good news. The bad news is that it is pretty much like the Corwin cycle, only with a guy that uses magic instead of a stupid sword. His name is Merlin and he is Corwin's and Dara's son, inheriting both Amber and Chaotic blood. Somehow he still gets his ass kicked by his father, though.

The characters are again, like something from a high school teen movie set in the middle ages. People are mortal enemies and then make conversation, make up and help each other against another mortal enemy, who will probably help them both sometimes later. Arrogant nobility behavior mixes with a general ineptitude to use any knowledge from the "shadow lands" even if a lot of the characters gain their education on Earth. The only interesting thing seems to be an AI that Merlin created... which then calls him dad and acts just like every other generic character in the books. And everybody is just so amazingly and mind stunningly stupid! I couldn't take another book in this crappy series.

Bottom line: The Amber Chronicles was a total waste of my time, the only advantage it has being that its writer ended both cycles and then died, making any sequels improbable. I kid you not, Eragon was way better and it was written by a 19 year old!

In my opinion, when a software you have been using for a long time changes the way it works and intrudes on your already existing installations, not only it is disappointing and mean, but it should also be illegal. Today I noticed that the links from my blog went to intermediate sites (I apologize for not noticing it sooner) like vindicosuite. A quick Google search led me to this link: Goodbye Sitemeter. Apparently, SiteMeter, a software that I have been using to show a views counter on my blog, has been acquired by a crappy company called News Company. I mean, this is the actual name, I am not making fun of you; it's like displaying "Dr Doom's Evil Lair" on your house fence (and not kidding about it). Without the company saying anything, the SiteMeter script added these click and contextmenu handlers on my links, redirecting to other sites, maybe with ads on them (I have AdBlock Plus installed and so should you!, so I don't know). Anyway, the moment I realized this I removed the script from my blog. I have to apologize again for failing to notice this for so long.

Because of idiotic firewall rules at my workplace I am forced to use Hangouts rather than Yahoo Messenger as an instant messenger. I am not going to rant here about which one is best, enough to say that most of my friends are on YM and being on Hangouts doesn't help. Hangouts has many annoyances for me, like its propensity to freeze when you lose Internet connection often or the lack of features that YM had. In fact I was so annoyed that I planned to do my own professional messenger to rule them all. But that's another story.

I am writing this post because of a behaviour of the Google Hangouts instant messenger (which, to be fair, is only a Chrome extension), mainly that after a while, the green traybar icon of the messenger goes in the "hidden icons" group. I have to customize it every day, sometimes twice, as it seems to reset this behavior after a period of use, not just on restarts. There is a Google product forum that discusses this here: System tray icon resets every time Chrome is started where you also see a few comments from your truly.

I immediately wanted to create a script or a C# program to fix this, but at first I just searched for a solution on the web and I found TrayManager, a C# app that does what the "Customize..." tray link does and more. One of the best features is a command line! So here is what you do after downloading the software and installing it somewhere: TrayManager.exe -t "Hangouts" 2. Now, probably that doesn't solve the problem long term. It is just as you would go into the Customize... link, but it's faster. Also, it has no side effects if run multiple times, so you can use Task Scheduler to run it periodically. Yatta!

So I have to leave Italy and go to Belgium for some business. I would make the trip with my colleagues so, imagining they know better how to fly from Italy, since they live here, I ask them to search for the flight. They do that and they send me this link to a site called VolaGratis ("fly for free" would be the translation). This is actually an Italian web site for BravoFly, an Italian flight search aggregator. I find my flight, it says 89EUR a two way flight, which was OK. The site is in Italian, though, so I choose English, it takes me to the BravoFly site, I select the same flight: 105EUR. I'll be damned! So I use the Italian site. I also check the special needs box and write down "Long Legs", expecting them to book me one of those extra legroom places. Now it gets interesting.

The payment section held a big message telling me how great it is that I use Mastercard, so they can give me a big discount. I don't use Mastercard, though, so I select VISA. Suddenly the price jumps from 89 to 125EUR. Well, that probably explained why there was a difference between the Italian and international site. So I proceed. In about half an hour I receive a call from a weirdly formatted Italian number: +39 followed by only 6 digits. I answer in English. There is a long pause, then (in English) I hear the question "Do you speak French?", I reply that I don't, the voice asks a quivering "Do you speak Italian?" (also in English) I also reply no, but I ask her to wait and I pass my phone to an Italian colleague. The operator has closed the connection by then, probably couldn't wait for more than 2 seconds without asking an inane question. A minute later I receive an SMS - in Italian, of course - that I couldn't be contacted and that I should call them back. All nice and all, only their phone numbers are all paid numbers, I have to pay 6EUR per call, give them my credit card details, etc. Or I can call the Italian paid number (six digits) and pay 1.8EUR per minute. Funny enough, I could not call the Italian number from the land line, since it was a paid one, nor from my friend's phone, also because it was locked for paid lines, nor could I call the international number from any Italian phone, as there was an automated voice telling me to call the other number. I wrote them a scalding email, awaiting a reply. I got a phone call at 8 PM which clicked two times and closed after two seconds, but no other reply.

So I was forced to call them using my Romanian number, in roaming in Italy, calling the paid "international" Italian number. And that is because their site could only show my bookings, but would not allow me to cancel one, so in fact they were holding my credit card details hostage. In order to cancel any booking with BravoFly I had to - yeah, you guessed it - call them. Meanwhile I was stuck not knowing if they will book the flight or not. After speaking with an operator speaking English with a thick Italian accent, one who barely mumbled anything she said and then acted annoyed that I ask her to speak louder, I realize that the whole thing was caused by my ticking the special request box and asking for the legroom. I needed to pay extra for that, of course. I said OK, waited for five minutes, nothing happened. I hung up the phone. Got called back in 5 minutes that my booking could not be confirmed. They might just as well have said "Thank you for the money and time you spent trying to make us do what we advertised we do, but we can't, so fuck you!". And I wouldn't have minded as much, since that could have been a nice email message and I wouldn't have had to get this angry.

The ending of the story is me getting to the EasyJet site directly, getting the ticket (with the extra legroom) for about 40EUR less than the one from VolaGratis, all in one nice and clear web interface. Perhaps Vola Gratis in the name of the site is all about them getting to fly for free with the money they extort from you. Don't ever use the BravoFly site or any of their differently named clones. From the way I was treated, I can only assume it is basically a scam, their purpose being only to steal from you.

I met a few friends for a drink and they recommended to me (or rather seemed amazed that I had not heard of it) Dragonlance. I looked it up and, to my chagrin, found that it is a huge series with over 20 books and a lot of short stories - actually, in 2008 there where over 190 novels in the same universe. Resigned myself to read them all, I googled for the right order in which to read the saga and came up with Chronicles, which is a trilogy of books, as the correct starting point.

As in the story, there is balance between the good and the bad in my assessment of the books. For one, I will not read the rest of the books and waste a lot of my time, but for the other, I already start regretting reading the first three. You see, the entire plot seems to have the only purpose of supporting a canon of the classic fantasy genre that the writers have thought up.

Probably emerging from games of Dungeons and Dragons, like many fantasy universes, the world of Krynn has nothing remotely original. There are elves, humans, dwarves, goblins, dragons, pegasi, unicorns, centaurs, and other races like that. From the very first pages, you meet the heroes that form the quest party and they seem to have gathered all the possible cliches in the genre in their travels: the dwarf is old and grumpy and complains a lot, the half-elf is tortured by his double ancestry, the knight is rigid and honorable, the mage is tiny and frail and frustrated about it, his big (twin) brother is huge and completely non-magical, etc. In fact, the mage character is the only one which seems remotely interesting, all the other being busy posturing most of the time, like real size commercials for their D&D class and specialization.

But what I thought was the most offensive of all was the premise of the trilogy. Beware, here be dragons... and spoilers. Do not read further if you think you might want to read the books.

You see, the world has been reeling after a huge Cataclysm, a fiery mountain hitting the planet and causing havoc. At the end of the book we learn that the gods, in their infinite wisdom, did that because the world was too unbalanced towards good! And we learn this from the good god, who for the entire duration of the story just nudged our heroes in one direction or the other while the evil god was amassing armies and killing everybody. How is that for balance?

Even so, you can hardly complain about a book being cliche if you don't read more of the genre and, to be honest, except for a few books, I didn't really read much fantasy. So I had an opportunity to enjoy this, even if the writing was simplistic, the characterization almost non existent and the story bland. But there was something in the books that kept me at arms length from enjoying it. It finally dawned on me in the middle of the second book, when, after reading about the emotional turmoil of everybody, having the men pair with the women - unless they were there for comic relief, like the dwarf and the kender (which one could consider a pair, if I think about it) - and making chaste promises to one another (like not having sex until they can focus on the relationship and stuff like that)... after all that, I realised that Dragonlance was written by two women.

I don't want to sound misogynistic here, I really wanted to read something cool written by women, but for a series entitled after a weapon - albeit something long and thin, with a thick bulbous appendage at the tip - the story was surprisingly devoid of any detailed battles, tactics, strategy or even decent brawls. The heroes are always running around, talking about their feelings or thinking about them and, in case there is a huge battle between the forces of good and evil, quickly skips forward to the conflict between the two women that love the same man.

Also, as if it all wasn't formulaic enough, no one really dies from the group, unless it is something that fulfills their purpose in life, while the support cast keeps perishing without anyone actually giving a damn. Check out the bit where an entire ship crew - including the woman captain and the minotaur second that I had read a lot about in previous pages - just die without the characters even remembering it. Or the battle of the knights with the dragon armies, where one phrase describes how the knights held, but half of them died. Just like that. I may have written more about that bit than there was written in the book.

To end this terrible rant, if you thought Wheel of Time was childish, as I did, this is worse. T'is true, the fair maiden that hath captured my heart and recommended the books hath read said scrolls of wisdom when she was 16, so that might explain her fond memories and my tortured journey towards the end of the story. I also really really wanted to believe that by writing more, the authors would become more skilled at it. It didn't seem to be the case. I refuse to read another dozen books just to keep the faith.

In conclusion, I cannot in good conscience recommend this to anyone, including children or young adults - to which I think the story would be tantamount to poison, teaching all the wrong lessons in the worst possible way. These books sucked lance!

This is one of those WTF moments. After more than a decade of working in software development I learn something this basic about T-SQL (or rather, any flavour based on SQL-92). What would you think happens when running this script?
IF ''='                 ' SELECT 'WTF?!' -- empty string compared to a bunch of spaces
IF ' '=' ' SELECT 'WTF?!' -- bunch or spaces compared to another bunch of spaces of different length
IF 'x'='x ' SELECT 'WTF?!' -- 'x' compared to 'x' followed by a bunch of spaces
IF 'x'=' x' SELECT 'WTF?!' -- 'x' compared to 'x' preceded by a bunch of spaces

There will be three WTF rows returned, for the first three queries. You don't believe me? Try it yourself. The motive is explained here: INF: How SQL Server Compares Strings with Trailing Spaces. Short story shorter: in order for SQL to compare two strings of different lengths, it first right-pads the shorter one with spaces.

So what can you do to fix it? Easy enough, use LEN ,right? Nope. Read the definition carefully: Returns the number of characters of the specified string expression, excluding trailing blanks. A possible but weird solution is to use DATALENGTH. A string is empty only is it has a datalength of 0. In the case of NVARCHAR you could even divide the resulting number to 2 in order to get the true length of the string. WTF, right?

A lot of the political discourse these days relates to the difference between democratic and non-democratic systems. More close to home, the amount of choice a government allows and - do not forget that part - demands from the individual. The usual path of such discourse is either "We let you do what you want!" or "We won't allow people do what you don't want!". I am telling you here that there is only a difference of nuance here, both systems are essentially doing the same thing, with top-to-bottom approaches or bottom-to-top. Like with the Borg in Star Trek, there is a point where both meet and make definition impossible.

My first argument is that the ideal democracy encourages personal freedom as long as it doesn't bother anyone else. That makes a lot of sense, like not allowing someone to kill you because they feel you're an asshole. Many people today live solely because of this side of democratic society. But it also means something else, something you are less prone to notice: you are demanded to know what everybody affected by your actions would feel about them. Forget the legal system, which in its annoying cumbersome way is only a shortcut to the principle described before. This is what it means, people: know your friends, know your enemies, join up! Otherwise you will just offend hard enough somebody who is important enough to make it illegal.

The non-democratic societies function like the all mighty parent of all. Under such governorship, all individual are children, incapable of making their own choices, unless supported by the whole of society or at least a large part of it. That's terribly oppressive, as it lets you do only what is communally permissible. But it also allows you the freedom of ignoring the personal choices of others. You don't need to know anything about anybody, just adhere to a set of rules that defines what you are allowed to do. It's that easy! That's why the system is so popular with uneducated people. Or maybe I should say lazy, to involve also those super educated people who end up supporting one radical view or another because it is inconvenient to find a middle ground compromise.

I am a techie, as you may know, so I will reduce all this human complexity to computer systems. Yes, I can! The first computer systems, created by scientists and highly technical people, were almost impossible to use. Not because they didn't let you do stuff, but because they let you do anything you wanted, assuming you were smart enough to understand what you were playing with. Obviously, few of us are really that smart. Even fewer want to make the effort. This is an important point: it's not that you are stupid, that you didn't read the manual, or anything like that. It's a rather aristocratic reason: you don't want to, don't need to, you expect comfort from the people who give you a complicated piece of machinery to operate. I mean, if they are smart to build one, why can't they make it so easy to use that a child could do it? (child sold separately, of course)

The answer to these complex UNIX systems was DOS, then Windows, then IOS. Operating systems increasingly dumbed down for the average user. Now everybody has a computer, whether a desktop, a laptop, a tablet, a smartphone or a combination of these. Children have at their fingertips computers thousands of times more powerful that what I was using as a desktop in my childhood, and it is all because they have operating systems that allow them to quickly "get it" and do what they feel like. They are empowered by them to do... well.. incredibly idiotic things, but that is what children do. That's how they learn.

You get where I am getting at, I guess. We are all children now, with tools that empower us to get all the information and disinformation we could possibly want. And here is where it gets fuzzy. The totalitarian systems of yesterday are failing to constrain people to conform to the rules because of the freedom technology brought. But at the same time the democratic systems are also failing, because the complicated legal systems that were created as a shortcut for human stupidity and lack of understanding of the needs of others completely break down in front of the onslaught of technology, empowering people to evolve, change, find solutions faster than antiquated laws can possibly advance. The "parents" are in shock, whether biological ones or just people who think they know better for some reason.

Forget parents, older brothers can hardly understand what the youth of today is talking about. Laws that applied to your grandparents are hardly applicable to you, but they are incomprehensible to your children. The world is slowly reaching an equilibrium, not that of democracy and not that of totalitarianism, but the one in between, where people are not doing what they are allowed to, but what they can get away with! And that includes (if not first and foremost) our governors.

This brings me to the burden of choice, the thing that really none of us wants. We want to be able to choose when we want to be able to choose. And before you attack my tautology, think about it. It's true. We want to have the choice in specific contexts, while most of the time we want that choice removed from us, or better said: we want to be protected from choice, when that choice is either obvious, difficult to make or requiring skills we don't have. That is why you pay an accountant to hold the financial reins of your company, even if it is your lifeblood, and you trust that that person will make the right choices for you. If he doesn't, your life is pretty much forfeit, but you want it like that. The alternative is you would understand and perform accounting. Death is preferable.

You know that there are still operating systems that allow a high level of choice, like Linux. They are preferable to the "childish" operating systems because they give you all the options you want (except user friendliness, but that bit has changed too in the last decade). The most used mobile operating system nowadays is probably Android and if it not, it will be soon. It swept the market that Apple's IPhone was thought to master because it gave everybody (users and developers) The Choice. But the off the shelf Android phone doesn't allow that choice to the average user. You have to be technically adept first and emotionally certain second that you want to enable that option on your own phone! It's like a coming of age ritual, if you will, the first "jailbreak" or "root" of your smartphone.

How does that translate to real life? Right now, not much, but it's coming. It should be, I mean. Maybe I am overly optimistic. You get the accountants that find loopholes to pay less taxes, the lawyers that find the path to getting away with what normally would be illegal, the businessmen that eskew the rules that apply to any others. They are the hackers of the system, one that is so mindbogglingly complex that computer science seems a child's game in comparison. If you mess with them, they quickly give you the RTFM answer, like the Linuxers of old, though.

The answer: make the system user friendly. Technology can certainly help now. There will be hackers of the system no matter what you do, but if the system is easy to use, everyone will have the choice, when they want it, and will not be burdened by it, when they don't want it. People talking to find a solution to a problem? When did that ever work? We need government, law, business, social services, everyday life to work "on Android". We need the hurdles that stop us from enabling the "Pro" options, but they must not be impossible to get through. Bring back the guilds - without the monopoly - when people were helping each other to get through a problem together. Liberalize the banking and governmental systems. Forget about borders: just "subscribe" to a government, "like" a bank, "share" a life.

You think this is hard, but it is not. You can survive in an old fashioned system just as much and as well as you can survive in real life without using a computer. You can't! You can dream of a perfect house in the middle of nowhere with the white picket fence, where you will be happy with your spouse, children, dog, but really, that doesn't exist anymore. Maybe in a virtual world. Where the spouse will not nag, the children will actually love you instead of doing things you don't even begin to understand and the dog will never wake you up when you need to sleep. Use the tools you have to make your life simpler, better, depth first!

I assume some people would give me the attitude that is prevalent in some movies that try to explore this situation: "you want to escape reality!" - Yes! Who doesn't? Have you seen reality lately? "you want to play God!" - Yes! I like playing and I would like being God: win-win! And if I cannot, I will get real serious and not play, just be! Is that OK? "this is fantasy, this cannot be!" - Join the billions of dead people who thought the same about what you are doing daily without thinking about it. "You are an anarchist! The government as it is today knows what to do!" or "Allah/Jesus/Dawkings know best!" - no, they don't! And if they knew, they wouldn't tell you, so there.

It all comes to dynamical systems versus static ones. You don't go to the web to search for things and find what you were actually looking for because there is a law against sites hijacking your searches. It is because people want it enough so that a service like Google appeared. You can still find your porn and your torrents, though.

Consider every option you may possible have as a service. You need the service to be discoverable, but not mandatory or oppressive in its design, it has to be easy to use. You want to be able to find and use it, but not for it to be imposed on you. A good example for this is copyright. A small community of producers and a significantly larger one of intermediaries trying to leach on them are attempting to force a huge community of consumers abide to the (otherwise moral and reasonable) laws of paying for what you want and others worked for. The procedure is so annoying that people spontaneously organize to create the framework that democratizes theft. Someone is risking jail to film the movie in the cinema so you can download it free. Why is that? Because technology increases the dynamicity of the system with orders of magnitude. Another service is sex. Porn be damned, prostitutes don't stay on street corners anymore, they wait on the web for you to need them. Supply and demand. So the important point is what are you really demanding?

You know what you won't find on the web? Easy to use government sites. Services that would make it simple to interact with laws, lawmakers, local authorities, country officials. All similar attempts are notoriously bad, if at all present. Why is that? Because the system itself is obsolete, incapable of adapting. Built from centuries of posturing and politicking, it has as little connection to reality as a session of Angry Birds. And you may be enjoying the latter. They survived as long as they have because they were the best at one thing: limiting your choices. Even if you hated it, you enjoyed other people being as limited as you. But the dam is breaking, the water is sipping through, it will all vanish in a deluge of water and debris. It's already started, with peer to peer banks and online cryptographic currencies and what not. Why wait for it? Join the nation of your choice; if there isn't one you like, create one. Be God, be Adam, Eve, the serpent or any combination thereof - whatever you do, just don't be yourself, no one likes that.

I leave you with the beautiful words and music of Perfect Circle: Pet. Something so awesome an entire corporation was created to offer the ability for people to share the song with you, for free, even if theoretically it's illegal.