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. 

Apple Adjusts

Apple has loosened restrictions on developers writing code for IOS.  This is entirely to be expected.  Apple is a smart company.  They can feel themselves losing their grip on the mobile marketplace.  They need all the hands on deck to offshoot this winter’s Android tablet invasion.  If this year is any indication, Android will dominate the mobile phone market even quicker than I could have expected.  I predicted 3 years earlier this year, but, honestly, with 800,000 of one brand of Android phones selling out in a week and no vendor capable of stocking any high end Android phones, the tea leaves are clear.   Apple knows that their last and best has to be the Ipad.  If the Ipad doesn’t remain the dominate computing platform for media delivery then all those media houses and Apple are in trouble.  But, how could the Ipad be that device.  First off, its not the best tablet.  Its just Apple’s first successful tablet.  That is saying something, but, Apple will not be able to hold off the Android tablet phenomenon.  There are going to be at least 10 to 12 tablets with more features and lower prices than the Ipad this christmas.  Once the media houses realize that they have to do Android apps as well then Apple is sunk in the tablet market.  I have to admit that Apple is going to lose this battle not because their product is second best.  In fact, if the Ipad was the most amazing tablet pc ever, it would still be a disaster.  No one can compete with multiple competitors offering even the same product for lower prices.  This fantasy that somehow Apple has an intuitive understanding of consumers will be proven for the bunk it is.  The most brilliant product apple has ever created was Apple OS X.  Unfortunately there are literally dozens of oses available (most for free) that offer the same or better features than OSX.  That Microsoft Windows is dominant is a reflection of the market saturation of Microsoft rather than any inferiority of the Apple products.

Apple is smart enough to accept that they will lose the mobile phone market.  They can accept that as long as they can still charge a premium for their phone device (which is why they will never leave AT&T).  What they cannot accept is that ubiquitous computing will leave them behind.  Apple is not going to be defeated by an Android sword.  Instead it is going to be defeated by a million Android paper cuts.  Its a familiar feeling for Apple and it can’t feel good about it.  Even I wish it would happen to a worse company. 

Speaking of a worse company what the hell is Nokia thinking.  Symbian 3’s opportunity was back in 2008 before Android hit the street.  The moment the G1 came out the opportunity for a new mobile phone stack to make it pretty much disappeared.  Android is literally the best we can do right now for a phone stack.  I know it sucks to accept this, but, honestly we should have been able to have something like Android with J2ME and I don’t even know how long ago that disaster was.  Android’s greatest innovation is that it is an open source mobile device platform.  Sure you can make a better platform.  But, if you aren’t willing to give it away you can’t beat Android.  I suspect that Nokia is going to undergo a painful market readjustment once the failure of Symbian 3 is accepted.  Once they and Blackberry start selling Android devices I will invest in them.  Otherwise, they are on the wrong side of history.
        

Problems of being a large company, or why GWT and AppEngine don’t work well together

I wasted about a week on a known issue with GWT and AppEngine (link).  The basic problem is that GWT requires the source of a Java class in order to provide access to that class on the client side.  The issue is that age old problem of front end and back end version of objects that you encounter a lot.  The fix would be if the App Engine team had done some consultation with the GWT team so that this restriction of the GWT wouldn’t mean trouble for developers using both.  As it stands I’m going to use the light version of object solution.

Sucks that this problem exists, but, its what happens with a large company.  Two teams go off and do something and the results are a little incompatible.  It happens.

Google Web Toolkit

The big boys have another hit on there hands. If you haven’t heard the Google Web Toolkit is out in the wild and even comes with a nice Eclipse Plugin. The link is here (http://code.google.com/webtoolkit/). Very nice stuff and it even offers the ability to use the Google App Engine as host for your apps. The benefits of using GWT are plentiful, but, for my purposes:
1. Allows me to write a snappy looking Ajax enabled app without becoming a JQuery god.
2. Develop an app in a productive language like Java and then publish it as raw Javascript.
3. Eclipse plugin that enables me not to think about it.
4. Built in support for the Google App Engine (one less thing for me to think about).
5. Did I mention the whole Java thing…That is huge, because you are getting the power of Java in your apps.

Steve Jobs and the rest of the world

Before I say anything, let me say that I have a tremendous amount of respect and regard for Apple and their marketing expertise. This is not a slam, but, they sell 5 year old technology and make more off it than even the creators. Thats not their shortcoming, but, its a recognition of how talented they are at the sale. There is a genius in that. Complain all you want about being outdated and boxed in, but, you are getting a product that reflects the ideals of the packagers better than almost anything out there.

With that being said, I completely disagree with Steve Jobs vision of the world. I prefer freedom and independence even if it means that I have to have more diligence and put some effort into making it my own. As a software developer, I find the latest Iphone SDK odious. I can understand that Apple has an interest in controlling the “user” experience for it’s customers. However, frankly its none of their damn business really how I use their devices. To me, this started with the way they responded to “jail breaking.” For those who don’t know, that was the term for the way an IPhone can be rooted so that the users is able to configure the phone as they like and install whatever software they like. As a customer, I think that if you ask me to pay full price for this phone I have all rights to install whatever I want on the phone. While on the Verizon network I was running a Motorola Q with a nonstandard ROM. Though Verizon had a problem with that they didn’t block me from the network or not allow me to get updates etc. I had a nonstandard ROM because I wanted to use extra features that were in my phone that the Verizon ROM didn’t allow. My ROM did not have any impact on the Verizon network (though some customizations may have an impact). Now I can understand if a company feels that they should not suffer negative impact because of some change to a standard release. However, its usually impossible or difficult to tell ahead of time that a particular customization will have a negative impact. Until someone does it in the wild there is no way for Apple to know what impact some customization will have. What I find disturbing about the SDK is that it makes the presumption that developers will do things that have a negative impact. As a developer I find that insulting, but, understandable. However it is illogical. Without any testing there is no way to know these things. Since Apple isn’t testing nonstandard customizations there is no way for them to know ahead of time. Therefore they cannot jump to the conclusion that customizations will be bad.

This latest SDK is really about Apple wanting to further control customization to the IPhone. It is all apart of how Steve Job sees the world. I’m not going to comment on how valid or invalid his world view is. Frankly people can believe what they want about the world. However, this cannot justify him trying to change the world to fit his particular world view. I want the freedom to use what I paid for however I want as long as it doesn’t negatively impact others (such as Apple). For him to presuppose that something I do will negatively impact is quite insulting and infringes on my rights as a customer. It will only be a matter of time, before Apple’s philosophy about closing the user experience becomes a legal issue. It will already become a market issue. Everyone knows that wherever you find lots of programmers you are now going to find lots of Android phones. It is no accident. Developers all like to flirt with the vision of perfection that is Apple. However, when we roll up our sleeves we want systems that allow us the freedom to customize. For cellphones, Android is that platform. As I have said before, over time this will result in a shrinking market share for the IPhone. As I have said, this has happened before.

Since I know the market will correct the influence that Apple has on mobile application development I am not really concerned about what Apple is doing. Apple is doing the worst to their own interests. The current spat with Adobe strikes me as further desperation. If Apple really believes that they are going to have the market share to direct the future of web application development then they are under some grand illusion. Not even Google has that much influence and Google is probably the closest to having that influence.

What I get from all this is more of the old Apple conflict between Jobs and Wozniak (link). This is actually an old conflict between closed and open systems. As influential as Jobs is on consumer electronics is how influential Wozniak is on software engineering. In the end I believe the bazaar will always be larger than the Cathedral. However, I believe there will always be a Cathedral. The thing is that there will be fewer and fewer people flocking there.

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!!!