After a great deal of re-wiring, re-fitting old cabling with new RJ-45 connectors, reconfiguration of routers and network interfaces, I finally found the culprit. Frustratingly enough, it's one that would have saved me about 3 hours of climbing stairs, re-routing wires, and stripping CAT5.
If you're using a Linksys 5 or 8 port switch, and you have one of the ports daisy-chained to another switch, you can NOT use the port adjacent to the uplink port. According to Cisco, those two ports (Uplink/port 4 or Uplink/port 7) are wired together.
So, in my case:
[Cable Modem] -> [Router] -> [Switch 1] -> [Switch 2/3/4/5]
The router connects to my primary desktop, my VOIP device, and Switch 1.
Switch 1 distributes to other areas of the house, where I have additional switches installed to allow for more than a single device. (My home theater configuration, for example, included a PC, an XBOX 360, and a DirecTV tuner which is internet-ready for video on demand and remote scheduling. All are connected to Switch 2, which gets its feed from port 1 on Switch 1.)
Point of the story: I had unwittingly connected a device to port 4 on Switch 1, which killed the uplink connection back to the router. Any device connected to a numbered port on Switch 1 then found itself without any internet connectivity.
All is now well at home, and I can focus on getting the servers re-configured to free up another machine for the garage. Uh oh... I'm going to need a bigger switch. :)
Hopefully this little tidbit saves someone a bunch of time and headaches.
Saturday, September 26, 2009
Reminder to self: Don't Over-Engineer It!
My boss has recently called me out on a problem I've developed in recent weeks. I have an affinity for elegant, tight, well-refined code. The problem is, to achieve that result, one often spends FAR too long in the engineering stage. Sometimes quick and dirty code really is the best approach, even if it's ugly as sin and makes other devs wince when they see it.
Sure, there are things that I will still avoid like the plague, and there are things that I will continue to do even though they aren't technically necessary. I won't put all my code in the global scope and let it run in crazy freestyle spaghetti form. I will make sure that anything appearing more than twice gets the distinction of being in its own function. But there are a few projects on my plate that really shouldn't take more than an hour or two to see completion status, and for some ridiculous reason, I find myself spending a couple days on them.
I know it frustrates the hell out of people, especially when they're used to seeing me "just get shit done."
So, again, a personal goal: know when to worry about elegance, and when to pump out the code like your fingers have teh diarrhea.
Sure, there are things that I will still avoid like the plague, and there are things that I will continue to do even though they aren't technically necessary. I won't put all my code in the global scope and let it run in crazy freestyle spaghetti form. I will make sure that anything appearing more than twice gets the distinction of being in its own function. But there are a few projects on my plate that really shouldn't take more than an hour or two to see completion status, and for some ridiculous reason, I find myself spending a couple days on them.
I know it frustrates the hell out of people, especially when they're used to seeing me "just get shit done."
So, again, a personal goal: know when to worry about elegance, and when to pump out the code like your fingers have teh diarrhea.
Subscribe to:
Posts (Atom)