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
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.”
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.
I'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.
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.
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.
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.
Ah, finally! The final, gold version of CityDesk 2.0 is now shipping. Yes, it's a completely free upgrade.
We used to have both a Home Edition and a Professional Edition. That was a brave experiment, which was, I have to admit, something of a failure. Call it the Fog Creek PCjr. We wanted to make a cheaper entry-level version of CityDesk, but in the end we made something that was too cheap to support profitably, and which ended up making people worry about article count limits and go to ridiculous lengths to keep their sites under 500 pages. It wasn't fair to sell a crippled version of the product at a price that we simply couldn't maintain, so we're going to stop selling the Home Edition altogether, and eat the cost of moving every existing Home Edition user to the Professional Edition. We also lowered the price of the Professional Edition a smidgen (to $299), and introduced a lower cost Contributor Edition for team members who don't actually design sites, they just maintain them.
If you still haven't seen them, Michael and I made two movies (in Flash format) with demos of the latest features. Bring popcorn! These movies were made with TechSmith's Camtasia Studio, which worked like a charm (and no, you cynical freaks, they are not paying me to say that. Sheesh.) If you're completely new to CityDesk check out this online demo (I, for one, can't bear to hear my own voice so you'll have to watch it without me.)
The best part of developing shrinkwrap software is the wonderful feeling you get when people actually use your product, the work of your mind and hands, and get great things done.
John's Adventures: “Basically it's a superb piece of software... I used to be a web designer and I've tried virtually everything there is out there and nothing comes close to CityDesk in terms of power, flexibility and ease of updating your site.”
1111 posts over 13 years. Everything I’ve ever published is right here.
There’s a software company in New York City dedicated to doing things the right way and proving that it can be done profitably and successfully.