Linux three months in

2011-09-21

About three months ago I switched from Windows to Linux completely, pretty much cold turkey. I basically switched to Linux because I wanted to for a while and I encountered some problem for the ... no wait, I had attracted a virus and had to do a reinstall anyways and decided to try Linux instead. Of course the virus itself wasn't the reason for switching, but you can read more about the reasoning in the blog post I wrote after the first week.

So how's it going now. Well my Ubuntu/Linux command line cheat sheet certainly grew, although it's pretty stable right now. I think it's become a pretty handy guide by now, although I generally don't even use it anymore. Mostly because the only thing I have to do on an almost daily basis is reset the sound system (alsa force-reload..) due to memory.

You know it's funny. I actually thought Linux would be much more stable and extremely easy to customize. I was wrong, at least as far as Ubuntu is going. I've installed Ubuntu 11.04 on my main computer, with no alternative OS, and on my laptop, dualboot with win7. Some of the issues that bother or bothered me:

- Memory leak when waking up from suspending my main machine
These are huge memory leaks, especially the swap area fills up permanently. And the only way to flush them seems to be a full reboot. Since this machine only has 3G of RAM (don't ask), it's filled pretty damn quickly.

- Suspension often simply won't wake up on the laptop
And since that's the default action (and I think desired...) for closing the lid, I have to be very very careful about saving docs before I close the lid. It often just turns to zombie mode, while the caps-lock key keeps blinking. I've looked it up and it seems to be about corrupt memory. It doesn't always happen though. I'd say 50/50ish.

- Sound system is very sensitive to high system load and memory consumption
My main machine tends to run out of memory regularly. When that happens the sound system goes into high-pitch scratch mode. Impossible to listen to and often needs a kick in the alsa chin to "fix". Also happens when I copy files between hard drives, so it's not just memory. Quite irritating during conversations over skype, btw. It seems to work both ways too, microphone jams up too.

- Skype support for Linux is bad
The beta doesn't just crash, it just goes into zombie mode without telling you. We use it very intensively at Uxebu and it just dies like that very often, but doesn't indicate this. I have to be informed by somebody through another medium to please restart my Skype. Uncool. Apart from that, the UI simply can't win it from the windows/mac clients. But I guess I should be happy there's any support at all...

- Video card support, if you're lucky
On my main machine I have the proprietary drivers which seem to work fine on their own, but make the native monitor configuration panel useless. I can't use it and must use the NVidia configuration panel instead. Luckily that one works so the loss is minimal here.
My laptop has a dual card, NVidia and Intel. There's a mechanism called Optimus which can switch between the cards on demand. Of course that feature only works on Windows. When enabled, Ubuntu can't even install your video drivers, probably because the Intel card is on all the time so it doesn't even see the NVidia card. Regardless, you have to turn Optimus off in the bios in order for Ubuntu to fix itself (it works quite properly after you do so though). Of course when you do you can forget about using an external monitor. That uses the intel card. Great. Oh and I tried installing Bumblebee for that (despite this popular thread ;)), but that was a manual thing that didn't work too great for me. I removed it (and was not "bumblebeed", btw).

- Default desktop interface, Unity, is heavy, bloated, and requires proper drivers and the default desktop UI sucks
After a few weeks I've removed it and reverted to what used to be the default in Ubuntu. A much cleaner and basic interface that simply works. The only thing I kind of miss is the, uh, application launcher? (like spotlight or run) The top-left button, type enter and it starts the right program. I know the classic desktop has it too (alt-f2) but unless you type an exact command, it's really tedious to select the proposed options by keyboard (down doesn't work, at least not for me).
Other than that, the Unity interface works a little too much like the OXS interface, where you have a permanent launcher bar and active programs simply get an indicator next to their launcher icon. I seriously prefer having a panel that lists all my open programs and that corresponds with alt-tab.
Adding a new icon to the (default left) bar in Unity also requires you to create a new launcher on your desktop and then drag that to the bar. What the fuck is wrong with you? And although you can add all kinds of nifty commands to those icons, you have to do black voodoo magic config file editing to accomplish this. Nice going, jackass.

- Classic GNOME desktop interface (previously default) doesn't handle vertical panel bar very well
Even in vertical mode, the window list thinks it's in horizontal mode and will start going bezerk when you add more than eight items. There's a very easy fix for it though, just let it check for current orientation at some point. Seriously a single line of code for a bug that's been going on for about ten years. In the end I was forced to download the source for window lists, add that single line, compile the result and use that package instead. At least I learned everything is in fact customisable. Just not very easily... But now at least I can have a proper vertical window list (and yes, that makes much more sense when you think about available screen estate).

- GNOME isn't really set on vertical bars
The date widget only has a vertical mode. At least in windows the system tray can take up multiple bars and will put the date/time in horizontally. GNOME doesn't seem to be able to. Or at least I haven't seen a widget that does this. I'm sure you could code one, but that's a league I haven't really stepped into yet.

- Sharing files between two Ubuntu computers through the UI makes you fall back to "windows shares"
Yes, you can do it with ssh or sftp, but that's not very UI friendly. When creating a share in your folder, you can share it through the context menu of your file system manager (nautilus). But when you do and want to open the folder on the other end you have to go to the "connect to server" option and select "windows share". Really?

- Computers running Ubuntu on the network have to be approached by [name].local by all non-windows machines
And I'm sure there's some way to prevent that, but if there is it's not in plain sight. I have to access my machines with qfox.local whenever I'm not on a windows machine. You get used to it but it still doesn't make sense when you know it could just as easily do without the suffix.

- Searching for files in nautilis sucks
I just wanted to move all files in various sub directories to their root. Turns out it won't even search based on extension on anything. Seriously, why not? When I ctrl+f in nautilis and search for "txt" I expect it to do a recursive search from the current directory downward. Or give me the option for a system wide search. But it just starts searching with no end in sight. Great...

- Unable to alt-tab while dragging something with the mouse
How often do you want to drag something from one window to another window. For instance, load a file from file system into an app by dragging it. In windows you can just start dragging the file, alt-tab to the proper window and release it where-ever you want. In Ubuntu the alt-tab will not work :s You can hover over the icon of the window and it will pop up though. But it's not quiiite the same in UX terms.

- No decent music player
I've got a looot of music and no decent music player to play it with. I've tried pretty much all the main stream apps (checked several sites for most popular players) but none of them really worked well with a large list or did what I wanted. The default player requires Ubuntu One, but when you remove that bloated POS you also lose the default music player. Why it would require One is beyond me, but it does. So now I'm using Exaile, but I'll happily trade it for something that works better on my terms. Unlikely.

- Message center system just sucks
You call that notification? The default IM client (Empathy) was very bad at notifying me of new messages in Unity. In classic desktop I've told it to just open windows and that works slightly better, but still not ideal. I'm only using it as a MSN Messenger client for old friends. But you can't seem to block anybody (== spammers) with it, which is very strange :s Also, you can't really get rid of that silly envelop icon it seems, even when you just want the messenger client and nothing else. -1 for customisability.

- Not very happy with the IRC client
I've spent a lot of time on irc and I've always been told by people on Linux how awesome Xchat was and how superior it was opposed to mIRC. Well newsflash, Xchat got nothing on mIRC. Holy crap, this shit is so limited, it's annoying. I'm sure that scripting stuff with tcl is awesome and everything, giving you more control over stuff in the background. But seriously, mIRC's UI is so much owning Xchat that it's pathetic.

- Not as efficient as I had hoped
For an example just open the system monitor. It's using 8% of my cpu (I guess just one core of it though?) on its own (the monitor, that is). Really, it needs that much for these statistics? Even when it doesn't? I'd much rather use htop or even just top instead.

- Double clicking a text file doesn't always open it
And when it doesn't, those double clicks are black holed or something. Even though other times it works fine. I still don't know what's causing it. Sometimes opening a file in the text editor simply won't open the text editor and I'm left opening that thing manually first, dragging the file to it next. Read some points above on how much I like doing that.

- Bad hardware support for more exotic stuff
Probably not due to Ubuntu itself but that doesn't solve my problem of my laptop having a finger print reader that I can't use for Ubuntu. There's no driver for that model, plain'n'simple. So I can only use it when I boot to windows, which doesn't happen very often.

- I can't do serious gaming on Linux
Yeah yeah. Sure I can run Quake, tuxrunner or your "one of the a few very very mainstream games". But almost all games simply target the windows platform. On top of that, video card drivers are mostly targeting windows. Gaming is going to remain a windows-only thing for a while. For me it is anyways.



I've got more, but I think the point is clear. I'm not quite satisfied with the switch. It's not all bad though:

- I like how it's very stable with moving a video (playing back) between monitors and not breaking a sweat
That is a huge pain for windows. Ubuntu seems to handle the expanded desktop better in that regard.

- At least you _can_ fix problems in the UI
I added the missing line of code to the window list component, compiled the package and replaced the original one in my OS. That's on several levels close to impossible to do in windows.

- More command line centric
I'm not a huge fan of the command line. The above should have made obvious that I prefer a UI for common tasks above the zillion switches cli. But when you need it and have access to decent docs the cli is great.

- Native support for various things
There are some things windows simply sucks at. Although node.js now actually supports windows, it didn't use to. And stuff like piping to grep and that kind of magic is cool once you get the hang of it. Native ssh and sshfs support is nice too. Ubuntu is also much better in pdf stuff than windows is.

- Flash and java support
At this point there's actually decent flash and (I guess "of course") good Java support. You can obviously forget about Silverlight, but that shouldn't be a surprise. Or a problem. I actually use flash daily for my gaming fix. Support is not 100% with windows, but I'd say 97% and enough to play most games.

- Development tools are often linux based
Emulators, build tools, and other exotic stuff are more often linux based. I like how I can now just do/try that kind of stuff straight away.

- Pretty safe from virii and other malware
Simply because they mostly target windows (or even mac) based environments. And even though mac based environments come close to ubuntu (osx == linux-ish) the mac malware usually targets mac specific systems. I'm not too worried for now.

There are probably more pro's but these are the ones I can think of right now. So the question remains; do the pro's weigh up agains the cons. Or should I just give up and move back to windows, leaving linux as the alternative OS... I'm actually temping to say "no". When I look at the list of gains, I can't say it's very compelling. In fact, it might be more about my stubbornness to give this up than the actual arguments. Yet being able to do all the development stuff without a hassle is very nice. And I love my ctrl+alt+t for terminal.

Maybe I should go ahead and give a different linux flavour a try. There aren't that many apps I'm relying on right now. And those that are important to me (browsers and a Java based IDE) will certainly also work in other popular distros. I'll be receiving my new high-end pc soon and have to make a decision regarding this soon... Any takers?

Also, if you have a fix for any of my problems or some general critique on my point of view you can always just tell me so on twitter :)