Bill Bows Out

In case you've been in a zen-like coding state for the past couple of days, Bill Gates is checking out the building. In hindsight, it's clear Bill has been edging closer and closer these last few years: first handing over the day to day to Steve Ballmer, then elevating Ray Ozzie to sit one step down from the throne.
Since everyone else with a heartbeat and a laptop have opined what this means for Microsoft, the software industry and the WBM (World Bill Made), I thought I’d weigh in with what a few predictions of what this means for micro-ISVs:

  • Go Live Go – Ray Ozzie gets the Net in ways Gates only reluctantly ever did. Now that Ozzie is The Man, expect to see the Live vision of the world get significantly more resources and prestige internally in Microsoft at all levels. On a practical level for developers, expect to see Microsoft build a true online ISV distribution channel – one that micro-ISVs will be able to get in on.
  • Big Ships Turn Slow – At the same time, Microsoft is a huge company nowadays, and huge companies at the top of their game turn very slowly. Office 12/Vista will unroll pretty much as planned over the next several years. After that though, I would not be surprised to see the next big Office/OS become a low cost core endpoint for consumers, business and enterprise pulling down from the MicrosoftNet added functionality tailoring the one size fits all to the era of customized everything.

OISV – The Organisation of Independent Software Vendors

The OISV is a new resource for ISVs, it went live last week.

So far it has a small collection of articles, a badge to display on your website, and some promising looking forums, but much more should be on its way. They may have invited early scepticism by already claiming to be the world’s largest organisation of ISVs, but overall I think they’ve done a great job on the site, and should be applauded for aiming high.

So You're a Programmer, but Should You Be

In my last post, "I went to the dark side and made it back alive", I made a brief reference to Myer's-Brigg's personality typing and the need to understand your strengths and weaknesses. In all honesty, I wouldn't have had a clue with regards to personality types if it wasn't for my wife's expertise in this area. While she specializes in child and youth psychology, she's contributed to a lot of what I understand about myself as well as how I view others. In fact, she'll read this before you will.

The basis of this personality testing is that there are four pairs of traits we each have. You get to pick one (that's wishful thinking) of each pair and that's how you'll tend to behave. This results in sixteen distinct personality types, each of which has a few traits in common with others (say those that share three of the four) and some traits that are particular to just that group. The title of this post refers to programmers, so I'll focus on the traits that make good programmers (or the lack of the traits that cause bad programmers). One other facet of this typology is that two of the traits will tend to group the types. Keirsey calls the four major groupings the "Temperments" and the 16 possible combinations the "Role Variants".

Your Own Test Lab, Minus the Lab and the PCs

Ever need to see if your web site or application works properly under Firefox on Linux? IE on Macintosh? Wide-screen resolution on Windows XP?

If you're a small development shop, you probably can't afford to buy all of the hardware and software configurations you'd need. While there are virtualization solutions like VirtualPC or VMWare, you'd also need to buy and install each OS platform before you can even start. Oh, and you'll need 2GB of RAM to run these at better than a crawl.

Enter BrowserCam, a web-based service that offers several ways to test your web apps or site with a minimum of fuss.

The basic service lets you automatically take snapshots of your website on a variety of platforms (from Windows 98 to Mac OSX to Linux), and a variety of browsers (Firefox, Netscape, IE, Safari, Konqueror, etc.). Just enter a URL, and the service does the rest.

If you need more hands-on testing, a Remote Access service is available to play with your application on all of these platforms. This requires a VNC client or you can use their built-in Java VNC client from your Web browser.

Eight down, 56 to go

As the World Cup got off to such a great start this weekend, I don’t have anything to say about software development or Micro ISVs, so I’ll save you the trouble of reading something forced.

Since the USA team campaign gets underway just a couple of hours after my posting slot on Codesnipers, I’m also assuming many of you will be far too busy trying to find a TV or radio to bother reading anything I might have had to say. Here in the UK, we get mostly negative reports about the awareness of the game in the US, but KC assures me there are plenty of fans, and that numbers have been on the rise.

So, if you’ll be watching or listening, good luck and enjoy the game. If not, I’ll be enjoying it for you....

Finding your Blue Ocean

One of the hardest problems starting a micro-ISV is defining your product, and one of the best ways to frame this question comes from a very unlikely source: the Harvard Business School press.

MBA stuff is usually about as useful to developers and feathers on a fish; MBA’s tend to be the people who wander from corporate cubicle to meeting, muttering in incomprehensible management-talk. Yet, here’s a book by two highly prominent MBA academicians that nails how micro-ISVs can find the right application or web service to create.

Now Chan Kim and Bruce Henderson didn’t set out in Blue Ocean Strategy to find out how startups can define what they are starting up – they wanted to find the key secret sauce of why when big businesses start new businesses some take off, most putter along a few crash and burn spectacularly. But hey, I’ll take it.

Building a Site With Clean URLs

As an aside in my post about Cambrian House I posted some code for making pretty URLs. A few people (no, not CH) have asked for a little more info, so I've written up an explanation of that code.

PHP makes it very easy to create bad URLs like /member.php?id=8. Those are bad because web spiders don't like to crawl URLs with GET variables, some browsers don't cache any GET URLs, they expose that you use PHP (when the visitor should never even know), and they're just downright ugly and hard to remember. I'm going to present a way to build a PHP/Apache site with clean URLs.

Let's look, line-by-line, at the contents of .htaccess. While writing this article I found a more elegant equivalent in the Wordpress code, so I'll present that here:

# Tell Apache to load mod_rewrite.
RewriteEngine On
# Rewrite URLs for the location starting at /
# Note this is URL location, not a path to your web root.
RewriteBase /

From PHP to Perl

In recent months I've been moving away from PHP, a language for which I have developed in for 6 years. I learned it because it was free instead of learning ASP. I made a website for my boyfriend so he could write articles about computer gaming hardware. I interned at a place and did PHP, and then moved to another company doing PHP.

I was pretty content with PHP ... until I saw Ruby first, then made friends with some Perl geeks, realized they weren't all arrogant l33t language snobs and took another look at Perl. Hey, its kind fun! PHP had become boring and Ruby and Perl gave me a new challenge. At first, I only read them thinking "how can I do this in PHP.." and managed to get my company where I did PHP to send me to YAPC. But after a time, I realized I didn't like PHP anymore and I wanted to do Perl or Ruby.

I've written a few articles on CodeSnipers on the differences between Ruby and PHP. I wrote one on datatypes in PHP vs Perl. Click on the Ruby topic on the side to find those articles.

Since I have been coerced into giving a 5 min talk at Perl meeting tonight about this.. Here's some of my thoughts in a blog...

Why Bug Fixing Can Be Hazardous To Your Project

Stop fixing that bug right now! You could be putting your project at risk without even knowing it.

When I first started developing software over 15 years ago, I thought that bugs were evil, and should never appear in any software. It was a matter of personal honor, integrity, and pride to eliminate any bugs.

Only one problem with that approach. There is an opportunity cost to every bug you fix. And there is a risk factor as well.

The 80/20 Revolution

The most common theme on Codesnipers lately has been information overload, which is just a small part of the wider topics of productivity and burnout. Bob’s been talking about the 80/20 principle in many different ways, but here he applied it to his RSS feeds list.

I’ve been trying something similar over the last couple of weeks, so I thought I’d share. At first it was difficult, because, believe it or not, I didn’t have a feeds list.