Wednesday, January 9, 2008

The Claustrophobia of Microsoft Windows

Microsoft wants us to believe that "Windows" stands for something beautiful and ethereal, a view into our work, a way to see the future, something that lets light into our world so we can do everything we want. But Micorosoft Windows is no such thing. Microsoft Windows is nothing more today than it was when it was first introduced: boxes for programs to run in. That's it, boxes on your screen. Empty boxes.

That became abundantly clear to me when, after years of not using Windows, I made a fresh installation of XP on a VMWare virtual machine on my new Intel MacBook Pro after installing Freebsd 6.2 and Debian earlier in the day. I have to say that if you haven't done that in a while, please do it because the contrast is stark and experiencing it back-to-back is the best way to grok it.

After the installation of Debian and FreeBSD I had full powered, responsive computers which were both ready to accept thousands of software packages without cost or complaint. Both of these systems easily connected to my network, even the Windows domain that still remains, and found their way onto the Internet. I could run them remotely and even forward their desktop GUIs to my MacBook. Nothing surprising there.

Then I installed Windows XP. When the installation was finished I was at the desktop where I found.... nothing. Nothing at all. Windows was completely impotent out of the box. There's no decent software to be found when the installation CD stops spinning. No, Solitaire does not count as an application - especially if I can't even find something with which to write a decent memo. Clicking Start, Run and typing 'cmd' gave me a command line which I thought might help (it's been a while), but I might as well have been scratching my name in the ground with a stick as use the command line with its anemic command set and only about 20 viewable lines. Windows had trouble finding the network, even the other Windows boxes. It's downright claustrophobic to use Windows because there's no way out.

I know none of this is news to anyone, but I was so struck by how empty the view was out of Windows' windows.

My step-son has a computer in his room that runs XP. The box is only a couple of years old but was running like a dead dog. It had obviously been compromised by spyware, but I kept my distance out of respect for his privacy. Then it tanked and wouldn't boot. Now, since he had gotten a very cool Alienware laptop for his gaming, the old XP box wasn't doing much except running tax returns and iTunes. My wife asked me to see if I could fix it. I said I would install FreeBSD on it and it would be like new.

First, I used FreeSBIE and Knoppix to boot the computer from CD. Either of these would do, but I wanted to try both. (They're both great tools for rescuing other systems, so if you haven't tried these, give them a whirl.) Once under control of a Unix operating system, I was able to mount a 4GB USB memory stick to hold my wife's files. Rather than go through the muscle cramps of clicking and dragging the files and directories, I just wrote a quick script, ran it, watched some TV and checked it out later. It worked. I yanked the USB stick and sat back to figure out what to do with the now utterly unimportant and compromised box.

Long story short, I decided I wanted to try PC-BSD for this machine. I love FreeBSD and have set up some very nice servers and even a couple of zippy desktop machines using it, but I'd read some great things about PC-BSD and DesktopBSD and thought this would be a good time to get my hands on one of them. I chose PC-BSD because I thought my wife and step-son might like KDE more than Gnome.

The installation was a piece of cake. There are plenty of step-by-step accounts of how this gets done, so I won't bore you here with the details, but I will bore you by repeating that this computer probably never ran faster than it does now. I actually compared the CPU load on this machine running some software with my step-son's new Vista loaded laptop running nothing. The Vista laptop was breathing harder sitting still than the FreeBSD box was at a long, light jog.

So, it looks like Windows is a dog. It's anemic, triggers claustrophobia, catches more diseases than a tarted-up street-walking crack-whore and doesn't have enough energy to get out of its own way.

The reasons for this sorry state of affairs is because Microsoft doesn't know what it's doing. And it was made abundantly clear to me last night.

Before leaving on a business trip for the week I moved some Word files off the PC-BSD box to one of my PowerBooks for my wife to use. Copying was easy, but when my wife tried to open the Word files, Microsoft Word on my Mac complained that it couldn't read the file because the file format was no good. It was late, so I took the bait and tried to figure out what the problem was with the file formats. Geez. It turns out that I had simply forgotten to change the owner of the files once I had moved them into my wife's account on the Powerbook. So Microsoft Word couldn't distinguish between a file permissions error and an unknown file format. There's something deeply distrubing about an important piece of software that can't properly interpret fundamental information from the operating system.

Microsoft really doesn't know what it's doing, does it?

Monday, December 18, 2006

First Steps

In 2002 I wanted to create a software product to sell in the Public Finance space, Agelis. Agelis requires a relational database with solid capabilities, but large systems like Oracle or DB2 were overkill.

As I explored the problem of developing a solution to bring to market and checked out the stack of software that would be used to build the system I realized something important. I realized that my customers were going to pay only so much for our solution - for any such solution - and that amount was going to be based upon its value to them. Nothing more.

We knew that our solution was a distinct offering and was the embodiment of some special understanding we had attained in this problem domain. I felt that whatever money we could get a client to part with for that solution should be ours and not get shipped off to Redmond or Redwood Shores for no good reason.

I started a search for a cheaper, yet technically capable database server to use as the default implementation of Agelis. In the process I reviewed a number of products that were cheaper than SQL Server, Oracle and DB2 and quite capable.

In October of 2002 I was home recovering from a bee sting (I'm allergic, so it was a big deal) and watching my TiVO. As I drifted in and out of my Benedryl-overdose induced naps I thought about that trusty little box that simply never - never - gave me a hard time. And it occurred to me that if that ran on Linux, how bad could open source software really be? I thought to myself that maybe I owed it to myself to check into this.

The tree outside my picture window was alive with color and I drifted off to sleep.

But I didn't forget.

Before going any further I must remind you that at the time I knew absolutely nothing about open source software. Like many developers enveloped in the smothering embrace of the Microsoft ecosystem my view of open source software was as dismissive as it was uninformed. While I had heard of Linux, my impression was that it was a hobbyist's toy and nearly impossible to wrestle into submission. In the back of my mind I knew there had been shareware once upon a time and I knew there were some wild-eyed radicals running around in Cambridge, MA saying that all software should be free and I knew that I knew nothing more than that.

I had no idea what I would find and I'm still astonished at how my decision to look a little further for a database that was a little cheaper would so utterly change my understanding of what software was, what it could be and how it would change just about everything for me and my little company.

The first thing I came across was SAPdb - a bit off-beat, but that's what happens when you open yourself to new experiences. I downloaded SAPdb and really liked its performance and stability. Being able to use the little "Powered by SAP" logo would have been cool too. However, SAPdb was a strange database that presented a pretty steep learning curve.

As I looked further, I came across the usual suspects, MySQL and PostgreSQL. I'm actually embarrassed to admit that I knew nothing about these projects at the time. I'll cut to the chase and simply explain that we decided that PostgreSQL suited our needs best and I started to test it out.

During this time my Dell laptop decided it had better things to do than work for me and I was tired of trying to recover Windows yet again. So I slicked it and installed Red Hat Linux (and then Suse for the sake of comparison) and started running SAPdb and PostgreSQL. This was a huge step for me.

It had to have been at least 15 years since I stared down a command line and I had really no experience with Unix. While I certainly struggled with it - after all, I had a business to run, it's not as though I had all day to tinker with this stuff - I was able to get a pretty good handle on things. I was able to install software, connect to the internet, connect my network, do some x-forwarding, remote administration, run OpenOffice. In a couple of months I slicked my desktop computer and installed FreeBSD to see what that was like. This was a lot of software installing for someone like me. Things like this did not usually go well for me. I had wrecked so many Windows boxes in my life to conclude that either I hated computers or they hated me.

I preferred FreeBSD. I thought it was cleaner and very well thought out. I also liked that it was complete, but that's just me. I recognize that there are some very good Linux distributions out there and I have noticed that Suse runs like a gazelle and Ubuntu is a beautiful thing that tugs at my heart strings, but this is really about choice, right?

This whole expedition into open source started because I wanted to create a stack for our software product that didn't entail sending undeserved rents to others. But in the end I found so much more than that. I found that we had the ability to service the entire stack, from the base operating system code to the finest detail of the user interface. With open source software as the default implementation of our solution, we could look a client in the eye and know that we could give him unconditional support while knowing that the foundation of the system was rock solid. It really doesn't get better than that.

But could we really? Could we really create an entire product from open source software? My next post will show you that we did exactly that by converting an existing, faltering and failed product from its Windows.NET/SQLServer/IIS implementation to an all open source success.

Sunday, December 17, 2006

Leaving Microsoft Behind

In life most relationships don't suddenly end. In reality they degrade over time moving from love and respect to indifference and then to contempt. Eventually there comes a point where the only thing left to do is to say good-bye. I came to that point with Microsoft in 2002.

Personally, I've made a complete break with all their products. However, my software company, The Oasis Group, Ltd. still uses and develops software for Windows. This situation is like having my ex's stuff still in my house - awkward and uncomfortable reminders of an unclean break. Windows still exists at Oasis only because we have one last project to finish before we can be free of it. Despite that, we haven't purchased a license for Windows or any Microsoft product in years and we have mostly moved to open source software instead.

This was not a casual thing. I was not an anonymous software developer banging out code for a living. I had a thriving boutique company that was doing interesting work around the world for the bluest of blue chip firms. We were in deep as a Certified Solution Provider, Certified Solution Developers, authors of magazine articles and several books on developing software with Visual Basic, SQL Server, Oracle and Access and I spoke at numerous conferences, some sponsored by Microsoft. All of my business associates, co-authors and fellow conference speakers were also Microsoft adherents. Until I made the break, alternatives were not discussed or even contemplated.

The fact that I made the break says less about any brilliance on my part than it does about the smothering effect Microsoft has on customers and on the developers they have brought into their ecosystem. I rarely found Microsoft developers who were not also apologists. I know because I was one of them. "Hello, my name's James and I'm a Microsoftaholic."

I guess I got here in some ways like a lot of people. After years of putting up with crappy software I was confronted with two realities by Redmond: endure having to get my software developers to learn what was at the time an untried and rather amorphous new development environment called .NET and start paying what I thought were exceedingly high new licensing costs for software that was proving to be increasingly unstable, obstinate, insecure and late.

But I had a choice. I could have chosen to go along in order to get along or I could make a break for it. I chose to make a daring daylight escape. I chose to run and I'm glad I did.

In other posts I'll explain in greater detail how this all happened, what I was seeking, what I've found and how my little company is going to continue to explore - and thrive - with the freedom it has claimed for itself. It's been an interesting trip so far and I think the scenery is just going to get better and better.