Monday, November 30, 2015

Go buy a book!

I don't usually take time just to read, I usually read when I have free time (e.g.: waiting in the car for someone, at the beach, etc). Also, I hate PDF books. When I was only a student, I had no choice but to read PDFs, but now whenever I like a book I just buy it (here's my bookshelf). There's nothing like that "touch" of paper and the smell of a printed book. Furthermore, I feel that nowadays people don't take enough time away from the digital world to relax and do other activities. Everything is on Google. So, here's my "Christmas suggestions" for you:


It is the ultimate best book ever. Truly. No words to describe it, it's a master piece. Just a few dollars and you'll get invaluable knowledge about how your brain works. It will change the way you interact with others around you on every situation. Here's an example: Priming effect.


I wrote about this book in the past. Although I'm not a fan of the author, I have to admit that the book is really good. It's motivational, every single time I read a couple a pages I just want to close it immediately and start working.


This book is in Portuguese (pt-PT). It's a more "hard to read" book. However, I do recommend it because small negotiations play a significant role in our day to day life. When we buy a new car, when we buy everything on the supermarket, when we negotiate with the others around us.


Do you have any suggestions? Feel free to email me some (contacts on the side)


Tuesday, November 24, 2015

The Vendor Client relationship (parody)

We've all been there: that client that want's everything but his budget doesn't "feel" the same way. Here's a really good parody that ilustrates this issue in real life situations:



By the way, I've been a Vendor and a Client. I can put myself in the Client's shoes and the Vendor's shoes. It's just a matter of balance and negotiation.

Friday, November 20, 2015

A bug costing 370 million dollars

A couple of months ago I wrote a post about Software quality assurance. Long story short, having a bug in a website for a local grocery store is one thing, having a bug in a medical device, a jet fighter or a commercial airplane is a totally different story. Here's a rare example when things go wrong in a critical software piece:

Quoting:
"Ariane 5 is a European heavy lift launch vehicle that is part of the Ariane rocket family. The first test flight (Ariane 5 Flight 501) on 4 June 1996 failed, with the rocket self-destructing 37 seconds after launch because of a malfunction in the control software. A data conversion from 64-bit floating point value to 16-bit signed integer value to be stored in a variable representing horizontal bias caused a processor trap (operand error) because the floating point value was too large to be represented by a 16-bit signed integer. The software was originally written for the Ariane 4 where efficiency considerations (the computer running the software had an 80% maximum workload requirement) led to four variables being protected with a handler while three others, including the horizontal bias variable, were left unprotected because it was thought that they were "physically limited or that there was a large margin of error". The software, written in Ada, was included in the Ariane 5 through the reuse of an entire Ariane 4 subsystem despite the fact that the particular software containing the bug, which was just a part of the subsystem, was not required by the Ariane 5 because it has a different preparation sequence than the Ariane 4."

Here's the report

Here's the video



Thursday, November 19, 2015

0.1 + 0.2 = = = 0.3 is not true

Just Open Google Chrome, press F12 and write the comparisation in the Console:

0.1 + 0.2 === 0.3

It's false? What? Why?
Well, it's not a JavaScript craziness. It's actually quite simple:

"Computers can only natively store integers, so they need some way of representing decimal numbers. This representation comes with some degree of inaccuracy. That's why, more often than not, 0.1 + 0.2 != 0.3."

You can read more here (Floating Point Math) and see the behavior in other languages as well.