I came back to my apartment today after not being there for a couple of days,
to find that our (my flatmate and I) router died due to a power outage. I
needed internet access so I hooked up my laptop directly to the cable modem (a
Motorolla) and for some reason couldn't get a ping anywhere; some digging showed
me that for some reason the modem, which acts as a DHCP server, gives me a local
(192.168.x.x) IP address, no DNS servers and no default gateway.
The modem would return pings and the operational web interface showed
everything to be fine and dandy, so I spent the next 15 minutes having the most
futile conversation I've ever had with a tech support guy. Now as a programmer
and reasonably hardware- and network-savvy individual I figured that if a modem
and computer restart won't solve the issue it must have something to do with the
cable/ISP networks; there was nothing to indicate local failure, so I didn't
think to examine the obvious.
The Motorolla modem has a standby button.
I'll be damned if I know why, but it does. And someone pressed it. All it
took to get my internet connectivity back is to press it again. Which brings me
to the point: it is well known that one of the cardinal sins is vanity, it is
equally well known that programmers generally exhibit the three cadinal sins
(vanity, hubris and laziness, I think?). So if you're a programmer, whenever you
talk to tech support don't be a smartass. You'll save yourself time in
the long run.