Be Prepared

As I noted previously, the Red Cross‘s site, and their donation host, Convio, had trouble handling the flood of attempts to help. Since then they have redesigned their web site to put more relevant information on the front page. Though this has increased the number of HTTP requests necessary to load the page, visitors can now link deeper into the site once there. They are also using Akamai, but whether that was after-the-fact or not, I don’t know: Convio isn’t, and that’s where I would hope to see most of the load.

What has alleviated the load on Convio is the contribution of scale from Apple, Amazon, Yahoo!, and others. PayPal is doing the same with the UnitedWay. However, you might expect that scalability would be one of the concerns raised in planning their on-line fund-raising.

On the client-side, SBC, in concert with Cingular, is providing telecommunications services, including access to the Internet, for the refugees. Once those refugees find Internet access, they can find shelter through MoveOn’s HurricaneHousing.org clearinghouse.

Meanwhile, Cingular Wireless has the following helpful advice while they work to restore service along the Gulf coast.

Throughout the affected areas, network congestion may be an issue and the company encourages customers to keep non-emergency calls to a minimum and to use text messaging as an alternate means of communications. [link added]

Newer Orleans

I’m glad to see that Ernie, the soul I know from New Orleans, has escaped the devastation there. We visited New Orleans in, I believe, 1996, and had a fun time there.

Being somewhat distant from the wrack and ruin, my sadness is dispassionate. I feel poorly, but there it is: I laughed at Chris Gillen‘s Katrina and the Waves joke, and sang “When the Levee Breaks” for most of the day yesterday.

If it keeps on rainin’, levee’s goin’ to break,
If it keeps on rainin’, levee’s goin’ to break,
When the levee breaks, I’ll have no place to stay.

The New York Times has a graphic showing the levees and the extent of flooding in the city, as of Tuesday afternoon.

Mean old levee taught me to weep and moan
Mean old levee taught me to weep and moan

Ironically enough, New Orleans was built on a rise where the Mississippi didn’t normally flood.

I saw a headline today, “New Orleans Abandoned.” My current preoccupation with real estate immediately led me to think about all that cheap swampland, but what the photographs remind me of is Venice. Bill sees Atlantis.

The American Red Cross site is over-loaded, not being prepared for the upwelling of support that accompanies a disaster, but you can route a contribution through Amazon. After the initial shock wears off, some million souls will need a place to live and something to eat.

Who’s the Buyer?

There are two buyers running up prices in this market: the couple buying your house, and their mortgage company. Before approving the mortgage, the lender will appraise the property and determine whether it is properly priced. You can buy whatever you want with cash, but lenders tend, or used to tend, to be more conservative in their valuations. The appraisal determines whether or not this property is good collateral for the size of the loan: will the bank be able to recoup their losses by selling the property?

Both are interested in one thing: affordable payments. The mortage company wants you to be able to afford your payments so that you do not default on the loan. You want to afford your payments so that you do not lose your house. The mortgage company is also making a profit. If they can make a quick profit, then it doesn’t matter to them that you can’t afford your payments, or that they purchased an over-valued house.

It will matter to the secondary mortage market if you default and the bank takes a loss.

A Roof Over Our Heads

David Sucher asks, How are you personally dealing with the housing bubble?

In fits and starts.

Over the past three years we have planned an addition to our home, then stopped when the construction prices were higher than building a new house; decided to build a new house, and put our house on the market, then took it off when the buyers were offering less than we were willing to accept; engaged an architect to plan an addition to our house, revised the plans again and again as the builders’ rough estimates kept exceeding our budget; and then decided simply to sell our house and buy another existing home. This time we got a buyer, at the same price we were asking last year, so I guess we were over-priced for last year’s market — though you wouldn’t think so from looking at the comparable listings.

There was one thing which kept pointing us back to purchasing another house: the cost of construction. Downstate New York has high construction costs. Labor and materials are both high. The labor because of the location, and the materials because of supply constraints and demand elsewhere as a result of the hurricanes last year and the continuing war in Iraq. And concrete delivery has risen in price because of the cost of diesel fuel.

What made me worry about buying another property is this bubble: I do not think the rate of increase is sustainable. If we were in this for the profit, then maybe renting for a time would be fine. But we’re not in it for the investment: this will be our home. And we expect it to be for some time to come. So while the prices are ridiculous, the mortgage we’ll be carrying will be not unlike our current obligations. If the balloon were to deflate, our home’s value would depreciate as well, so all-in-all, things are even.

You know what the kicker is? Broadband isn’t available there either.

On Google Talk

Yesterday, like the rest of the Known Universe, I installed Google Talk. I already have a Google Mail account, and, being a fan of Jabber, wanted to see how well they’ve done with the implementation.

If you can connect — and some people have had issues from their non-Google Jabber clients — the connection is swift. I don’t expect many scaling issues on the server side, but you never know. The Google Talk client initially tries to connect on the standard Jabber port, tcp/5222, but if that fails will connect over HTTP. Once it is connected, the response is snappy: it’s not burdened by the features and advertisements that clutter AIM, Y!M and MSN Messenger.

Everybody in my Google Mail address book can be invited to use Google Talk. If they accept my invitation, they’ll be added to my friends list. This process is simple, but because the user interface is sparse, it took some time to see how to do this — about two or three minutes.

After inviting a couple of my friends, and finding gmail addresses that I didn’t yet know, we exchanged a few text messages. Nothing out of the ordinary there. And then I talked with Jeff Beckham.

Now that was different.

After two or so text messages, I clicked the “talk” button to invite him to talk. He answered, and now I know what his voice sounds like! We spoke for a few minutes, then shifted back to text.

What was strange was the modal shift between the asynchronous text messaging and the synchronous talking. It was a little disturbing. Do you say hello? You were already talking, albeit by teletype. How do you end the call? But I can see the attraction of this for many people — they simply find it easier to talk than to write — and this integrates the best of both worlds.

Did I mention it’s free?

Verizon Online with Yahoo! Now Just $14.95!

Verizon announced yesterday that they are following our pricing lead with their introduction of Verizon Yahoo! Robert Ingalls, president of Verizon’s retail markets group, explains why the price is $14.95.

“It’s estimated that nearly 50 percent of Internet subscribers are still using dial-up, and dial-up users wanting to convert to broadband most often point to price as being a primary barrier.”

I still can’t get DSL from anybody, much less Verizon Online, so it doesn’t matter how they price it. I would have bought at $19.95, or even at $24.95, but DSL is just not available.

Co-Opting Generic Names

There is power in names.

You probably know that Oracle is a company, and that they sell databases. (Well, strictly speaking, they sell a database management system and some applications built on it, not databases, but we’ll forget for the moment that you’re not familiar with the distinction.) Now suppose that someone said they need an SQL database. What would you use for that?

Why, a SQL Server, of course!

(Maybe My SQL server, being more personal, will substitute for some readers, but most people are more confused than that.)

Joel Spolsky, in describing how they chose the name for Project Aardvark, wrote

Well, there are a couple of dozen products named Copilot, many with registered trademarks, so our trademark lawyer advised us to use Fog Creek Copilot which would eliminate any possibility of confusion with those other Copilot brand products. The point of trademark laws is that what you’re not allowed to do is create any confusion or potential confusion as to the origin of your product, and sticking “Fog Creek” in front guarantees that, but we have to be religious about always using the full name. I didn’t really mind, having started my career working on products like Microsoft Excel, Microsoft Visual Basic for Applications for Microsoft Excel, etc. etc. After a few weeks on the Microsoft Excel team if you ever saw the word “Excel” without a “Microsoft” in front of it, it looked nekkid. [emphasis mine]

Uh huh. Yeah.

If I buy a product, “Company Name Piece Of Crap,” from a company, “Company Name,” I’ll not call it “Company Name Company Name Piece Of Crap.” I, and the rest of the world, will elide the “Company Name” belonging to the product and call it a “Piece of Crap.” Everybody will know that we’re talking about their Piece of Crap.

And so it is with their SQL server.

Individual WebDAV DocumentRoots

I’ve been thinking off-and-on, mostly off, about how to configure individual home directories on a WebDAV server. What’s necessary for individual WebDAV DocumentRoots is nothing more than simply rewriting / if the user is authenticated.

There remain some usability issues. For example, how do we handle the move between DAV and non-DAV HTTP user agents? Suppose we would like to send a visitor off to setup an account if the user’s directory doesn’t exist. DAV user agents do not, in my experience, display the message-body of an HTTP error response. The simplest solution is to ignore the problem and require that the user set up their account elsewhere.

At this point I’m uncertain whether to return a 404 Not Found if the user’s directory does not exist, or a 501 Not Implemented. It’s more of a server-side error, though I suppose either status would apply.

Response status codes beginning with the digit “5” indicate cases in which the server is aware that it has erred or is incapable of performing the request. Except when responding to a HEAD request, the server SHOULD include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. User agents SHOULD display any included entity to the user. These response codes are applicable to any request method.

In any case, here’s the mod_rewrite ruleset.

Continue reading →

Waiting for Something to Break

A reprint from The Washington Post in today’s business section reaffirms what Web browsers already know: we’re bored.

“We know that 55 percent of all U.S. employees are not engaged at work. They are basically in a holding pattern. They feel like their capabilities aren’t being tapped into and utilized and therefore, they really don’t have a psychological connection to the organization,” said Curt W. Coffman, global practice leader at the Gallup Organization, whose large polling group measured employee engagement.

Demand in Action

After selling out to Dell so that they could experience the same joys I did this morning, the Henrico County (Virginia) School District sold their collection of used iBooks to the general public. Apparently they underestimated the demand.

RICHMOND, Va. – A rush to purchase $50 used laptops turned into a violent stampede Tuesday, with people getting thrown to the pavement, beaten with a folding chair and nearly driven over. One woman went so far as to wet herself rather than surrender her place in line.

Maybe they should have held a silent auction.

Wednesday, 17 August 2005: The Washington Post ran the story today. While the crowd failed to show polite restraint and respect for their fellow citizens, the administrators of the Henrico County schools, who undervalue the iBooks, priced them well below their market value.

The Richmond Times-Dispatch has a nice photograph of the rush, some statistics, and commentary on the incident which, in addition to the typical errors in logic and fact which pepper most undergraduate works, includes this delicious quote from a citizen

“My tax money is going toward total idiots,” [Linda] Dunn said of those who planned the event.

Obscure Failures

This morning I installed the latest round of critical Microsoft security patches on a Windows host. It was more complicated than expected.

Microsoft has greatly improved the Windows Update service. And while there remain some issues with how it interacts with Automatic Updates and manual patching of the host, it is generally reliable. Its major failing, from a web services perspective, is that it requires Internet Explorer. But our problem today wasn’t with Internet Explorer per se; it was with Microsoft SQL Server.

When I asked Internet Explorer to get the Windows Update web site, it froze. By using my brilliant deductive skills, I observed that it was having a problem connecting. update.microsoft.com does not respond to ping, but traceroute showed that we were using the correct path to that host. I could resolve the name just fine from the Windows shell, so it was not a DNS issue.

Or was it? Internet Explorer was able to get the site by IP address, but froze when it had to request a name. And a brief look with netstat showed that it did not open the TCP connection when it attempted to use the name. While I cursed the lack of a sniffer on this host, I turned my attention to something else. Some time later I glanced back at the display and saw I was being prompted to permit Microsoft to muck with my system. It had found the site!

One of the changes I’ve noticed in the current version of Windows Update is that if you do not run the ActiveX applet within a certain period of time, the operation times out, and the error 0x8DDD0004 is displayed. (This appears to mean ErrorControlFailed.) The error message is less than helpful in its explanation, but the site tends not to function until you clear your cache. So I did that, and waited again.

While waiting, I noticed that the tiny SQL Server Service Manager icon in the tray was red.

That was wrong.

The Service Manager showed SQL Server to be in the “starting” state, as did the Services Control Manager. The event log did not record any starting events for SQL Server. It wasn’t in an uncontrollable state, and shut down just fine:

net stop mssqlserver

It started fine too.

net start mssqlserver

Immediately afterward, Internet Explorer began working. WTF?

I quickly patched the box and rebooted. Some would say that I should have resolved the SQL Server issue first, but the DBMS was coming up fine once the service was restarted. A post-reboot inventory showed that SQL Server was still just pretending to start. And in pretending to start it prevented the Local Security Authority from authenticating in a timely manner, prevented Terminal Services from accepting connections, prevented ASP pages from executing, and prevented Internet Explorer from resolving names.

What caused it to fail, I don’t yet know. Nor do I know why SQL Server’s failure should cause other applications to halt dead in their tracks. The latter is more disturbing.

But then, that’s why I hate Windows. It fails in obscure ways. It is inscrutable.

Inscrutable
Incapable of being analyzed and understood because the essential facts or factors are concealed.

Starbucks, Here

The Associated Press ran a story this morning on a gentleman from Texas who’s travelling to every Starbucks. The story helpfully contained a link to this gentleman’s web site, Starbucks Everywhere. So when everybody woke up and went online at 07:00 EDT, we saw some traffic. That site contains photographs of all of the Starbucks to which this man has been, and those 6,926 images are hosted on one of my servers.

traffic graph

Mr. Winter, perhaps you’d like to reorganize those images so that they’re not all in the same directory? I suggest by date.