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.