Comment On What's in a Name?

The year was 1993, and that meant one thing: Old Iron was finally ready for the scrap yard retirement after nearly fifteen years of faithful service to the university. Technically, the MVS-based mainframe had been well past its prime for quite a many years, but since it was used primarily as a data repository for research projects, no one seemed to mind. But what they would mind, however, was any sort of downtime in the transition to the new, UNIX -based research computer, so it was up to Todd M. Lewis to figure out how to ensure things went smoothly. [expand full text]
« PrevPage 1 | Page 2 | Page 3Next »

Re: What's in a Name?

2009-09-10 09:41 • by viy (unregistered)
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'

Re: What's in a Name?

2009-09-10 09:44 • by Elvis (unregistered)
I'm missing the point of Doug? In fact the whole article seems to be missing something.

Re: What's in a Name?

2009-09-10 09:47 • by akatherder
284874 in reply to 284872
viy:
i'm confused, did or didn't the data get copied for the first setup (Old Iron)?


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.

Re: What's in a Name?

2009-09-10 09:48 • by blah (unregistered)
284875 in reply to 284873
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.

Re: What's in a Name?

2009-09-10 09:49 • by akatherder
284876 in reply to 284873
Elvis:
I'm missing the point of Doug? In fact the whole article seems to be missing something.


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.

Re: What's in a Name?

2009-09-10 09:49 • by Nico den Kliko (unregistered)
Todd turned to the SAS documentation,


Ah yeah. Now he turns to the docs. What a douche!

Re: What's in a Name?

2009-09-10 09:52 • by nhek (unregistered)
284878 in reply to 284874
I understood it so that that data was moving - but it was through the slow public interface. not a major wtf though.

Re: What's in a Name?

2009-09-10 09:55 • by Code Slave
284879 in reply to 284874
akatherder:

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.


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.

Re: What's in a Name?

2009-09-10 09:59 • by Steve (unregistered)
284880 in reply to 284874
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.

Re: What's in a Name?

2009-09-10 10:02 • by Clark S (unregistered)
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).

Re: What's in a Name?

2009-09-10 10:04 • by akatherder
284882 in reply to 284878
nhek:
I understood it so that that data was moving - but it was through the slow public interface. not a major wtf though.


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.

Re: What's in a Name?

2009-09-10 10:04 • by Bosshog (unregistered)
What a bunch of anchors.

Re: What's in a Name?

2009-09-10 10:15 • by Shial
284884 in reply to 284880
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.


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.

Re: What's in a Name?

2009-09-10 10:28 • by Plrok (unregistered)
284885 in reply to 284884
Shial:
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.


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.


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?

Re: What's in a Name?

2009-09-10 10:35 • by pscs
284887 in reply to 284885
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).

Re: What's in a Name?

2009-09-10 10:44 • by SlightlyAjar (unregistered)
284888 in reply to 284885
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.

Re: What's in a Name?

2009-09-10 10:48 • by W Klink (unregistered)
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:
  %let gibbs=10.0.3.44;

options remote=&gibbs comamid=tcp;
signon &gibbs;

Re: What's in a Name?

2009-09-10 10:49 • by Deviod (unregistered)
What about a quick blinking lights test? Wouldn't the line be quiet without the (hypothetically) huge transfers?

Re: What's in a Name?

2009-09-10 10:49 • by Plrok (unregistered)
284891 in reply to 284888
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.

Re: What's in a Name?

2009-09-10 10:54 • by ubersoldat
284892 in reply to 284884
Shial:
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.


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.


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"

Re: What's in a Name?

2009-09-10 10:58 • by Unnecessary Variable (unregistered)
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.

Re: What's in a Name?

2009-09-10 11:03 • by Sir Twist
284894 in reply to 284877
So TRWTF is Todd, and his failure to read the documentation.

Re: What's in a Name?

2009-09-10 11:05 • by Crabs (unregistered)
284895 in reply to 284894
Sir Twist:
So TRWTF is Todd, and his failure to read the documentation.


because we know you read and retain every piece of documentation before you ever start a project.

Re: What's in a Name?

2009-09-10 11:16 • by Dennis (unregistered)
Fiber...previously unused...on a fifteen year old mainframe that's about to be decommissioned...in 1993...bwahahaha...heeheeheee...hoooo...hahaha

Re: What's in a Name?

2009-09-10 11:22 • by Indrek (unregistered)
284897 in reply to 284889
Unnecessary Variable:
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.
Look again. The address is used twice. Storing it in a variable makes moderate sense in this case.
Plus, depending on the actual amount of code, a unique variable name like "gibbs" might be easier to find than an IP address you probably won't remember in a week.

W Klink:
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:
  %let gibbs=10.0.3.44;

options remote=&gibbs comamid=tcp;
signon &gibbs;
Thank you for that tidbit. Looks like we found TRWTF - trying to handle a rather critical migration process without knowing elementary stuff like how to reference variables.

Re: What's in a Name?

2009-09-10 11:23 • by Buddy (unregistered)
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.

Re: What's in a Name?

2009-09-10 11:34 • by dkf
284899 in reply to 284898
Buddy:
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.
I think we've got another candidate for TRWTF...

Re: What's in a Name?

2009-09-10 11:49 • by Code Dependent
...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.


Re: What's in a Name?

2009-09-10 12:21 • by Slicerwizard (unregistered)
Whatever you do, don't mention the "In order to give researches the opportunity..." typo. Dog knows what might happen.

Re: What's in a Name?

2009-09-10 12:28 • by Jay (unregistered)
284905 in reply to 284894
Sir Twist:
So TRWTF is Todd, and his failure to read the documentation.


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?

Re: What's in a Name?

2009-09-10 12:34 • by Todd Lewis (unregistered)
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

Re: What's in a Name?

2009-09-10 12:35 • by Jay (unregistered)
284908 in reply to 284892
ubersoldat:

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"


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.

Re: What's in a Name?

2009-09-10 12:41 • by Todd Lewis (unregistered)
284909 in reply to 284889
W Klink:
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:
  %let gibbs=10.0.3.44;

options remote=&gibbs comamid=tcp;
signon &gibbs;


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.

Re: What's in a Name?

2009-09-10 12:46 • by Buddy (unregistered)
284911 in reply to 284907
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. 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.


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.

Re: What's in a Name?

2009-09-10 12:49 • by Neo (unregistered)
284913 in reply to 284875
blah:
(...) Alex accidentally the server variable when transferring the article over fiber. (...)


I think you a word in that sentence.

Re: What's in a Name?

2009-09-10 12:53 • by Coyne
This month, you set up this to connect to the system "willard" (10.11.12.13):
  %let charlie='10.11.12.13';

options remote=charlie comamid=tcp;
signon charlie;

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.

Re: What's in a Name?

2009-09-10 12:55 • by anymoooos (unregistered)
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

Re: What's in a Name?

2009-09-10 12:57 • by @Deprecated (unregistered)
284916 in reply to 284914
Coyne:
This month, you set up this to connect to the system "willard" (10.11.12.13):
  %let charlie='10.11.12.13';

options remote=charlie comamid=tcp;
signon charlie;

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.


Well, then, how about:

%let OMGWTF_dontnameyourserverthisoryourdead='10.11.12.13';

Re: What's in a Name?

2009-09-10 13:00 • by Code Dependent
Anonymous:
Bosshog:
Look, dude, if you don't want to proofread, fine... post a story with typos. But when we start making fun of it, can't you just take it like a man and post saying, "Oops, heh heh... corrected. Thanks for ponting it out," instead of trying to erase the evidence?

FTFY
Alex is just trying to make sure that the thread doesn't get derailed by pointless banter about spelling errors. It's not some conspiracy or cover-up, he just wants to keep the comments on-topic.
Why would Alex care what we talk about? Is there some gain to be had in wearing blinders that keep us focused on the specifics of the story?

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

Re: What's in a Name?

2009-09-10 13:02 • by DannyV (unregistered)
284918 in reply to 284907
Todd Lewis:
... 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...

I agree that the editing was well called for. Half the fun is putting yourself in somebody else's shoes. I also liked the die_gibbs_die joke way better than your gibbsx.

Re: What's in a Name?

2009-09-10 13:10 • by Bim Job (unregistered)
284919 in reply to 284914
Coyne:
This month, you set up this to connect to the system "willard" (10.11.12.13):
  %let charlie='10.11.12.13';

options remote=charlie comamid=tcp;
signon charlie;

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.
Well, just to return to sanity, here ...

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.

Re: What's in a Name?

2009-09-10 13:14 • by Ross Patterson (unregistered)
"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!

Re: What's in a Name?

2009-09-10 13:19 • by Gerrit (unregistered)
284921 in reply to 284907
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. 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.


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?

Re: What's in a Name?

2009-09-10 13:27 • by akatherder
284922 in reply to 284914
Coyne:
This month, you set up this to connect to the system "willard" (10.11.12.13):
  %let charlie='10.11.12.13';

options remote=charlie comamid=tcp;
signon charlie;

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.


Even better, you could end up overwriting something on the wrong server.

Re: What's in a Name?

2009-09-10 14:37 • by Todd Lewis (unregistered)
284923 in reply to 284919
Bim Job:

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?


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.

Re: What's in a Name?

2009-09-10 14:43 • by halcyon1234
284924 in reply to 284918
DannyV:
I also liked the die_gibbs_die joke way better than your gibbsx.


"The, gibbs, the"?

Ich verstehe nicht, den Witz.

Re: What's in a Name?

2009-09-10 14:45 • by Todd Lewis (unregistered)
284925 in reply to 284921
Gerrit:

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?


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.

Re: What's in a Name?

2009-09-10 14:50 • by Kermos
284927 in reply to 284924
to die = sterben

Also, "sterbe_gibbs_sterbe".

Verstehste jetzt? :)

Re: What's in a Name?

2009-09-10 14:57 • by Todd Lewis (unregistered)
284928 in reply to 284873
Elvis:
I'm missing the point of Doug? In fact the whole article seems to be missing something.


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.

Re: What's in a Name?

2009-09-10 15:03 • by halcyon1234
284929 in reply to 284927
Kermos:
to die = sterben

Also, "sterbe_gibbs_sterbe".

Verstehste jetzt? :)


Ja, mein Fisch ist flauschig
« PrevPage 1 | Page 2 | Page 3Next »

Add Comment