Switching Blog Platforms

Long story short, I had been paying way too much for my blogging site and getting less performance than I could for the money.  I had been running my server for a few years using a VPS Windows server.  A Windows Server with 512 MB of memory is a very different animal from a Linux Server with 512 MB of memory.  Of course I am paying less than half per month for my new server and I am getting 6 times the requests per second.  Its not even fair to compare a Windows web server to a Linux one in this scenario.  IMHO there is no good reason why Windows VPS servers cost about $50-$60 per month.

The good news is that there are plenty of Linux VPS vendors that offer very good hardware for lower prices that can host a much higher performance site than I can get from a Windows Server.  I am very happy to be a WordPress customer.

 

Why I am switching to using Windows 7 as my boot OS

This is a little embarrassing.  My most recent source of unhappiness was my purchase of a Dell Vostro 3700 laptop that happened to be one of those “Hybrid” chipsets.  In exchange for a smashing purchase price I am stuck with an Nvidia FX graphic card that will not work in Linux.  Instead I get the equivalent of an Intel HD graphic card.  The awful truth is that I would have saved even more money and gotten a laptop with just Intel HD graphics.  Pulling at this small thread has led me to even more sources of discontent.

 

In reality, my problems are much bigger than just my graphic card.  I have been a Linux user for quite some time (my first store bought copy was SlackWare 96).  I have used a variety of flavors with all types of user experiences:  source compile only Gentoo, Debian package management based distros, even some live CD versions. My younger more patient self was more willing to put up with the little foibles:  bad device driver support, half baked UI rewrites, API wars about issues that maybe 5 people in the world care about.  I was willing to put up with it because until about 2 or 3 Windows revisions back Windows was not the most competent O.S.  Furthermore, Linux was usually blazingly fast on even limited hardware.  One of these things has changed though:  since about Windows Vista, Windows has actually become a very usable and elegant O.S.  In fact, its fair to say that Windows 7 is easily the best desktop O.S. that has every existed.  I say this without the least irony and with a little eating of crow.

 

I have to admit, I wasn’t exactly rooting for Microsoft in the desktop O.S. wars.  I frankly didn’t care about commercial operating systems as I was perfectly happy using freely available ones.  A few things have changed for me in the last few years:

  1. I don’t have time to tinker anymore.  I have a full time 9 to 5 and then I come home to code my startup application.  I don’t have time to spend days or weeks without my computer just working.
  2. Linux driver support has become progressively worse.  Back in the day Linux was usually made to work on a few manufacturer pcs and maybe one or two high performance computing platforms.  Today, Linux is running on everything from cell phones to toasters.  The resulting dilution of resources means that Linux just doesn’t have the same driver support that it used to have.  This is particularly bad for desktop users as the paid driver developers are working for enterprise vendors like Red Hat and they no longer care about desktop Linux.
  1. I finally have a big problem with the perpetual change model of Linux.  Here is the thing, do we really need to have 25 window managers?  Do we really need 10 application servers.  I’m all about diversity, but, diversity should be moving us forward not just changing for the sense of change.  The Linux community seems to accept that the platform is perpetually changing and that we have to keep updating on a regular basis like a waiter serving drinks on the roof of a moving vehicle.  That analogy explains what its like being a Linux desktop user today.  Every day you log into your machine and you are greeted by 5-10 updates.  You can read the developer descriptions of those updates, but, they don’t get into the epic flame wars that may be associated with those updates.  You also won’t hear about why your machine may be broken after installing these updates.  (I could write a book on why this is not really always the developers fault, in fact, there are so many reasons why this is).  The problem is that other than the Kernel, Linux frankly has too many updates that can cause end user problems.  The traffic cops for this are the distro developers and this problem lies in their hands.  This problem is for them to solve.  Quite frankly distros need to have integration labs like what Microsoft have where they thoroughly test new versions before hoisting them on an unsuspecting public.
  1. I am more concerned about being able to work and be productive than I am about having new features.  Maybe I’m getting old or maybe I am very busy.  Either way I wouldn’t mind using FVWM and old lib C if I didn’t have to worry about my laptop breaking every few weeks. 

 

So how does Windows 7 fit into all this.  First off, it’s a damn fine OS.  I’ve never had it crash on me and I’ve used it on several different laptops and desktops.  Its not a memory hog.  The UI is very nice and simple.  The driver support is amazing.  Overall it is a very unfussy product.  This leaves me in somewhat of a bind though since most of my development work at home is on the LAMP stack.  However, there are several virtualization platforms that allow you to run Linux inside Windows 7.  Now this may seem quite strange, but, I need to run Linux for all the great developer tools and wonderfully free API.  However, I am likely going to give up on dual booting my laptop.  Long rant for little pay off, but, this is what you get from staying up late because of something stupid.

Why I can’t upload pictures on my laptop using Ubuntu

I have been a Linux user since at least 1995.  That was the year I bought my first distribution copy of SlackWare 96.  I have fiddled with almost every distro you can think of over the years.  I can remember going through all the dramas with Linux:  the Window Manager wars, the libc mess, the Gnome wars, the growth of Redhat.  During all of these moments I honestly didn’t hold it against Linux that I always needed to have a copy of Windows available to get real work done sometimes.  Linux was usually the best environment to get development work done for Java or LAMP so I never had a problem not having a proper Office Application.  The Dual boot thing was annoying, but, I could get over it with the rock solid stability and close compatibility with other Unixes. 

In the last 5 years I have somewhat settled on using “Desktop” distributions.  My reasons:
1.  Easier to update so I could see new features without having to do some funky configuring.
2.  Less maintenance.  I like to pretend that my computer is not a hobby that requires constant caring and feeding like a house pet.
3.  Easier installation of addons and new software.
I know I’m losing patience with my old age and quite frankly I don’t have the time for spending overnight to get printing to work.

Honestly I was in a state of Détente with Linux because I wasn’t really happy with a few things.  Driver support in Ubuntu has always been atrocious and this distro had some of the best driver support.  I hated how simple things would not work like my HDMI port.  Don’t even get me started on Linux’s lack of support for the Hybrid Graphics in my Dell laptop. 

This weekend I updated to Ubuntu 11 with its new Unity Interface and I just realized that I had been using Linux for 17 years and I was still unable to do something very basic:  Upload images to PicasaWeb that were loaded on my laptop.  First off, all my years mucking about with fstab made me know to load my windows partition as a mounted drive when I installed Ubuntu (that saves a lot of headache, but, frankly why doesn’t Ubuntu mount every partition it sees on the drive automatically?).  So getting to the pictures wasn’t the problem.  The problem was the the new Nautilus interface that popped up inside of Mozilla Firefox was complete indecipherable.  Now, I am something of a UI geek (its why I went to Ben Schneiderman’s school for my undergrad and tried to get a job in that lab) and I have worked with computers with all sorts of weird interfaces (look, I programmed doom into my TI 85 calculator, so I know how to get things done).  Its hard to admit, but, I couldn’t figure out how to get to my windows mount inside the file list window.  I thought I was losing my mind so I tried another browser, but, they all default to using the Nautilus file browser.  I’m sorry, but, after trying for about 15 minutes I gave up.

Good job Ubuntu, I just gave up on Unity at that point.  Its clear they never tested this with any user groups.  I had Gnome running pretty nicely with CompWiz (Desktop Cubes, extra effects, :)).  I switched back to Ubuntu “Classic”, but, I decided to boot into Windows to upload my pictures.  The funny thing is that I see how quickly Android has gotten away from the mistakes of Linux.  For one thing there is only one GUI for Android (though folks implement add-ons).  I find it very satisfying using the stock Android 2.2 Ui on my G2X (drool).  Over the years I have been forced into liking stock interfaces and I can say that Android is a nice one.  The travesty that is Unity is not ready for prime time.  If you can’t bring in a user group consisting of basic users and see how productive they are in using the UI then you can’t make that UI the default.  Regardless of Shuttleworth’s feelings about Gnome the decision should have been made to keep users productive even if you are using a messy code base. 

Linux on free hardware

I know all the cool kids have dual core OSX boxes, but, I am running Ubuntu on years old hardware (Dell Dimension 2400) as a matter of necessity as well as common sense (imho computers have been much faster than I needed for about 5 years now).  Good thing with that is that usually drivers and compatibility are a nonissue as older hardware is the most supported.  Unfortunately, I’ve been having an issue with Intel 865 and related chipsets because of the flipside of this equation (old bugs have a tendency to go unfixed for years).  I don’t know the reasons behind it, but, Intel Graphics hardware is buggy under Linux.  Actually the last two PC’s I’ve had would crash intermittently in Ubuntu 9X and 10X with no explanation.  After chasing down blogs, I’ve identified the issue as related to X server crashes.  There was also an issue with USB compatibility that seems to have been fixed in Lucid Lynx.

The graphics issue fix seems to be to get any type of video graphics adapter other than the built in 865GV adapter.  I got a good deal on a PCI graphics adapter from PNY at Microcenter.  When is the last time you bought a “PCI” anything folks?  Once I dropped the Nvidia 8400 GS in and went through a slight issue with setting the horizontal and vertical refresh rates I was cooking with gas.  The only bug in my ointment is that I now desperately want a second monitor as viewing everything on one monitor for app development is more cumbersome with just multiple virtual desktops.

I’m a little peeved at the Intel chipset Linux issue.  IMHO Intel should spend a few bucks ensuring Linux compatibility.  If you are experiencing any issues with built in Intel chipsets, don’ t hesitate to buy a graphics or audio adapter and disable the built in one.  The issue I was experiencing is actually a confirmed bug in 10.04, but, there is such a bug for every version of Ubuntu related to Intel chipsets.  A bug that old has to be related to the hardware manufacturer and is not likely an Xserver issue.

Are you really Open Source?

I’m a bit groggy and out of it from pulling an all-nighter to build a software that I needed for a client proposal.  I won’t name any names, but, this “open source” product was not easy to build.  First off, when I went to a link that says “download” I was thinking that I was going to see one or more tar gzips.  Well this product had none.  In fact all I could do was to use firefox download manager to download several folders on the svn website for the project. 

Seondly, those files were marked as debian packages and since I was running Ubuntu 9.1 I thought I was cooking with gas.  Those downloads took about 20 minutes and I spent the last week trying to deploy them to no success.  I spent the last week pulling my hair out before accepting that the debian packages were hopelessly broken and not even rebuilding them from the source had any hopes of fixing them.  I went through the torture of downgrading my perl install to 5.8.8 because I assumed there was a library issue.  Actually the core issue is that the dependencies for the debian packages were farked.  In fact, even after adding the developer’s debian site to my Synaptic source list I discovered how broken the packages were:  The two main packages had circular dependencies.  Unfortunately, no package manager on earth can resolve circular dependencies since such a thing is illogical.

Thirdly, after giving up on using debs (and somewhat messing up my perl installation with a polluted deploy of perl 5.8.8–that I must uninstall) I moved to CPAN.  This is where I discovered how truly devious the developers were.  I could understand if someone had not updated their debian and tar gzip deliverables, but, for the CPAN deployment to be broken actually takes some effort from the developers themselves to ensure that the package is uninstallable.  What makes this worse is that to even get to the point of the CPAN deployment I had to download via SVN the trunk for the application.  This is not documented in any of the developer’s documentation.  I am sorry, but, this developer is giving a big middle finger to the Open Source community by not fixing whatever distribution mechanism they are using for their software.  I appreciate the hard work that they have certainly put into this product, but, to deliberately (all my problems were not by accident and were not coincidence, they have deliberately broken the automated build and deploy mechanisms) make it hard to find and use their software they might as well not bothered to declare it “Open Source.”  Open source is not just a phrase, its about a certain respect that developers have for themselves and the greater user community.  A respect that means the developers have faith that others will benefit more from the fruits of their labor rather than restricting use to a chosen few.  Not showing this respect is dishonest and not in keeping with the spirit of the Open Source community.

Seriously, I would have found it easier to download and build the Windows 7 source code than this application.  That is a shameful indictment of this developer and their business practices.  Its no surprise that they offer pay for hosting for the software (I’m guessing the debian packages broke on the same day they announced the hosting plans).

After much hand-wringing, the software finally builds under Ubuntu 9.1.  I have not had the luck of deploying it into Apache, but, I don’t expect much problems with that (though I do expect to have to hack through their setup scripts to make sure files get copied properly).  I had to spend the whole night going through missed dependencies in CPAN (I even had to reverse engineer a few build scripts).  I was considering some sort of partnership with the developer, but, now I don’t respect them enough to do so.  Instead, I will hack their software myself.  Of course I’ll make sure there is a working debian for whatever changes I make available on my site.

Goodbye, and thanks for the fish!!!

Tomcat 6 and Ubuntu apt-get

I understand the philosophy behind package managers.  It is a major reason I use Ubuntu over say Gentoo.  However, just because I choose to use a package installer does not mean I get an application installation that is mangled.  I suspect there is something wrong with the tomcat6 deb installation that is preventing me from using a particular war. 

1.)  How the hell do I enable logging?  Why do I have to go through several web pages to figure out how to do something so basic in a system?  Why does the tomcat6 manager not have a link to the logs?  Who cares about JLUI and Java.Logging differences.  All I want is a simple log file that I can open up in a text editor and refresh when new entries get created.  Why do I have to go through var/log and syslog to see tomcat debug messages.  Tomcat6 logging is ridiculous.

2.)  Why does a broken deb result in you not being able to install any other deb on your system?  I had to manually delete entries in apt-gets database.  This was not fun or pleasant and they could have easily included that functionality in synaptic.

3.)  Why is this easier to install on a Windows XP box than a fresh Ubuntu install?  Iv’e been a linux user since the early days of Slackware and back then open source software was not easier to install in Linux than windows.  This is a new development for me.