- 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
i'm confused, did or didn't the data get copied for the first setup (Old Iron)?
i guess the lesson is that you should never overload any variable, hard- or software... therefore, trwtf is all the jokes about 'pont'
Admin
I'm missing the point of Doug? In fact the whole article seems to be missing something.
Admin
It sounds like it was getting copied when it was going over the 10 Mbit line. But when he setup the fiber connection directly between the servers, the script was still resolving "gibbs" to the hostname (i.e. the public IP) instead of using the variable (i.e. the local IP) and wouldn't work.
Next step... why didn't he get an error on his own server when it wasn't able to connect over fiber?
Obviously, he screwed up by not verifying that the data was being moved.
Admin
Of course the article is missing something. Alex accidentally the server variable when transferring the article over fiber. It's a draft revision. Part of this balanced breakfast.
Admin
Doug had the same situation. When Todd tried the same solution, it didn't work. That is how Todd came to the realization his script wasn't doing what it was supposed to.
Admin
Ah yeah. Now he turns to the docs. What a douche!
Admin
I understood it so that that data was moving - but it was through the slow public interface. not a major wtf though.
Admin
I'd bet that the other university also had a server named "gibbs", and his credentials (naturally, and correctly) didn't give him access to it.
Admin
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.
Admin
My guess is that TRWTF is that the server lets the global-level names override local variables; that seems to be the opposite of how we imagine scope these days.
CAPTCHA: praesent; I guess the CAPTCHA speaks German now (at least it is kind and cordial).
Admin
Ah yes, that makes much more sense. So all the data was being copied, but it was clogging the public line since gibbs was resolving to the public IP via DNS instead of the local IP via his variable.
Admin
What a bunch of anchors.
Admin
How many people actually break out the tools to verify which interface data is passing over? Especially if everything is working and logically it makes sense. About a one in a thousand chance he would have even noticed that one line in the manual either.
The WTF is a SAS system that doesn't understand variable scope.
Admin
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?
Admin
Or at least have a guess based on the transfer speed (assuming a fibre link in 1993 was faster than 10Mbps).
Admin
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.
Admin
In SAS, macro variables are referenced with a preceding ampersand (&). The quotes around the macro variable assignment are also superfluous as all macro variables are strings. So TRWTF is in his code. It should have been:
Admin
What about a quick blinking lights test? Wouldn't the line be quiet without the (hypothetically) huge transfers?
Admin
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.
Admin
I agree. What kind of stupid implementation mixes hostnames with variables: "Let me check our host file and DNS server for variable names we can't use"
Admin
WTF even use a variable name in this case? It's just as easy to search-and-replace on "gibbs" as it is on the actual address. I mean, if you're going to use a server-specific name anyway (rather than a generic name like dest_host), then you might as well just hard-code the address in the remote= parameter.
Admin
So TRWTF is Todd, and his failure to read the documentation.
Admin
because we know you read and retain every piece of documentation before you ever start a project.
Admin
Fiber...previously unused...on a fifteen year old mainframe that's about to be decommissioned...in 1993...bwahahaha...heeheeheee...hoooo...hahaha
Admin
Admin
That's so sad. Been there, best intentions, only to have something trip you up.
Once worked at a place where they had to supply user manuals for the products. There were many different configurations, bilingual sometimes, often custom, and so the staff were spending a lot of time cutting and pasting to create manuals.
I designed and wrote an application that ran in VBA that allowed the user to pick and choose what went in the manuals, basically click what you wanted, it would assemble all the bits, put in custom fields (e.g. substitute names and addresses, dates, insert maps, etc.) and print out the manuals for as many recipients as required. Demoed it, everyone loved it.
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.
Admin
Admin
...snip...
Alex, there is an entire chunk of conversation missing at the start of the comments. This could only be because you deleted it. And that would be because they were making fun of a typo you posted.
...snip...
Note from Alex: I routinely correct typos in the article when someone points them out in the comments. That usually makes the comment pointless, so by not deleting it we have "huh? what does 'pont' have to do with anything?". And then come the comments that explains the commment. It just goes on and on.
Admin
Whatever you do, don't mention the "In order to give researches the opportunity..." typo. Dog knows what might happen.
Admin
Yes, any time I write a program, test it and find that it works, I then go back and read every word of the documentation searching for anything that might identify a possible subtle problem in my code.
I also re-read the entire state law book on traffic regulations every time I get in my car, just in case on this particular trip I will run into a situation that involves a traffic law I had forgotten.
That's what everyone does, right?
Admin
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. As posted, this story makes it seem as if I did all this work myself. I'm embarrassed for others who worked on this project to see this story in this form. I ran my submission by them first to see if I remembered things the way they did. But I hope they don't see in now.
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.
And those of you pointing the WTF finger, well, based on what you read, I can't really blame you.
Note from Alex: FWIW, the main edits were: giving the mainframe some character (Old Iron!), putting in some SAS code (which Todd provided in a later email), dropping Doug (sorry Doug -- things like "...and then Todd and Doug went..." are hard to read), and putting Doug back in as the dude at the sister uni
Admin
If I'm understanding the situation here: I could write a program, thoroughly debug it, everything is working fine. We celebrate and go on to the next project. Then somebody adds a new host to the network, and suddenly my program could stop working because the host name overrides a variable name? Wow. Wow.
Admin
And that would make perfect sense if SAS Connect actually used macro variables the way the rest of SAS uses it. But it doesn't. See, for example, the bottom of the SAS documentation at http://www.uni.edu/sasdoc/comm/z0382050.htm
Thanks for playing WTF.
Admin
It's pretty close to the original. Makes for a more compelling story sometimes to make the protagonist an individual as opposed to a team. I wouldn't worry about it too much.
Admin
I think you a word in that sentence.
Admin
This month, you set up this to connect to the system "willard" (10.11.12.13):
Next month, someone installs a new system and names it "charlie". Your transfer to "willard" is now broken and no one can figure out why because nothing changed in the transfer setup.
What a nasty pitfall to implement. I hate ill-planned so-called-features like this.
Admin
to all of you people that nitpick these funny and WTF deserving stories, I would wager a fair amount that you nitpick sex as well.
partner: How does that feel baby?
you: well actually, could you try to be a little more in to it? and if you could just move a little to the left.. and what is up with asking me how I feel? Of course I feel great we are having sex. Do you really need to know how I feel?
These stories make my day every morning. Thank you TDWTF.
captcha : nobis hehehe you said nob uhh huhhuhhuh
Admin
Well, then, how about:
Admin
I, personally, take far more enjoyment from exploring the swirls and eddies that develop on the side, rather than going with the flow. And if that's what keeps me coming back, well, then...
Admin
Admin
It isn't really a WTF; more of an Awful Warning. If you're working with comms -- and particularly with point-to-point comms -- do the simplest thing that makes sense. In this case, use the quad address. Do not alias it. Yes, you have to type it in twice. In a three-line script. Is that so hard?
I've seen more name-resolution issues in the last twenty years than you can wave a pointy stick at. (Incidentally, does anybody know whether Windows networks still arbitrarily replace the hosts file you rewrote on disk with one cached on the network? Or was that just an NT4 bug?)
Make it simple. Make it sweet. And then test it.
The documentation "issue" is a total red herring.
Admin
"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!
Admin
Thanks for posting that, that's quite a difference. With that much change Alex should ask the original author's permission to post the modified version.
Did Alex invent the code snippets or did he get them from you?
Admin
Even better, you could end up overwriting something on the wrong server.
Admin
Yes, it is/was so hard. SAS didn't allow anything there except a syntactically valid SAS identifier. If you wanted to use an IP address, you had to make the identifier have the same name as a macro variable. (In this case, "gibbs".) You couldn't expand the macro variable; that would be a syntax error. Instead, you had to let SAS Connect expand it on the back end, which it would only do if the variable name itself didn't resolve through DNS.
You see, this is the essence of the WTF.
Admin
"The, gibbs, the"?
Ich verstehe nicht, den Witz.
Admin
To his credit (which he doesn't seem to get much of), he very politely wrote back asking for specific pieces of code that could be included, saying "what would some of the of the SAS code looked like? I've never used it myself, and it would be nice to remain somewhat accurate." I then provided something as close as I could reconstruct -- we no longer have the original code lying around -- and I goofed on the single quotes; they aren't needed to initialize SAS macro variables.
Admin
to die = sterben
Also, "sterbe_gibbs_sterbe".
Verstehste jetzt? :)
Admin
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.
Sadly, you aren't the first to miss the point of Doug.
Admin
Ja, mein Fisch ist flauschig