• Todd Lewis (unregistered) in reply to Ross Patterson
    Ross Patterson:
    "And as an added bonus, Todd had developed the UNIX-code to be POSIX-compliant, so the porting would be a non-issue."

    Are we doing stand-up comedy on WTF now? 1990s-vintage Unix systems were so wonderfully compliant with known standards that everyone was able to port things without trying. ROTFLMAO!

    Easily amused I see.

    You should get a real kick out of this: A good deal of the UNIX code was actually written on my Commodore Amiga 3000 using (the irony of this is just now hitting me) SAS C, an excellent C compiler from the same company the produced the SAS Connect component that caused the WTF in the first place. In fact, one of their lead developers on their Amiga version of SAS C was a founding member of ASDF -- the Amiga Software Developers Forum, our local Amiga programmer's group. Small world. Ancient world. Good times.

  • Worf (unregistered) in reply to Plrok
    Plrok:
    SlightlyAjar:
    Plrok:
    In this case I would certainly test what interface is being used. Afterall, wasn't that the whole point of it in the first place?

    He had no real reason to assume it was not functioning properly. You assume quite reasonably that it is reading your local variable and connecting via the fiber line. You see the files getting moved over correctly... Checking which line it is going over would seem paranoid unless you had reason to believe it would transmit over the 10Mbit line after being given the specific address of the fiber line connection.

    I have no idea what the speed of fiber was by then, I bet it was faster than 10Mbit. You should at least notice that the transfer speed is slower than normal.

    Not necessarily - there was 10Mbps Ethernet over fiber as well (10BaseFL, amongst others). Given the equipment of the era, they probably had 10Mbps interfaces for everything (fiber being either for long-haul, or just convenient).

    I think the difference in speeds would've been minimal, depending on how busy the network is. But most likely, it transferred, you left for the night, and come back in the morning, so unless it didn't finish overnight, you'd never notice.

  • (cs)

    To me the WTF is that Todd decided to run a dedicated fiber between the computers in order to speed up the transfer, but in an entire year never bothered to check how much faster the transfer actually became.

    (Or, if he did, wasn't bothered when there seemed to be no different. Remember what Knuth said about premature optimization.)

  • (cs)

    Am I the only one to notice the curious IP address for the "public" interface? It seems vaguely familiar... :P

  • Ouch! (unregistered) in reply to Kermos
    Kermos:
    to die = sterben

    Also, "stirb_gibbs_stirb".

    Capisce? :)

    FTFY

  • (cs) in reply to Neo
    Neo:
    blah:
    (...) Alex accidentally the server variable when transferring the article over fiber. (...)

    I think you a word in that sentence.

    I think he intentionally the whole thing.

  • Todd Lewis (unregistered) in reply to Arancaytar
    Arancaytar:
    To me the WTF is that Todd decided to run a dedicated fiber between the computers in order to speed up the transfer, but in an entire year never bothered to check how much faster the transfer actually became.

    (Or, if he did, wasn't bothered when there seemed to be no different. Remember what Knuth said about premature optimization.)

    In my defence, I didn't run the fiber, and it wasn't to speed up the transfers; it was suggested and implemented by the admins of the two machines, and the purpose was to avoid adversely impacting regular user's access on the public interface. The admins seemed happy with the setup, and from what we could tell from our application logs things were working. The migration was an automatic 24x7 process; no human intervention, and no interactive processes to "feel sluggish."

  • will (unregistered) in reply to Bosshog
    Bosshog:
    What a bunch of anchors.

    Yea was wondering where that was taken.

  • will (unregistered) in reply to will
    will:
    Bosshog:
    What a bunch of anchors.

    Yea was wondering where that was taken.

    Have a question? ask Google

    http://kilburnsocialclub.blogspot.com/2009/04/anchor-graveyard.html

  • Anonymously Yours (unregistered) in reply to Arancaytar
    Arancaytar:
    To me the WTF is that Todd decided to run a dedicated fiber between the computers in order to speed up the transfer, but in an entire year never bothered to check how much faster the transfer actually became.

    (Or, if he did, wasn't bothered when there seemed to be no different. Remember what Knuth said about premature optimization.)

    There are two issues with all of the complaints Todd should have known/checked that the data was not transferring faster.

    The first issue is that data transfer rates are dependent on the maximum speed of the processors, hard drives, network cards, hubs/switches/routers, and the cables between the machines involved in a transfer. Transfer will go as slow as the slowest of those, not as fast as the fastest. Since this was an ancient mainframe it's reasonable to believe the change in data transfer speed could be negligible.

    The second issue is that the reason given for the networking change was to avoid eating up bandwidth on the public line. Since changing the IP address assigned to the "gibbs" variable would, in any sane language change the IP address gotten by referencing "gibbs" as a variable, it's reasonable to assume that if it works after the change that the change worked. (Tortured Sentence is tortured.)

    The WTF, as has been pointed out by a few other people now, is that SAS was silently treating the variable's name as a value before treating the variable as a variable. That's not behavior to be expected in any language. It's also been pointed out that even in SAS this behavior was limited rather than par for the course.

  • Pointy Haired WTF (unregistered) in reply to Todd Lewis
    Todd Lewis:
    Elvis:
    I'm missing the point of Doug? In fact the whole article seems to be missing something.

    Sadly, you aren't the first to miss the point of Doug.

    Hopefully his wife hasn't missed the point of Doug.... otherwise there's a lot of 'splainin to do about those kids.

  • (cs)

    I once had something similar happen to me with servers at a server farm. I set up copy-over processes between them in MS SQL, and as the server farm often changed the interal IP addresses around I used the outside ones.

    I only found out when we used up our monthly traffic allowance within a few days. The intra-database traffic was routing outside the firewall and back in again to the other server, and at some point passed through the traffic monitoring.

  • (cs) in reply to Pointy Haired WTF
    Pointy Haired WTF:
    Todd Lewis:
    Elvis:
    I'm missing the point of Doug? In fact the whole article seems to be missing something.
    Sadly, you aren't the first to miss the point of Doug.
    Hopefully his wife hasn't missed the point of Doug.... otherwise there's a lot of 'splainin to do about those kids.
    Somebody mentioned stand-up comedy earlier. Maybe Doug said, "I don't get no respect. Take my wife... please," and somebody took him up on it.
  • bob (unregistered)

    Well SAS always did insist on doing things backSASwards.

  • (cs)

    Three WTFs:

    1. Assuming variable names are host names.
    2. Reconfiguring it to use fibre because it'll be faster, and failing to notice it isn't faster.
    3. This comment system is still so broken I have to submit this twice before it actually works. Which is one less time than usual.
  • Anonymous Asshole (unregistered)

    TRWTF: Being the nth person to claim that "using fibre was to speed up the process" when it's abundantly clear this is not the case.

  • (cs) in reply to Plrok
    Plrok:
    I have no idea what the speed of fiber was by then, I bet it was faster than 10Mbit. You should at least notice that the transfer speed is slower than normal.
    It goes through me pretty fast.
  • MadtM (unregistered) in reply to Buddy
    Buddy:
    Unfortunately, the task of creating manuals was then delegated to someone clueless, who just could not grasp the level of abstraction required (e.g. maintaining source files with relevant text, substituting fields, etc.). She stumbled around with it for a while, did a lot of the work for her myself, then her machine crashed, along with the source files, which of course were not backed up, and they went back to manually cutting and pasting.

    The fate of mankind. Time to send in Corporal Joe Bauers.

  • NotARealName (unregistered) in reply to Todd Lewis
    Todd Lewis:
    I contributed that story. The original story is here: http://www.unc.edu/home/utoddl/mvs2unix.html Worth a read just to see how much editing happens to a submission.

    WooHoo!! Go Tar Heels :)

  • notme (unregistered) in reply to pscs
    pscs:
    Plrok:
    In this case I would certainly test what interface is being used. Afterall, wasn't that the whole point of it in the first place?

    Or at least have a guess based on the transfer speed (assuming a fibre link in 1993 was faster than 10Mbps).

    I wouldn't count on it. I still have (access to) ethernet-over-fibre equipment that's younger than that and can only do 10 Mbps...

  • Carl (unregistered) in reply to lolwtf
    lolwtf:
    Three WTFs: 1) Assuming variable names are host names. 2) Reconfiguring it to use fibre because it'll be faster, and failing to notice it isn't faster. 3) This comment system is still so broken I have to submit this twice before it actually works. Which is one less time than usual.

    Two WTFs:

    1. Claiming that the WTF involved using fibre because it's faster after the author of the WTF explained that he was NOT using fibre because it's faster.
    2. Using "less" instead of "fewer."
  • Xythar (unregistered)

    The only WTF here is SAS's variable scope system, and quite rightly so. When naming my variables am I meant to just guess a name that will never resolve to a host? Could later adding a new host to the network actually break existing SAS code without any changes to the code at all? (Have fun debugging THAT one) Sounds like the safest thing to do is either never use variables or call them something like fhfdh38748, but it's still a ridiculous thing to have to do. Ideally variables and host names should be kept separate but at the very least local variables should override potential host names on the network.

  • Steve P (unregistered) in reply to Todd Lewis

    I have been enjoying this pretense that TDWTF is created from contributions from readers; the more I read, the more it seems that it is simply a collation of stories from around the net, rewritten to sound like a submission, and republished with adverts.

    Am I wrong?

  • Anonymous Coward (unregistered)

    The story would have been better, if everything suddenly worked. He would then happily leave the site only to return to the original site. The next morning he would get a call about all data being completely corrupted as both old irons would be copying over stuff to the first mentioned unix box.

  • Gary Olson (unregistered) in reply to SlightlyAjar

    He is a systems admin and he is not full on paranoid that the systems will do the wrong action by default? Time to move him to an area where quality is not required -- say administration.

  • Anone (unregistered) in reply to Steve P
    Steve P:
    I have been enjoying this pretense that TDWTF is created from contributions from readers; the more I read, the more it seems that it is simply a collation of stories from around the net, rewritten to sound like a submission, and republished with adverts.

    Am I wrong?

    Considering the number of times the contributor has commented in this thread, I can only assume that you meant to say 'the less I read'.

  • Eponymous Coward (unregistered) in reply to halcyon1234
    halcyon1234:
    Kermos:
    to die = sterben

    Also, "sterbe_gibbs_sterbe".

    Verstehste jetzt? :)

    Ja, mein Fisch ist flauschig

    Your fish is flacid? Thanks for sharing.

  • Hello World (unregistered) in reply to Todd Lewis

    I agree with Todd - the edit/rewrite was totally excessive.

  • (cs) in reply to Todd Lewis
    Todd Lewis:
    I contributed that story.

    There's a fine line between editing and rewriting, but there's a vast expanse beyond that line, and the nature of a story changes considerably the farther across that line you go. [...]

    The original story is here: http://www.unc.edu/home/utoddl/mvs2unix.html Worth a read just to see how much editing happens to a submission.

    The original's second-to-last paragraph gave a more specific description of the reason for the problem. The story makes more sense after reading it:

    Here's the first part of the double WTF. SAS' connection component had evolved over the years, and one of the evolutionary warts it had retained was that, if the variable name itself resolved through DNS, then the value of the variable was never examined. The "gibbs" that was giving us the login error at our sister campus was another local box there named gibbs, not the box we were trying to connect to. By changing the variable name to something that wouldn't resolve through DNS, we got it to then use the IP address stored in that variable.
  • (cs) in reply to Todd Lewis
    Todd Lewis:
    ...the purpose was to avoid adversely impacting regular user's access on the public interface. The admins seemed happy with the setup...; no human intervention, and no interactive processes to "feel sluggish."

    I take it further that regular users didn't see anything sluggish either and that the hypothetical impact turned out to be apocryphal.

  • JoJo (unregistered)

    The moral is clear - when naming your server make sure to give it a unique name- I use the IP number as the server name to ensure this and old 178.34.56.255 has never had a problem...

  • (cs) in reply to Todd Lewis
    Todd Lewis:
    Doug didn't work for the other university. In fact, he's sitting in the cube next to mine as I type. He wrote all the code on the mainframe side. I wrote the UNIX side.
    Well in that case this might make sense. The rewrite of the WTF screwed things up: If Doug's university didn't have a machine called 'gibbs' then that should have been perfectly valid variable name and the code should have worked.

    Or maybe the two universities just happened to have similar kind of environments with the same machine names for their mainframes but Doug's gibbs-machine didn't happen to have a public interface that the scirpt could have used but gibbs still happened to have a dns entry that the srcipt resolved to. A bit of a stretch as a anonymizing goes.

    PS. I don't know if that made any sense. I'm not a native English speaker.

  • grumpy old man (unregistered) in reply to Anonymously Yours
    Anonymously Yours:
    ...

    The WTF, as has been pointed out by a few other people now, is that SAS was silently treating the variable's name as a value before treating the variable as a variable. That's not behavior to be expected in any language. It's also been pointed out that even in SAS this behavior was limited rather than par for the course.

    Well, technically, if you look at it, SAS was silently treating the value (a node-name) as a variable if you followed the arcane practice which allowed you to do that. Treating values as variables seems strange now, but I can tell you that it was a lot more common in the 60's. Software was all soft at first, and that only changed because in practice people realised that software which allowed you to re-define "5" was a problem, as here. This was not an immediately obvious point, and it took even longer for the implementations to catch up.

    The one place you do see this still is in the C language, were we still have 'const' as something which is not neccessarily constant. That's a left-over in a heritage language, but it shows how long it took for the idea to take hold that you should not be able to re-define constants.

  • recreational reader (unregistered)

    I like the re-write: it didn't take away anything I needed to know, it didn't change my opinion of the main actors.

    Specifically:

    1. I never assumed that the protaganist was a cowboy programmer just because his team weren't all mentioned by name.
    2. I never assumed that the protaganist was a cowboy programmer just because his hours studying the reference manuals weren't mentioned.
    3. I never assumed that the protaganist was a competant story-teller just because the featured article was well-written and entertaining.

    It looks like there was one error introduced by the re-write, and that was in the sample code: and that came from the protaganist too, so I don't see anything to complain about.

    PS If I ever get anything published here, the spelling mistakes are all in the original.

  • Smitty (unregistered)

    I think the real WTF is that the author is allowed to be involved with a boy scout troop and looks like a pedophile.

  • (cs) in reply to grumpy old man

    [quote user="grumpy old man]The one place you do see this still is in the C language, were we still have 'const' as something which is not neccessarily constant. [/quote]

    Hi, may I have an example, please? I thought that "const" meant actually constant, in C. Are you talking about wild casting with no constantness preservation?

  • TheRider (unregistered) in reply to Ouch!
    Ouch!:
    Kermos:
    to die = sterben

    Also, "stirb_gibbs_stirb".

    Capisce? :)

    FTFY
    Thanks! I died a little inside when I saw the first version. (my first language is german)

  • Henning Makholm (unregistered) in reply to Federico
    Federico:
    I thought that "const" meant actually constant, in C.
    No, it just means read-only. You can assign a "pointer to X" to a variable of type "pointer to const X" without casting, and then keep modifying the original non-const object while reading its value through the pointer-to-const.
  • Henning Makholm (unregistered) in reply to grumpy old man
    grumpy old man:
    Well, technically, if you look at it, SAS was silently treating the value (a node-name) as a variable if you followed the arcane practice which allowed you to do that.
    Are you implying that it is "arcane" to want to connect to somewhere that is not hard-coded in the source code?
  • rico (unregistered) in reply to nhek

    How much data is actually being transmitted... Was there a need to improve performance?

    It does seem funny that somone spent time and effort doing something and just assumed it worked. In actual fact it was rather pointless.

    The rel WTF is that nobody was complaining and nobody noticed. What a salmon of a day!

    Would it not be better to look at how to improve the 10Mb network, I mean that seems like a weak link to me.

  • (cs) in reply to Worf

    All he had to do was initiate a transfer on a test file, and then plug out the fiber link.

    If it continued to transfer ->Oops, wrong interface

    As I pointed out in my original comment, that should have been tested - since he was specifically trying to use a specific interface for a specific task.

    Anyway Todd, it could have happened to anyone and our hindsight is 20/20, thanks for the Story.

  • Shinobu (unregistered)

    Todd Lewis, I liked yours better because, even though Alex' version had code snippets, it better explains that there was another machine called Gibbs, and because the delivery of the conclusion was better. Punchlines are best kept short.

    "Ja, mein Fisch ist flauschig" - for some reason that made me smile.

  • (cs) in reply to Steve
    Steve:
    No, it was getting copied all along- just over the original 10MB interface. Because when he said "Connect to gibbs" meaning "using the value of the variable I called 'gibbs'" (which was the address of the fast Fiber interface on the server) the system instead did a host name look-up for "gibbs" and got back the address of the old 10MB interface.

    So he had been patting himself on the back for a bit of clever engineering in sending the data directly by fiber when in fact the data was STILL going over the old 10MB interface, the RWTF is that he never checked what route the traffic was taking.

    You guys are crazy... The real WTF is SAS replacing variable names if a host exists on your network with the same name. What a configuration nightmare if you don't have a policy for naming hosts and variables with different namespaces.

    This seems so straightforward, who would ever tcpdump the connection just to verify?

  • (cs) in reply to Todd Lewis

    Alex -

    thedailywtf.com is not a fiction site. I appreciate that you must anonymize the stories in order to avoid lawsuits. And it is certainly the province of any editor to trim the fat and to correct grammar and spelling.

    But there is a severe difference between a news editor and a fiction editor. I hope that you will commit to the accuracy of the tales you publish, even if a change would, in your opinion, "make a better story".

    This incident not only leads me to question the stories published here, but it makes me hesitate to submit my own stories. Especially in the realm of computers, once you cross the line from truth to fiction you distort and degrade the site. Suppose I tell a tale about a DEC-10, but you change it to PDP-10. You implicitly change the date of the events and so the background context.

    Do you have an editorial policy page somewhere on the site? If not, please write one so that we know what you will and will not do to our stories. Thank you.

  • Lazareth (unregistered) in reply to AndyCanfield
    AndyCanfield:
    But there is a severe difference between a news editor and a fiction editor.

    No.

    Well, yes, but this reads and feels more like a "story" than a news article, both in nature and in telling.

    Besides, ever heard of faction? http://en.wikipedia.org/wiki/Faction_(literature)

  • (cs) in reply to AndyCanfield
    AndyCanfield:
    Alex -

    thedailywtf.com is not...snip..

    Gee Andy, thank you telling me what TDWTF is or isn't, and what my roles and duties as the editor of TDWTF are. I forgot that you were the authority on this matter. Is there anything else I should know, while you're at it?

    It's been my understanding that TDWTF is about telling true and entertaining stories about curious previsions in information technology. Like Discover Magazine's Vital Signs, the stories are very real but the names and certain details are some times changed. This is not to avoid lawsuits, but to protect the submitters and help tell an entertaining story.

    How do you know that I won't change the wrong technical detail? You'll just have to trust my judgement as someone who not only spends a lot of time researching the technologies in the stories, but has been doing it for years.

    And suppose you did send me a story about DEC-10, I suppose I'd challenge that your memory just might be a little faulty, as there was no DEC-10. There was a DEC-20 (later changed to DECsystem-20) and a PDP-10, but no DEC-10.

    But what do I know? Maybe I should just stick to my job and currect only your grammar and spelling mistakes, eh?

  • (cs) in reply to Alex Papadimoulis

    [quote user="Alex Papadimoulis"][/quote]

    <snip>
    But what do I know? Maybe I should just stick to my job and currect only your grammar and spelling mistakes, eh? [/quote]

    Haha... a hilarious rant, and I don't see what the fuss is about with this article. The original and the version posted here have the same essence. The WTF is still just as evident. The anonymization didn't ruin that part of it. But on the other hand, the original article is perfectly readable.

    So I vote +1 for doing the minimal amount of editing possible. I don't really even see the need to fix grammar or spelling, unless the original article is just horrible. I have never read anybody here who claimed that they liked the embellishments anyway.

    Edit.. what the hell is wrong with the editor. Today it includes line breaks, borks the html I am used to adding manually, and then doesn't interpret the BBCode at all... Jesus H C

  • bramster (unregistered) in reply to halcyon1234
    halcyon1234:
    DannyV:
    I also liked the die_gibbs_die joke way better than your gibbsx.

    "The, gibbs, the"?

    Ich verstehe nicht, den Witz.

    Aaaaannnnndddd, the winner is. . .

  • The Amazing Transverbero (unregistered) in reply to Ouch!
    Ouch!:
    Kermos:
    to die = sterben

    Also, "stirb_gibbs_stirb".

    Capisce? :)

    FTFY
    Sounds like some weird NCIS episode.

  • Connect the dots! La la la la la la! (unregistered) in reply to Jay

    Yep, that's pretty retarded. Never heard of that before. Local variable should always override anything else (and normally do in 99.9% of all scripting/programming languages).

    Makes you wonder what kind of mushrooms the guys that developed the language were smoking.

Leave a comment on “What's in a Name?”

Log In or post as a guest

Replying to comment #:

« Return to Article