22

Raymond Chen has been running a series of interesting articles about the history of Windows and its API. Ever wonder why the time zone map no longer highlights the zone you’re in? Or what the BEAR35, BUNNY73, and PIGLET12 functions are named after? Or why you turn off your computer by clicking “start”? I’ve bookmarked his site.

In particular, “The secret life of GetWindowText” should be required reading for anyone trying to understand API lockin. Describing one aspect of this simple and fundamental part of the Windows API takes a couple of pages. And then notice the kicker:

The documentation simplifies this as “GetWindowText() cannot retrieve text from a window from another application.”

As Raymond says, “the documentation tries to explain its complexity with small words, which is great if you don’t understand long words, but it also means that you’re not getting the full story.” (Actually, Raymond, the documentation does tell the whole story, look closer.)

Anyway, the complexity behind such a simple function is a classic example of an abstraction leaking. And more importantly, it’s one of the reasons it’s so dang hard to write API emulation layers, like, say, WINE… because getting 100% compatibility means emulating all these bizarre internal complexities perfectly, even when they’re not completely documented or the documentation doesn’t really describe what happens in every scenario.

Printing

Does anyone have any suggestions for inexpensive ways to print two color, high quality letterhead, stationary, and business cards? A number of people have recommended Vistaprint; I’ve decided to avoid them because they seem to be pretty major and unreformed spammers.

21

A once-in-a-generation blackout is the first time most people discover the problems with their emergency backup plans. Oh, look, we’re out of diesel fuel. Or: I didn’t know our generator needs electricity to turn on! (Yes, such things exist.)

When the lights went out in New York City last week and across much of the Northeast, Joel on Software and Fog Creek were online the whole time. We even sold software while the electricity was out. Credit for this goes to our colocation provider, Peer 1 Network, who maintained 100% uptime on backup generators while many of their competitors were falling over. Peer 1 even invited the journalists of the Toronto Star newspaper to their Toronto facility where they were set up with light, air conditioning, and Internet access allowing the Star to publish during the blackout.

Peer 1 hosts Joel on Software for free as a public service, but I would not hesitate to recommend them to anyone in the market for colocation.

20

New Fog Creek LogoI’m back from a nice vacation in England and Norway (motto: “And you thought the English liked mayonnaise”). Over the next few days I’ll be busier than a pair of jumper cables at an Alabama picnic catching up.

At the Oslo dinner Petter Hesselberg gave me a copy of his brilliant book Programming Industrial Strength Windows. I believe it’s out of print, but if you’re developing Windows software for a commercial/shrinkwrap type market, it should be required reading, so do track down a used copy. This is one of the only books that really talks about all the nitty gritty things you want to get right if you are releasing a Windows application for a large market: the kinds of things that, individually, only affect a small percentage of people but taken together spell the difference between super solid Lexus quality production code that delights its users, and Yugo clunkitude.

08

?

Mystery icon: what’s this?

I’ll be on vacation for a couple of weeks. As soon as I get back, I’ll push the button and we’ll release CityDesk 2.0. There’s a loophole the size of a truck going on right now with CityDesk pricing… we promised to upgrade all CityDesk 1.0 Home or Pro Edition users to CityDesk 2.0 Pro for free when 2.0 ships. So basically while I’m looking at fjords and glaciers, you can buy the 1.0 home edition for $79 and get the 2.0 pro edition free when I get home, saving $270.

02

Picture of Norway's FlagOslo Dinner

You’re invited to a Joel on Software dinner in Oslo, Norway on Thursday, August 14th, at 19:30 at Peppe’s Pizza, Karl Johansgate 1 (outside Oslo S).  I’m arriving that afternoon on SAS 1514; you may want to check if the flight is horribly delayed or cancelled, in which case the meeting is still on but I won’t be there!

Yes, we’ll have more dinners in other cities in the future.

Joel (March 28): “… when you relocate more than a couple of miles, some employees’ lives would be too disrupted to make the move, so you lose a lot of employees, and all the institutional knowledge, skill, and experience that comes with those employees. While I was working at Viacom one of their companies, Blockbuster, decided to move from Florida to Texas after they hired a new CEO who lived in — Texas! What a coincidence! Only a small portion of the employees made the move. For years and years the business press watched agog as Blockbuster made mistake after inexcusable mistake, re-trying all kinds of ideas that had failed only two years earlier.”

LA Times (April 13): “Investigators are examining whether the move eviscerated Boeing’s technical capability and played a role in the Columbia disaster on Feb. 1…. The decision to move the jobs was highly unpopular among Boeing’s workforce, and about 80% of the California engineers refused to relocate, forcing the company to hire workers in Texas and forfeit much of the experience of its California engineering base.”

Rick Chapman is In Search of Stupidity

(This is the foreword to Rick Chapman’s new book, In Search of Stupidity.)

In every high tech company I’ve known, there’s a war going on, between the geeks and the suits.

Before you start reading this great new book full of propaganda from software marketing wizard and über-suit Rick Chapman, let me take a moment to tell you what the geeks think.

Play along with me for a minute, will you?

Please imagine the most stereotypically pale, Jolt-drinking, Chinese-food-eating, video-game-playing, slashdot-reading Linux-command-line-dwelling dork. Since this is just a stereotype, you should be free to imagine either a runt or a kind of chubby fellow, but in either case this is not the kind of person who plays football with his high school pals when he visits mom for Thanksgiving. Also, since he’s a stereotype, I shall not have to make complicated excuses for making him a him.

This is what our stereotypical programmer thinks: “Microsoft makes inferior products, but they have superior marketing, so everybody buys their stuff.”

Ask him what he thinks about the marketing people in his own company. “They’re really stupid. Yesterday I got into a big argument with this stupid sales chick in the break room and after ten minutes it was totally clear that she had no clue what the difference between 802.11a and 802.11b is. Duh!”

What do marketing people do, young geek? “I don’t know. They play golf with customers or something, when they’re not making me correct their idiot spec sheets. If it was up to me I’d fire ‘em all.”

A nice fellow named Jeffrey Tarter used to publish an annual list of the hundred largest personal computer software publishers called the Soft-letter 100. Here’s what the top ten looked like in 1984[1]:

Rank Company Annual Revenues
#1 Micropro International $60,000,000
#2 Microsoft Corp. $55,000,000
#3 Lotus $53,000,000
#4 Digital Research $45,000,000
#5 VisiCorp $43,000,000
#6 Ashton-Tate $35,000,000
#7 Peachtree $21,700,000
#8 MicroFocus $15,000,000
#9 Software Publishing $14,000,000
#10 Broderbund $13,000,000

OK, Microsoft is number 2, but it is one of a handful of companies with roughly similar annual revenues.

Now let’s look at the same list for 2001.

Rank Company Annual Revenues
#1 Microsoft Corp. $23,845,000,000
#2 Adobe $1,266,378,000
#3 Novell $1,103,592,000
#4 Intuit $1,076,000,000
#5 Autodesk $926,324,000
#6 Symantec $790,153,000
#7 Network Associates $745,692,000
#8 Citrix $479,446,000
#9 Macromedia $295,997,000
#10 Great Plains $250,231,000

Whoa. Notice, if you will, that every single company except Microsoft has disappeared from the top ten. Also notice, please, that Microsoft is so much larger than the next largest player, it’s not even funny. Adobe would double in revenues if they could just get Microsoft’s soda pop budget.

The personal computer software market is Microsoft. Microsoft’s revenues, it turns out, make up 69% of the total revenues of all the top 100 companies combined.

This is what we’re talking about, here.

Is this just superior marketing, as our imaginary geek claims? Or the result of an illegal monopoly? (Which begs the question: how did Microsoft get that monopoly? You can’t have it both ways.)

According to Rick Chapman, the answer is simpler: Microsoft was the only company on the list that never made a fatal, stupid mistake. Whether this was by dint of superior brainpower or just dumb luck, the biggest mistake Microsoft made was the dancing paperclip. And how bad was that, really? We ridiculed them, shut it off, and went back to using Word, Excel, Outlook, and Internet Explorer every minute of every day. But for every other software company that once had market leadership and saw it go down the drain, you can point to one or two giant blunders that steered the boat into an iceberg. Micropro fiddled around rewriting the printer architecture instead of upgrading their flagship product, WordStar. Lotus wasted a year and a half shoehorning 123 to run on 640kb machines; by the time they were done Excel was shipping and 640kb machines were a dim memory. Digital Research wildly overcharged for CP/M-86 and lost a chance to be the de-facto standard for PC operating systems. VisiCorp sued themselves out of existence. Ashton-Tate never missed an opportunity to piss off dBase developers, poisoning the fragile ecology that is so vital to a platform vendor’s success.

I’m a programmer, of  course, so I tend to blame the marketing people for these stupid mistakes. Almost all of them revolve around a failure of non-technical business people to understand basic technology facts. When Pepsi-pusher John Sculley was developing the Apple Newton, he didn’t know something that every computer science major in the country knows: handwriting recognition is not possible. This was at the same time that Bill Gates was hauling programmers into meetings begging them to create a single rich text edit control that could be reused in all their products. Put Jim Manzi (the suit who let the MBAs take over Lotus) in that meeting and he would be staring blankly. “What’s a rich text edit control?” It never would have occurred to him to take technological leadership because he didn’t grok the technology; in fact, the very use of the word grok in that sentence would probably throw him off.

In Search of Stupidity -- the Cover
Buy the book

If you ask me, and I’m biased, no software company can succeed unless there is a programmer at the helm. So far the evidence backs me up. But many of these boneheaded mistakes come from the programmers themselves. Netscape’s monumental decision to rewrite their browser instead of improving the old code base cost them several years of Internet time, during which their market share went from around 90% to about 4%, and this was the programmers’ idea. Of course, the nontechnical and inexperienced management of that company had no idea why this was a bad idea. There are still scads of programmers who defend Netscape’s ground-up rewrite. “The old code really sucked, Joel!” Yeah, uh-huh. Such programmers should be admired for their love of clean code, but they shouldn’t be allowed within 100 feet of any business decisions, since it’s obvious that clean code is more important to them than shipping, uh, software.

So I’ll concede to Rick a bit and say that if you want to be successful in the software business, you have to have a management team that thoroughly understands and loves programming, but they have to understand and love business, too. Finding a leader with strong aptitude in both dimensions is difficult, but it’s the only way to avoid making one of those fatal mistakes that Rick catalogs lovingly in this book. So read it, chuckle a bit, and if there’s a stupidhead running your company, get your résumé in shape and start looking for a house in Redmond.



[1] Source: Soft*letter, Jeffrey Tarter ed., April 30, 2001, 17:11.

01

In every high tech company I’ve known, there’s a war going on, between the geeks and the suits. Read all about it in my foreword to Rick Chapman’s excellent new book, In Search of Stupidity.

Meanwhile: the CityDesk 2.0 release candidate is here. If you have been using any version of the beta, please upgrade to the 2.0 release candidate. If you have been using 1.0, this is a pretty dang stable release thanks to the beta testers from four prior rounds of beta releases, so you can feel reasonably safe about using it. In a week or two if no major new problems crop up, we’ll rerelease this as the Gold version of CityDesk 2.0. Getting the Release Candidate

 

23

Need a disposable email address so you can sign up for some web site, quick? You’ve already got one, at Paul Tyma’s clever Mailinator. “Just send an email to any address @mailinator.com. Your email address already exists. Get your email sent here, THEN come check mailinator. Your mail will be waiting.” More proof that great UI design is done by taking away, not adding things.

17

OK. Yesterday’s post about Linux in Munich did, as predicted, cause an awful lot of slashdot-style religious debate, but alert reader Jan Derk went to the trouble of actually reading the report (PDF – in German). Thanks Jan! It seems like the answer to my sweet and innocent question about backwards compatibility is that they’re actually going to install Linux, but on many machines (as many as 80%?) there will be VMWare running a licensed copy of Windows inside. Also the majority of the price tag was for training and consulting, not the software licenses per se.

The surprise of the century is that Gartner actually has a reasonable and concise analysis, headlined “Munich’s Choice Doesn’t Prove Linux OK for General Desktop Use.”

Nobody outside of Redmond is going to be weeping much about the fact that deals like this can put pressure on Microsoft to be more competitive about pricing and more responsive to customers on license terms. If we’re lucky we can get to the point of long distance telephone service in the 1980s when it was first deregulated in the USA: nobody wanted to use Sprint or MCI, because their service was terrible, but we were sure thankful that reliable old AT&T had to lower their prices in response.

Google Holes

Slate has an interesting article on three big problems with Google. It is, indeed, practically impossible to find unbiased professional reviews of consumer products using Google, although I know they must be out there somewhere.