- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Actually, I said that as a huge case of self-deprecating humor, as that's what I do. That said, I have more problems with a member of our server team (who tells me I don't think like an application engineer, then belittles my concerns from a network engineering perspective with which he has no experience) than with my own team members.
So I'm not clear on this statement . . . do you maintain/engineer the network at your site or are you just saying you have a quality network engineer who knows what he/she is doing and keeps things going efficiently?
This description makes me think he's what I would describe as a system administrator or network administrator instead of an engineer. In my position, network engineering -- making sure there are quality links with enough bandwidth going from one side of the LAN to the other, assigning IP addressing, designing efficient routing -- is what my dedicated position is. I do some closet work, but I mostly maintain the data center and manage our network monitoring. Is there anything monitoring ports on a regular basis? Tracking bandwidth utilization and error counts?
Well, there can be several causes for this. For sure, a poorly-designed network will do it. We've pretty well eschewed the layer 2 spanned configuration for the layer 3 routed access. When we do span VLANs, it's in a very controlled manner. We share VLANs between two network switches in the same zone of the data center so that we can have redundancy if one should become a molten mass, but our practice is no spanned VLANs between zones. Another cause can be saturated links or poor-quality links that are taking errors. Another cause I've seen, which has nothing to do with the network and everything to do with server configuration, is a server trying to contact a destination server (for authentication, for logging, for DNS, for . . .) when that destination server no longer exists.
I was asked earlier this year to troubleshoot an application problem. I was told that the network was causing slowness. With gig uplinks that are at best 10% saturated on a regular basis and 10 gig pipes throughout the core to the data center, it was hardly likely that the network was causing slowness. In the process of troubleshooting this, the vendor had a laptop with a full installation of the application and services. When he tried to run the application with his laptop connected to the network, it hung on startup. When the laptop was not connected, the application came right up. A quick network capture told the story -- for reasons unknown, when the application would start, it was trying to contact a 192.168 address that was not valid on our network. It wouldn't get a response, and the application would just sit there. The vendor explained that, yes, he did have a printer that he used at home, and that printer used the 192.168 address, and for reasons unknown, the application was trying to query the printer, or connect with the printer, or do something with the printer on startup. No network connection meant no possibility to talk to the printer, so it went merrily on. A network connection said it might be possible to communicate, so it tried, and sat there in the process.
So the server may be doing something in the background. A capture from the server side may tell the story.
Yes. I am troubleshooting another application slowness issue. I was told that there was slowness coming from two entire buildings. Come to find out that it's actually only three machines that are slow, and other machines in these same buildings access the application just fine. Sounds like a client configuration issue to me, but I'm going to run it to ground. Anyone worth their salt will diagnose the problem and give you a solution.
True network engineering means a hell of a lot more than that. When my position came up in 2006, I applied, then bought the CCNA study guides. I'd had some socket programming experience, knew the basics of TCP, UDP, and IP, and studied my ass off. My original intent was to get into security, because I had studied computer forensics, knew network analysis was the wave of the future, and wanted to know more about network protocols. Failed the test three times, passed on the fourth. In the meantime, while I was still testing, I'd absorbed enough to pass the interview and I was offered the position. After that is when I got my real learning. I've continued to strive to improve my knowledge. I got my CCNA Security as a requirement during a reorg (a WTF in itself), then got my CCNP. I'm studying for my CCDA (partly to get it, partly because I'm interested in finding out what I may still not know after 5+ years of doing this). And with all due humility, I'm now a very respected member of the team. It's not at all uncommon for our field techs to call me first because they know I won't bullshit them ("Well, I didn't find any problems, and it won't happen again"). I fess up when I make a mistake. And I want to know what's going on on my network, understand what's going on, and be able to judge for myself whether something is a problem, may be a problem in the future, or not a problem at all. I shake my head at these, for all intents and purposes, "network engineers" who are script jockeys in terms of "Oh, you need a new VPN? Okay, well we do it like this and that's the only way we do it 'cuz those are the commands I know how to type and there's no other way we'll do it even if it might be more efficient but that's not our way so you need to adapt to us."
I develop monitoring so that we can be proactive. It's not unusual for an issue to develop and we know about it before the helpdesk. When I call and ask if they've had any calls, I tell them we're having an issue, we know the cause, and it's being fixed. It's a source of pride. A well-designed network is admired by dedicated network engineers as much as a well-written piece of software is admired by a software engineer.
So yes, true network engineering is more than you can Google or Technet.
Admin
Yeah, women are like that. Constantly whining about something.
Admin
Thank you, non-partisan! I am glad to know that there are true network engineers out there. You wouldn't be located anywhere near Western Central Illinois or East Iowa, would you?
Admin
So your next question is (yes, putting words in your mouth):
:-)Admin
Must have built their own compiler, too.
Admin
I just learned yesterday that "wherefore" means "why", and that line means, more or less, "Why are you a Montague?"
http://www.phrases.org.uk/meanings/262200.html
Admin
Doesn't having a pointer of 0x10000 imply a 32b architecture? Then wouldn't int be 32b as well? Or would that be long, leaving int 16b? Either way, it wasn't so obvious to me :)
Admin
Sounds to me like a misguided attempt at implementing Agile. A mandatory release every week, but no way to ensure any actual improvement every week without speed-up loops.
Admin
Anyone know what happened to Wayne? I'd like to be a part of his team!
Admin
I'm sure 50 others have already corrected you. But you'll want to look up what it means when someone says "that's a 32 bit O/S/CPU/etc.)
The summary is: the number of bits is generally limited to the maximum address space of the CPU you are running on, though the bits used can be less (or more with some trickery). For example, currently it's possible (and still common) to run a 32bit system on modern 64 bit hardware.
In the time period of this story, the top of the line consumer CPUs were only 16 bit, making the max value of an unsigned int 2^16 or 65536.
Admin
P.S. Yes, in many languages (c, c++, java, c#, etc.) you can use mathematical operators on char types, as a char is just an int (or a long) that gets interpreted as a character (see: ASCII).
Admin
P.P.S. Also, the code in the original post is defining an array in this circumstance blush, thus what's happening with the ++ operator is moving the pointed to the next index of the array.
However, my above is still true for the following (in some languages and some circumstances):
char x = 'a'; char++; (char == 'b');
Admin
On the other hand - those work avoidance techniques allowed for high quality code with few bugs and quick updates. So if the IT department salaries are only a little fraction of the company's budget, this could be the right way of doing things.
Admin
[quote user="FedaykinP.P.S. Also, the code in the original post is defining an array in this circumstance blush, thus what's happening with the ++ operator is moving the pointed to the next index of the array.
However, my above is still true for the following (in some languages and some circumstances):
char x = 'a'; char++; (char == 'b');[/quote]
You mean
and in C or C++ that would indeed be the case.
Admin
Well, since it would change the meaning of Juliet's question from "Why must you be the person you are?" to "Where are you?" I must agree it would matter a great deal.
Admin
Actually, neither C nor C++ require that for letters - in ASCII, they are stored alphabetically, but in other encodings (say, EBCDIC), they are not (or rather, they are partially).
An encoding could easily store them, say, 'z' to 'a' or even completely randomly and still be compliant.
The only characters that are required to be in sequence are those for the digits '0' to '9'.
Admin
You are kidding.
I have heard of this kind of crap before but always thought it was a joke about lame companies.
Clearly I am too altruistic.
If I caught anyone in my org doing this kind of thing they would get a formal warning -- no hire and fire here in NZ. If they did it again, it would instant dismissal.
The only one thing you have got going for you in this business is your ability to learn and adapt. Once you start playing games like this you are on the slippery road to uselessness and gaming of the system, and only the brightest can ever game the same for themselves until retirement.
This sort of thing makes me retch.
Admin
I do something not far from this.
When I find an opportunity for useful optimization I tend to hold off implementing it until I make some other change which slows things down. The customers only see monotonically increasing performance and aren't asking to downgrade.
Admin
Ah, this explains your previous post where you come across as a complete asshole. You are a manager.
So you are OK with it if your employees don't do anything so long as they pay you off? Why not just fire them all and add their salaries to yours? Same result. Lots of money spent, nothing gets done.
Wait - what if you quit and all the devs you supervise carry on as usual - lots of money spent, nothing gets done.
So you see, it does not matter if you are actually there or not.
Now go kiss you father-in-law's ass some more and maybe he'll give you some more staff for you to demean and power trip on. Just remember, what you do means nothing as far as actual work is concerned.
Don't forget to kick every puppy you see! Asshole.
Admin
I actually did something similar last week. I was going through this horrendous file of ours that goes through about 40 functions within the file to do some matrix multiplications so it can display some spheres on a display during an algorithm calculation. While cleaning up the mess I came across the line "after 500". This is tcl code that basically halts the current thread from running for half a second. Since we're still single threaded, this stopped out entire application for half a second every time it was called. It happened to be called between each matrix multiplication. In some cases this added up to 13 pauses, or 6.5 seconds of wasted time. This section of code has been through MONTHS of optimization in order to reduce the time it takes to run. Deleting this single line reduced the execution by about 40 times what the previous months of work had done. I've been getting praised the last two days, yet I can't understand why no one is upset about the fact that someone in the past added something in that intentionally wasted time.
Admin
i swear i once read a magazine article that said some computer hardware company deliberately "underclocked" their CPUs, so that they could charge lots of extra money to "optimize" them after selling them...
Admin
Original: O Romeo, Romeo, wherefore art thou Romeo? Modern: Romeo! Why you gots ta be Romeo?