• (cs) in reply to hoodaticus
    hoodaticus:
    nonpartisan:
    Damn network engineers are worse.
    This.

    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.

    hoodaticus:
    My network has never gone down. My Exchange always works, my DC's are always up, my databases are always running.

    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?

    hoodaticus:
    The other network has a dedicated network engineer. His Exchange works about two weeks between crashes. His SQL processes fail 50% of the time. Yes, we replaced both - hardware and software. There is a 15 second latency before the fastest query returns. The OLAP cubes take up to 5 minutes to return results (and as said before, half the time, the cubes didn't get updated anyway). He has yet to get kerberos to work.

    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?

    hoodaticus:
    I know what you're thinking: half of that crap shouldn't even be in his lap. But it isn't. This shit happens because (besides outsourced Indian quarter-million dollar OLAP boondoggle of a monstrosity and 1.5 megaloc COBOL fossil) the problem is caused by the network. It's so freaking slow, all technology that connects to it randomly goes on strike as if to protest abusive working conditions.

    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.

    hoodaticus:
    Shouldn't they figure out what's causing the slowness and give us a proposal to fix it, then do it?

    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.

    hoodaticus:
    Network engineer really doesn't mean anything other than knowing what can be learned on the job through google or technet, yes?

    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.

  • (cs) in reply to hoodaticus
    hoodaticus:
    jenn:
    Kef Schecter:
    nonpartisan:
    How well do you think it'd go over if Juliet asked, "Yo Ro, where y'at?"

    Is it weird that I'm bothered less by the modern slang and more by the fact that "wherefore" does not mean "where"?

    Was thinking the same thing... At risk of continuing ever more off-topic, Juliet is not asking Romeo where he is, but why he is who he is.

    She's really just whining at the universe that her lover had to be on opposite sides of an inter-clan blood feud. It has nothing to do with the metaphysical question of who Romeo is.

    Yeah, women are like that. Constantly whining about something.

  • (cs) in reply to nonpartisan

    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?

  • (cs) in reply to hoodaticus
    hoodaticus:
    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?
    Sorry, I live in Oregon, just south of Blakeyrat.

    So your next question is (yes, putting words in your mouth):

    hoodaticus:
    Would you like to live anywhere near Western Central Illinois or East Iowa?
    :-)
  • Joshua (unregistered) in reply to dpm

    Must have built their own compiler, too.

  • Joshua (unregistered) in reply to nonpartisan
    nonpartisan:
    deezil:
    I love how all the typos are still presant in the reposted version.

    CAPTCHA: vindico - Latin for vindicated.

    You can't edit the classics. If you did, then it would be an edited classic and not a classic.

    How well do you think it'd go over if Juliet asked, "Yo Ro, where y'at?"

    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

  • TL (unregistered)

    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 :)

  • (cs)

    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.

  • DeaDPooL (unregistered)

    Anyone know what happened to Wayne? I'd like to be a part of his team!

  • Fedaykin (unregistered) in reply to Per
    Per:
    Is there really an "obvious integer overflow"? Isn't the max value of the
    int
    -type 2147483647?

    And can you really use ++ on a

    char
    -type?

    Sorry for my questions, but I'm still a beginner at programming.

    (Or am I missing the sarcasm in the text? :-p)

    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.

  • Fedaykin (unregistered) in reply to Per
    Per:
    And can you really use ++ on a
    char
    -type?

    Sorry for my questions, but I'm still a beginner at programming.

    (Or am I missing the sarcasm in the text? :-p)

    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).

  • Fedaykin (unregistered) in reply to Fedaykin
    Fedaykin:
    Per:
    And can you really use ++ on a
    char
    -type?

    Sorry for my questions, but I'm still a beginner at programming.

    (Or am I missing the sarcasm in the text? :-p)

    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).

    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');

  • Lazy Hax0r (unregistered)

    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.

  • Cbuttius (unregistered) in reply to Fedaykin

    [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

    char x = 'a';
    x++;
    assert( x == 'b' );
    

    and in C or C++ that would indeed be the case.

  • PedanticMan (unregistered) in reply to nonpartisan
    deezil:
    You can't edit the classics. If you did, then it would be an edited classic and not a classic.

    How well do you think it'd go over if Juliet asked, "Yo Ro, where y'at?"

    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.

  • Tim (unregistered) in reply to Cbuttius

    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'.

  • Gordy (unregistered)

    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.

  • wibus (unregistered)

    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.

  • UnStandard (unregistered) in reply to Matt Westwood
    Matt Westwood:
    Jim:
    big picture thinker:
    dpm:
    How did Wayne keep the compiler from simply skipping that code altogether? In 1985, I had a boss who tried to do exactly the same thing for the same reason, but was foiled by the optimizer and never figured out why.
    Perhaps the loop was assembly, but just changed to c for ease of reading. The article did say there was some in-line assembly.

    Managers aren't always as stupid as you think and one of them would surely notice that the same, easy-to-read line of c code gets changed on a weekly basis but never removed. It was probably assembly to obfuscate it more.

    Managers actually looka t what was changed now?

    Fuckinell yes we do. It's called "code reviews". If any of the monkeys try and get something like that past me then I'll need a hefty bribe and a cut of their bonuses or their out on their arses.

    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.

  • Nashenas (unregistered) in reply to boog

    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.

  • eric bloedow (unregistered)

    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...

  • Axel (unregistered)

    Original: O Romeo, Romeo, wherefore art thou Romeo? Modern: Romeo! Why you gots ta be Romeo?

Leave a comment on “Classic WTF: The Speed-up Loop”

Log In or post as a guest

Replying to comment #:

« Return to Article