Ten good reasons to use Linux OS

It was 2 years ago…

It was 2 years ago when I first started a Linux OS on my PC and from that moment I started to evolve as a Linux die-hard fan with every single moment. As I recall it was some version of wubi, which is a Linux installer for Windows that lets you install Linux over your Windows file system, so you don’t have to install it as a dual boot. So since than I’ve changed 2 or 3 distributions and re-installed some of them 4 or 5 times (Linux is not dummy proof, so the most common way to learn when you don’t know what you do is – break it, fix it). So I decided to list 10 of the most important things that kept me using Linux through these 2 years, and will keep me using it for much longer.

1. Freedom – you are allowed to do whatever you want.wallaceTux

Isn’t it all about freedom. We are digital generation, we adopted new technologies before we could even figure them out, so this brought so many troubles to our heads. One thing we desire most, is to shape our own digital world where we are our own masters, not any company. And Linux really does provide it to us, you are no longer obliged to connect any kind of account or provide any kind of personal information about you to some company. One of the things I liked most, are the updates, when you were a Windows user, you probably know how annoying was the constant bugging messages that new updates are received and you SHOULD install them other wise doomsday comes. And if you don’t do so, the “nice guys” from Microsoft will do a feature that will do it for you on shutdown. So congrats, now you have Bing bar in you browser and a 10000-th security update that still sux.  Which brings us to the next point…

2. Better security.

The best part, you install Linux and you don’t need an antivirus program. Why, well I will use a quote here from Wikipedia:

The vast majority of viruses (over 99%) target systems running Microsoft Windows

And it’s true too, without going too deep in technical details, let’s just say, that Linux’s system files and folders, all the secure information has a specific access level that can not be gained by any 3-rd party software. Another reason is, it’s not that easy to run an executable file (.exe)  that most viruses use as a carrier, on a Linux operating system.

3. Better options for customization.

Everything in Linux is customizable. From the wallpaper to the cursor icons, to the way windows look, fonts, panels arangement,  everything. And the even cooler part is, you can customize the behavior of you operating system. It is in the “very advanced” section, of course, but it is possible.

4. Performance, performance, performance

I believe this is the section where Linux kicks Windows’ ass reaalllyyy bad. Linux boots, reboots, shuts down and operates times faster than Windows. This is the reason why Linux is still number one in the servers, growing faster in mobile devices OSs where performance is a must, and that’s the reason why scientific giants in NASA and CERN are using Linux.

5. Better support for open source software.

As we stated in the beginning, we are living in a free world and we like to be masters of our own destiny. One of the ways to do so, is by using open source software. It won’t be a surprise of course if we mention that proprietary operating systems are not very friendly for most of the open source software that’s out there. Well of course a good reason for that is, no one who actually develops an open source  software would actually care about proprietary OSs support. Good example for this is if you try to compile an open source flash player from source code on Windows. Linux, on the other hand is free and open source by design. All the software that you gain access to is free and open source.

6. Better usage of hardwarelinux_logo

It is well known that since the performance of your machine is better with Linux, there’s something going on under the hood, that uses your hardware in more meaningful manner. You will be surprised to find out that your old hardware could run perfectly with most of the modern Linux distributions. Why don’t you try running Windows 8 🙂
Here are some exact numbers taken from the pages of Ubuntu, and Microsoft. We will be comparing minimum requirements of Ubuntu 12.10 (last version of Ubuntu) and Windows 8.1 (last released version of Windows):

Ubuntu 12.10

Ubuntu Desktop Edition
700 MHz processor (about Intel Celeron or better)
512 MiB RAM (system memory)
5 GB of hard-drive space (or USB stick, memory card or external drive but see LiveCD for an alternative approach)
VGA capable of 1024×768 screen resolution
Either a CD/DVD drive or a USB port for the installer media
Internet access is helpful

Windows 8.1

Windows 8.1
If you want to run Windows 8.1 on your PC, here’s what it takes:

Processor: 1 gigahertz (GHz) or faster with support for PAE, NX, and SSE2 (more info)

RAM: 1 gigabyte (GB) (32-bit) or 2 GB (64-bit)

Hard disk space: 16 GB (32-bit) or 20 GB (64-bit)

Graphics card: Microsoft DirectX 9 graphics device with WDDM driver

I think facts speak for themselves.

7. Faster installation and easier maintenance.

This is one of the points I love most, the installation. If you ever installed a Windows OS, you probably spent a day doing it. Because you will need about a 30 to 45 mins to install it, but after that hell comes on earth. Yes, you have a brand new operating system, but nothing else, no chat programs (well I thinк they have Skype, since Win 8.1) , no multimedia, no browser other than IE, no office software etc. To install, register and update all the above,  you would need about a day, and I really mean it, because Windows updates take forever.

Let’s see how it goes on the Linux side, installation is about 20 mins, and guess what – it’s all there, everything you need, or at least all the basic stuff to start with. Because almost every Linux distribution has various chat clients, media players, torrent client, open office, several browsers, and many, many useful applications. And if you need more, you can reach it with importing additional repositories or through a graphic interface called software center or something similar. It’s not up to date, of course but an update would take 10 to 15 minutes max. How about that ?

8. User friendly.

There is a myth to be buried here, and it’s a belief that Linux is a “geek only” operating system, that you have to be a software developer or admin to use it. That you have to write some magic commands in the console in order to have a normal workflow in your machine. Yes, this was true, but for 10 years ago. And there’s still few distributions of Linux that keep it simple and old school, but they are definitely not the most common ones and I don’t think a new user would try them. Almost all others distributions have user friendly interface, almost everything is maintainable through UI, but if you are advanced user you can always use the console. And that’s the beauty in it, it’s flexible and fits your demands, no matter of your experience as a PC user.

9. You don’t have to pay anything.

No trials, no registration, CD keys, cracks and stuff, everything is free and meant to be free, and not only, it is a policy of sharing and mutual support among Linux users, and as a Linux user you will start to feel exactly the same way.

10. Huge variety of distributions spins.

There’s thousands of Linux distributions out there, each having several spins – a different set of applications and graphic interface, to perfectly fit everyone’s taste. You can try one, and if you don’t like it you can try another. There’s actually logic behind every distribution, reasons what group is targeted with it, or why something is made different here. In other words, Linux cares about who we are, and what we do and shapes the development to serve us, not the software’s manufacturer.

Well there’s cons, too …

I know, I know, I know … the Linux haters will be already screaming and in order to be objective I have to point out these, too, but since this post is not about the disadvantages of using Linux, I will just list them, so here they are:

  • Poor graphics driver support – this is a problem since too long, and it still does damage, most of the proprietary drivers for Linux are done lazy from their manufacturers, they lack documentation and the only alternative is a open source – reverse engineered drivers. This leads us to our next issue …
  • Poor gaming support – since the graphics are f**ked up, it is normal to figure out no gaming will be done soon here. Yes, there’s a really good tries to bring gaming in Linux by steam, and Wine but it still a pain in the a** to run a game in Linux.  Plus, let’s face it, gaming is totally not open source. Hopefully this will change pretty soon with the rise of the Steam machine and Steam OS.
  • Really poor support for profession specific software – this has to do with the compatibility of proprietary software on  open source OS but anyway, if you are a designer willing to use Photoshop on Linux, you are screwed, same with AutoCad, 3D studio Max and many more. Yes, of course these programs have alternative, but learning to use an alternative doesn’t always fit your work schedule, plus they very often lack certain features.
  • Extended learning curve – using open source software is challenging but learning to use it in a proper way comes with a prize, you simply have to read a lot.
  • Worse support – Not valid in all cases but quite normal, if you pay in the general case you have 24/7 support. In the open source world the support is provided by the community. Sometimes, specific products are developed by one guy and in some moment he just quits. This is part of the game.


I don’t say you should use Linux and I don’t say you shouldn’t. My opinion is – give it a try. You will be really amazed of what incredible stuff you will be able to do with it. It has a lot of good features and provides you the freedom that we all cherish. So what are you waiting for …

Error, fault and failure – what’s it all about?

Since I recently started my career as a QA I am still learningQuality Assurance badge lots of new things. I wont lie if I say all the definitions from textbooks and ISTQB books still look a bit blurry to me. So every new breakthrough I achieve matters. Same case was with the definitions of “error”, “fault” and “failure”. At the beginning all these terms looked exactly the same to me, I thought “Why would anyone give a f**k what’s the definition, it has to be fixed, does it?” Well that’s what we are about to figure out.
First to mention is – in software business it’s all about credibility and every poor quality software product is kicked out with the speed of light. There’s a huge variety of software companies and if you don’t keep up top standards, you suck. You need to provide the best quality of software. Software without bugs is utopia but good software company doesn’t release a product with major issues, because they might cost a lot.

So let’s dive into definitions. Error – fault – failure might look familiar, but they actually have different impact.
Lets say we have a scenario like this:

A bank asks us to write a web based software which has only one job, to transfer money from client’s bank account to some cash desk where the client can withdraw. It only has log in form and one input field for the amount of money they want to transfer. They push one button and it’s done. Lets say we forgot to test if the input takes negative value. And we release … now if a client inputs negative value he’ll actually gain money. This is a bug we all know this, and it goes live you will cry.

Now, I know that’s a dumb example but it’s simple enough to notice few things:
What caused the problem is a simple “Error”, a human mistake, probably one or two lines of code.
In this case may be a simple check like this will do it:

[code]if (input < 0) {
return //some error here

But it actually doesn’t matter, what does is “How it costs for the developer to fix it?” Well as we see it’s just a matter of review some code find the error and fix it.

If he misses it, it goes to the QA, if he finds it there we have the second definition – a “fault”, meaning the error, led to some incorrect behavior of the app – user is able to input invalid value. We log a bug, we fix it, it’s still cool and safe for the client.

Bet let’s say the QA missed this and it went live – that would be a disaster, this is a “failure” – we failed to provide quality piece of software, our client might have lost millions because of this. What if it was a software for a space shuttle, or autopilot for an airplane, or a laser brain surgery tool – failures like these might cost even human lives. So having that in mind, we can describe the error – fault – failure dependency with this scheme.


So the conclusion is simple – the closer a problem gets to the client, the more effort it takes to get fixed, more money, more time and most of all – the highest price we pay is our good reputation – once  lost, it might take forever to build it again.

So be careful, code wise, test aggressive and clever, don’t be simply a developer or QA engineer, be a craftsman.