Strange Brouhaha

Wednesday, January 16, 2008

I do not think it means what you think it means

In Mac OS X, you can set up your network with an option called "Using DHCP with manual address."

Apparently, this does not mean what I think it means.

To me, it should mean that I get all of my networking configuration information from my router with the exception of the IP address. To me, it should mean "this is exactly like having a statically-configured host, but without having to remember the DNS server addresses." In other words, all of the convenience of DHCP plus all of the convenience of a static address.

But no. This is not what it means.

Yes, this is my fault for assuming a definition of "manual" that was incorrect.

I came to know this because my source control server has been having a problem. Ever since I switched to the new Mac, responses have been glacial (ten seconds per request, and you make a lot of requests when you use source control). Everything else on the computer has been working correctly, everything else it needs to do on my network and on the Internet has not been a problem. Only the source control has been a problem.

It turns out that the source control server software is kind of sensitive to network configuration. While my assumption about the setting I used was, I felt, entirely reasonable, it was completely wrong. When I changed the network configuration to "Manually," even though none of the information actually changed--and I want to stress the "none" part--the source control server started responding normally.

From an engineering standpoint, I understand why "Using DHCP with manual address" is a valid menu item, since it describes what you can long as you're using certain router hardware!

From the user's perspective, this is obviously a problem. I'm not a dumb guy (although I'm by no means a networking expert), and neither are the many other people who have run into this problem, at least according to the Internets. I'm a smart guy who was probably too smart for his own good in this case.

Those of us on the engineering side of the equation would do well to remember things like this when we're designing and checking our applications. Sure, WE know what those menu items mean...but would a reasonably-educated user be making the same assumptions we are?


Post a Comment

<< Home