Switching to linux

2011-06-15

I've been using Windows ever since I moved from DOS. Starting at 3.11 I've never been able to make the switch to a linux based system, even though I've actually been thought to use it back in ... something-school. Of course, that was a long time ago so by now, all that I remember is the very basic stuff about the structure and things like ls, grep and man.

TL;DR: this is my experience about moving from win to ubuntu. If you're not interested in that you should probably stop reading now or skip to the conclusive paragraph at the end :)

About a week ago I contracted my first (computer) virus in years. Now this by itself is no surprise. I've basically never used a virus scanner on my own systems and Windows is still the top targeted system. I hate virus scanners. They eat up resources, are notoriously difficult to remove and can be just as much a problem as the things they're supposed to hunt. And I'm not saying that scanners are bad per se, I'm sure you're happy your mom uses them, but I just hate them. Of course, getting a virus was just karma waiting to happen.

Normally, these things are actually not that difficult to remove any more. I mean, the boot virus stuff is so old-school, you don't see those very often these days. It's all about worms and internet now. They are meant to be stealthy so they try to prevent messing with your files as much as they can. Of course, it's in their nature to both screw up and screw your system up, so that fails. So did this one. It popped up a "windows xp captcha", but only covering 75% of the screen. Not that an "xp captcha" wouldn't have told me enough.

Anyways, I went through the regular disconnection and cleaning phase and only after I wanted to boot my system in the morning, I discovered that my cleanup wasn't enough and that the virus screwed with some magical bootup files. And despite a few attempts to fix it the system was lost, there was nothing else left than the classic full install. Meh, I know better ways to spend my Saturday.

I decided to try and switch to Linux, again. I've done so a while back but got stranded on grub not being able to coexist with my system back then. Later I tried again but gave up due to frustration. So here we are again. But "this time is different". It is because of a few reasons. The Linux system evolved, naturally. Installation and hardware compatibility is not the major pita it used to be. Most generic use software is available as well. Games are still an issue since major games are commonly only targeting the Windows platform. But lately I mostly play webgames, be it js or flash. So that's no longer an issue. Whereas the development environment really seem to be favouring the linux platform. Python, Perl, Node.js and various dev tools. They all run on Linux and "can also be used on Windows".

My current job added to this. A lot of the build environment is Linux centric (they're all on Macs), Windows simply wasn't going to cut it. So that added to my list of reasons to go. And I went. I've switched for about a week now and still have mixed feelings. There are good and bad things about it. Let me shed some light on the things I've encountered.

I've chosen Ubuntu as my distro. Main reason is that all I hear lately is Ubuntu. The other classic distro's, suse and the like, I'm not even sure if they are maintained like that. The current version of Ubuntu is 11.04, or "Natty Narwal". I've discovered the past week that this is actually a somewhat new release but meant to be a long term stable version. The bad news is of course that some stuff hasn't updated to be working under v11. I guess the good news is that I could've started with v10 two months ago.

So I was greeted with the, what I understand now, classic theme of Ubuntu after installation. The Unity environment gave me an error, but I didn't at first quite get what that was all about. I had a GUI, right? But it didn't take me long to figure out my video card (nVIDIA 8800 GTS) wasn't fully supported off the shelf. Even though my dual monitor was supported fine, openGL was not. And it turns out (I discovered later) that Unity basically requires you to run openGL.

So I spent two days getting the drivers to run. Check my note if you want more details on my time spent installing nVIDIA in Ubuntu. I've had quite enough of it myself. But it works now. So I suppose I should be happy about that. Of course, I had the same problem setting up Ubuntu on a brand new laptop, but for slightly different reasons. It turns out the laptop has an Intel and nVIDIA card and it uses something called "Optimus", which is of course not supported by Linux drivers. MEH. You have to disable it from the bios to get it to run. Add one day wasted for that, ktnx. After that it worked perfectly out of the box on the laptop. On my pc the native monitor config tool still b0rks, I have to use the nVIDIA configs to set stuff right. Highly annoying.

Luckily, most stuff does work fine off the shelf though. Most browsers work fine (except of course IE, and surprisingly Safari doesn't come in Linux flavours).

Playing music was weird, mp3 was not supported out of the box. You had to install those codecs first. I didn't like the music player that came with it (forgot the name too), since that showed an information box at the bottom of the play list. I've clearly been trained to ignore that for being spam (looked like an ad) so I kept being annoyed at that. I now switched it for Rythmbox. It works fine (probably just as well as the previous player) so it will do for now.

The next important bit was my IDE. I knew Aptana was supported in Ubuntu, just didn't know how well. But it turns out Aptana 3 is supported without installation. Hurray for that. However, v3 is a piece of crap. And v2 was still available, but that actually does seem to need some kind of installation and I don't see a clear way of doing that. Kind of bummed out about that since v3 is really bad compared to v2. Again, something I'll have to live with for now. There aren't any good js IDE's on the market anyways.

Playing movies was actually nice. I think I installed some codec pack along the way, but I didn't log that down anywhere so I have no idea. But it seems that the most important codecs are supported. And to my pleasant surprise it seems much more stable across multiple monitors than in Windows. I don't know why, but once you have two monitors in dual view in Windows and you have any kind of movie playing, things don't go very well when moving the movie between the monitors. Quite annoying, but something you get to live with over time. No more, because it seems that this is actually something that works well in Linux.

Another thing I love is that I get a console open with ctrl+alt+t and can do pretty much anything there. I really don't like to configure everything, but there is something in me that loves to play around with the command line. However, having to learn all those damned two or three character commands is still very annoying. I keep a cheat sheet now, which I'm already loving. I have a bad short-short term memory, so I quickly forget commands unless I've use them frequently for some period. The cheat sheet helps.

Skype was a huge disappointment though. Best you can do right now is a v2.2 beta. Wow, I'm missing a lot from the Windows gui. I mean, it's fine that some of it has gone. It's a real slim gui like this. But a little too slim imo. The msn family seems to be maintained by some generic messenger app, which integrates msn, yahoo, aim and god knows what else. Not very happy about the way it currently integrates in the system, but it will have to do. For now.

IRC was simple to setup, with XChat being the obvious target, but it takes a little time for my mIRC eyes to get used to the UI. Over the years I've talked enough on IRC to know that you can customize the living shit out of it though, through the TCL scripting language. So I guess I'll have to learn that too. Maybe I can interface it with Node and save me the trouble. Or maybe I can just write a chat client in Node and give XChat the finger... :) But for now, I'll have to live with XChat.

Doing the apache dance is a lot easier now. Simply apt-get install and it's there. Of course you still have to configure it (have I mentioned I hate doing that?) but at least installation is a breeze now. Have not tried setting up PHP yet though (I have to for a project). Let's hope that's just as easy.

The same goes for Node.js. Finally an easy access no VM installation of node! I have plans for you, my friend. But (maybe) more on that later.

There are still a few things that bother me about Ubuntu and the Unity interface. First of all, the interface sucks. I'm sorry, but I'm not getting the customisability love from my system that I'm expecting from a Linux environment. And I'm expecting a lot, it seems. I'd like to get a little more power out of my system tray. I've not found a simple solution yet for getting certain things in the system tray though. Of course, most stuff is in there, but highly inefficient. The music stuff is all collected under the same icon. That's nice, but not pragmatic. I want to go forward/stop/backward by simply pressing an icon in my systray. Not by going through a menu. Likewise, I want to have certain apps under a direct icon (chat, msn). But that doesn't seem to be easily customisable. Notification is crappy too. I don't notice notifications for msn, skype or irc at all. A blue icon, really? They sit in the top-right corner and I seem to ignore them. I just want them in the bottom-left corner :/

Then there's the Unity thing. I actually liked the classic theme better. You could easily add items to the quick launcher thing and customize them with no problem at all (= context menu). With Unity, you have to do deep weird config stuff through the terminal, which of course does not seem to have a GUI. Enter Node, I still want to create a script that'll do this kind of stuff for me.

Last thing I'm really really missing is my task bar. I just want to click straight to specific tabs, not have to find them every time. I hated the grouping option in the (newer) Windows versions. And I hated it on the Mac. I still do, and I'll try to find a way to give my windows/programs their own icon, later. I'll have to live with it for now.

Oh and why can't I alt-tab to switch between programs while dragging a file with the mouse? Must I really open two windows on top of each other if I want to drag something from one to the other? Didn't see that coming, and I still try some times. Annoying.

Meh, I could go on. But I think the message is obvious. There are certainly a few things I really like about Ubuntu. But there are also a few things I really hate. Even though it's really easy to just wimp out and go back to Windows now, at the same time one might wonder whether it's really worth sticking to Ubuntu. Other than the few things I've mentioned, I don't really see my general computer experience being improved. However, for now I'll keep Ubuntu. I'll figure out the customisation stuff, or create my own if I have to. I'll get VMware running and use it for whatever Windows needs I have left. I'll get the hang of shell scripting and what not and I'll beat that god damn systray into submission like there's no tomorrow. However, not tomorrow. For right now I have a busy enough live as it is. But I'll probably get to it when the level of annoyance goes beyond a certain threshold :p

Yeah, switching to Linux... not for the faint of heart.