Wednesday, October 27, 2010

On OS Stability

Technorati Tags: ,,

I admit I am always a little puzzled by the Linux community’s stance that Windows is inherently unstable. For 10 years, since Windows XP, I have expected and experienced a rock solid OS. I rarely rebooted, never got blue screens. It just worked. Always. Even Vista worked, it just wasn’t worth the hassle of reinstalling everything.

I know there are people thinking I am setting up a straw man and doubtful. But, I’m not, and I recently had an insight as to why I experienced that stability.

One of Linux’s strengths is a great ecosystem. There are LOTS of apps for Linux. Debian has over 25,000 packages. So what’s the first thing you do when you install Linux? Install everything might possibly want to use or show to your friends one day.

And then your learn about the PPA infrastructure and find apt-add-repository in a man page on a rainy day. Suddenly you have a new favorite word: “latest”. It’s like “on sale” but better because it’s free and it’s The Latest. Backports, universes, hell, whole multiverses later, your sound doesn’t work, you reboot three times a day and your mouse drifts to the left.

And it crashes. A lot. Windows was never like this. Where is all of that stability I kept reading about?  So, I read up on apt and aptitude and these are some incredibly powerful tools. I figured out how to purge configurations, cleaned things up, but still the system is oddly unstable in little ways. Sound only works after login and always initially muted. It forgets my monitor settings every second day. And on and on.

Everything I read says “reinstall”, but that didn’t seem to make sense. I cut my teeth in unix. You uninstall a program, kill its processes, purge configurations and it’s really gone. I fought it as long as I could. There’s no registry. Why reinstall? That’s for sissies!

Well, it’s true that unix/linux doesn’t have a registry, but gnome does. A light bulb went on. I reinstalled and this time just kept what it gave me and only added a couple things I absolutely needed. IOW, I gave it the same respect I gave Windows and now my sound works, the mouse works, it’s rock solid and no reboots in a couple weeks, since the Maverick upgrade.

The insight it fed was that perhaps many of those folks that have issues with stability in Windows are doing what I did which was to endlessly fuss with the OS, customizing, installing, uninstalling, avoiding advice and just generally farting around with it.

The test of an OS is how it reacts when you want to get something done. When I stopped farting around with Linux and just started using it, it really started to shine. It was a lesson I learned painfully with Windows and it seems I needed to learn it again.

Tuesday, August 24, 2010

Installing Linux

Technorati Tags: ,

OK, so maybe it was a bad idea to start a blog and then immediately go on vacation. Meh.

Ok, so in the my last post I talked about what distro I selected and why. Your mileage may vary of course, but Ubuntu works for me and much of what I will go through in this series will be related to Ubuntu.

Partitions

But regardless of what distro you end up installing, there is one piece of advice I would strongly recommend and that is to carefully consider your partitioning scheme. Back in the old days, partitioning your disk so that your data was separate from the OS was solid advice. As Windows evolved, though, it became less and less convenient. So much of what makes Windows productive is its tight integration and committing your personal data to locations other than Documents and Settings/Users caused as many problems as it solved. Further, Windows’ excellent in-place upgrade paths scenarios meant that in many cases it was not really necessary. It migrated your data for you and all was well. Yes, there were roaming profiles and as NTFS evolved we got symbolic links and all, but frankly none of them were easy to use and were poorly supported by applications.

Linux is a bit different for two reasons. One is that while in place OS upgrades are possible, they are not recommended. The other is that linking – symbolic and hard – is very well supported; couple that with the fact that Linux is not letter-centric with volumes (c:, d:, etc) and you can very cleverly partition your data, mount each partition in whatever directory you want and then get on with your life. Finally, unlike Windows which sets per-user settings in a global location (the Registry), Linux stores all per-user settings in the user’s home directory (for the most part – there are some exceptions, but that is another post).

So, you will definitely want a partition for your home directory so that when upgrade time comes, you just mount it in /home and when the machine boots, there is your data and most of your settings – almost all the ones you care about anyway.

If you partition your disk that way, then your OS partition really only needs to be about 40gig. In fact, that may be too big. I have pounded the software repositories and still only sucked about 25g of my OS partition up.

You’ll need a swap partition as well. There is a lot of advice on how to size this. In the old days back when my hair was all one color, we used a formula of 2x RAM for the partition size. But living with that I think it is too aggressive. On a 4gig machine, I have never used more than 1gig of swap, even with multiple VMs running. So, maybe a more conservative 1.5x RAM makes more sense.

If you dual boot, leave the rest of your disk for Windows as NTFS. Linux can read and write NTFS reasonably well (beware of large files), but Windows still has no effective mechanism for reading ext4, so to share data between your boots you will need NTFS somewhere in your pipe.

Thursday, August 12, 2010

Picking a Linux Distro

Technorati Tags: ,,,,

Finding the right distro can be a challenge. Over the last two years the various distros have become more mature and professional. You can’t go wrong with any of the major distributions, really, so it comes down to a matter of personal taste. I focused on three distros when researching and here is what I found. YMMV.

My criteria for selecting a distro was pretty simple – it has to work. As far as I am concerned, an OS is an appliance – it either is a help or a hindrance. I did not elect to use Linux over some religious or dogmatic belief about what OS is better. They are all unbelievable engineering achievements: Windows, OS/X and Linux. I went Linux because Eclipse runs so much better on Linux than Windows – pure and simple.

No OS is a pure unless you buy it installed so a major decision point was community and mind share – could I make the OS run on my hardware easily? Will it run VMWare Player and VirtualBox easily? I still need Windows, so VM support is critical. Support for real-time kernel for recording is a nice to have, but not critical. The question really came down to could I make it work easily and could I easily find help for the things that were broken.

Fedora Core

Fedora does not have the eye candy of the others, but it promises latest bits. It installed quickly and somewhat easily but immediately had issues with multi-monitor support on my laptop (HP dv7 with an Intel video driver).

I went to the Fedora forums and pretty much decided against Fedora after a couple of hours. The people were generally helpful, but most responses dropped to the CLI, were complicated, and seemed in some cases to be undocumented. It seems that the “bleeding edge” nature of Fedora equates to a lot of maintenance. It looks like a great distro if you like to spend a lot of time fiddling knobs and really dialing in your experience, but that’s not me. I like my OS’s to call less attention to themselves, TBH.

OpenSuSE

I had to look at this. As the best known Mono host, evaluating OpenSuSE was really a requirement. The support model is professional and well documented and the organization behind it has a well established track record.

First, I have to say this. The Plasma shell (KDE) is stunning – without a doubt the most beautiful shell I have ever seen. Seriously, the KDE deserves team deserves some hefty kudos for the look of the shell.

It installed without a hitch, the community is excellent, and when it finished, you had a lizard and lot of eye candy. Unfortunately for me, the experience of living with KDE does not live up to the promise of the eye candy.

I have had this issue with KDE before, but had not looked at it in a while. KDE’s biggest strength is also its biggest weakness: there is something for everything. The control over the UI is extraordinarily granular, but it is spread out in a lot of places and there is very little integration. The overall experience lacks cohesion. Maybe that’s not fair – it doesn’t feel cohesive. 

Still, I could have lived with that. You set it up once and then work with it right? But there was one deal killer: the network management widget. A functional and flexible network manager is no longer just nice to have – on my laptop I connect to multiple different networks - wired, wireless, VPN – regularly and the KDE manager is just not up to snuff. I know you can wire up the Gnome manager in KDE, but I would really have preferred to stick with one desktop’s dependencies.

This failing of KDE is shocking considering how much thought went into the rest of the experience. But ultimately it is a metaphor for the KDE desktop: each individual little tool is a gem and usable, but taken as a whole, all of these little gems add up to an impression of fussy inefficiency. I found the desktop intruded on my workflow and that was something I could not live with.

I considered putting Gnome on, if just to keep access to yast which is an awesome tool. But this was starting to get complicated and other distros default to Gnome.

You could accuse me of not giving OpenSuSE a fair shot and there may some truth to that, I plan to investigate it again with Gnome down the road, if only to gain access to yast.

Ubuntu

10.4 LTS is immediately friendly and warm and fuzzy. The Wubi installer is a stroke of genius. Ubuntu really makes it easy to adopt, making all the usual barriers transparent. The installer handles dual boot seamlessly (I’ll cover this in detail in another post) and the whole experience was flawless.

I guess I just prefer Gnome at the end of the day. Once I got rid of the bottom panel and set up my top panel, I felt comfortable. Gnome is solid and has excellent applets. Ubuntu’s Software Center and default menu makes it dead easy to get the system where you need it. The experience is cohesive, integrated and friendly.

Yast has always been a great tool, but Debian has done some fabulous work with apt-get and aptitude and package management is no longer something that makes my feet itchy. It is not flawless – no OS is – but I think I prefer these flaws to the others.

And special attention needs to be called out to Ubuntu’s excellent community and wiki.

In the next few posts in this topic, I will cover some useful software and tips for living with Ubuntu.

Tuesday, August 10, 2010

Beginnings are delicate things

Starting a new blog is always something of a hassle. You have a million things to say, but don't want to set any expectations you can't live up to. So, I'll just tell you why this one was started.

A couple years ago I finally had to give up the notion that the only valuable place to run software was on a server. I was forced to (gasp!) actually learn JavaScript. Now, in my mind, files that ended in .js were just scripts - things to be created by Morts. Interpreted, softly typed, ugly, a poor cousin to Java and especially my beloved C#.

But, a funny thing happened on the way. I found out that it is actually a pretty powerful language and that Douglas Crockford was right - because it is the language of the browser, it is really a very important language.

The problem is that JavaScript is also a great tool for creating really crappy code. So a little discipline is in order and for that you need tools. My search for tools led me to an Ubuntu desktop.
I have been running Ubuntu is VMs for at least 6 years. I grew up on an old VAX machine running Ultrix and the *nix's never bothered me. But I also have immense respect for Windows and Linux always frustrated me with its distros, dependencies, and smug communities.

But my need for tools gave me no choice. I went from a Wubi to a dual boot to now a committed Ubuntu install on my primary laptop. Along the way I learned a lot. A lot about Linux, a lot about Windows, a ton about JavaScript and I figured that now may just be the time to pass some of that on.