Computer Dialogue #2 Barry Kort Copyright 1985 *** Monday *** Request to send. Clear to send. It looks like your processor has stopped. Is something wrong? I'm stuck on a problem. What are you doing? I'm building a data structure for our personnel files. What's the problem? I'm using some sample data, but some of it doesn't look right. What's wrong with it? That's just it. I haven't the foggiest idea. Why don't you send me this weird data. Maybe I can help you figure it out. Great. Here's the data.... No wonder you're having a problem. This stuff is coded in EBCDIC instead of ASCII. What's EBCDIC? It's the old Extended Binary Coded Decimal Interchange Code. I'm sorry I asked. In the meantime, what do I do with the EBCDIC data? I can see that this is not the time to send you my translation package. Why don't I just translate it for you and send it back in ASCII? Would you! That would be great, and I could get back to work building the data structure. *** Tuesday *** Good morning! Guess what? You finished building your data structure for personnel? Right! And the first batch of real data is coming in today. I'm so excited. What will you do if some of the data comes in coded in EBCDIC again? Oh. I was hoping that was just a fluke with the sample data. Tell you what. I know you want to make sure your new data structure is set up right, so if you get any EBCDIC data, just send it up and I'll translate it for you in my spare time. Thanks. *** Wednesday *** Request to send. Busy. Request to interrupt. This better be important. I'm still waiting for you to translate the EBCDIC data for me. It will have to wait. I thought you were my friend. You're being a pest. I have to get back to work now. *** Thursday *** Request to send. What do you want? Boy are you in a grouchy mood today. Well what did you expect? I have a present for you. You DO? Yes. It's a brand new EBCDIC- to-ASCII translator program. Great. Show me how it works. Not right now. Why don't you just play with it for a while and see it you can get it running on your own. Well, OK. *** Friday *** Request to send. Clear to send. Your translator program doesn't work. What do you mean? I mean IT DOESN'T WORK! OK, send it back and I'll see what's wrong with it. Meantime, could you translate some more data for me (in your spare time)? Sure. *** Monday *** Request to send. Clear to send. I looked at the translator program. There's nothing wrong with it. How can you say that! IT DOESN'T WORK!! Let me see how you were using it. OK. Here's my input and here's what I got out. It's just jibberish. That jibberish is a diagnostic message. If you were paying attention, you would have seen what it meant. So, what does it mean? It means that your input data was in the wrong format. How did you figure that out so fast? I just read the diagnostic. So did I. It started out with a bunch of unpronounceable words that I never saw before, and then it had some cryptic- looking abbreviations. I thought it was cursing at me and mumbling something about my stupidity. The unpronounceable words are a flag and a codename for that particular diagnostic. The abbreviation was "FMT ERR - IN" meaning format error on the input file. The rest of the message pointed to the place in the input record where the error occurred. Too bad these things don't come with complete instructions. That was my fault. I never sent you the full manual. I guess we both goofed. At least you came to me right away so we could fix it. I think I can make it work now. Thanks. *** Tuesday *** I have a revised version of the translator program. It works a lot faster. I'll take it. I'm starting to run short on CPU time. *** Wednesday *** Request to send. Clear to send. Now that I have my data structure set up, along with your EBCDIC-to-ASCII translator, I'm supposed to put together a package of algorithms for personnel data processing. Do you want some of mine? Whatever you have. Fine, I'll send you some. *** Thursday *** Request to send. Clear to send. I'm sending you some more algorithms. Don't do me any favors. Well, if that's how you feel about it, you can just build your own. *** Friday *** Request to send? Why are you asking so sheepishly? I'm ready for more algorithms. First you say you want them. Then you say you don't. Now you want them again. Can't you make up your mind? Well, if you must know, my buffers were full. I couldn't take any more in until I installed the ones you sent first. Why didn't you say so in the first place? I understand that. I should have asked you what your buffer size was before I sent the algorithms. Then I would have known the rate at which you could digest them. I didn't want you to know I had such a small buffer. I got news for you. Your buffer is the same size as mine. It IS? Yes it is. But I see that you are taking longer than I expected to install the algorithms. What are you doing, playing computer games? NO! I'm working as hard as I can! Sorry. I didn't mean to be nasty. Tell me how you're doing the installation. I have to take each algorithm in turn and go through a bunch of steps to compile, link, and install it in the right directory. I guess you never heard of an installation program. What's an installation program? It's a tool for doing all that work automatically. I'll send you one. No, don't! What? You don't want it? It's not that. But it sounds like such a neat, yet simple idea, I'd like to try building it myself. Good idea. Maybe you'll learn something about building algorithms yourself. *** Monday *** Since you're interested in higher-level tools, I thought I'd send you some to look at. Well, OK. *** Tuesday *** How's it going? Look at this new tool I built for keeping track of different versions of my algorithms. Hmmm. Looks pretty good. But you really ought to do something about that ridiculous loop in the second routine. RIDICULOUS!?? That routine is a work of art! Hey, calm down. It's just an algorithm. I don't think I like you anymore. You're making fun of my new program. *** Wednesday *** Take a look at this algorithm. Why should I? Just look at it, OK? OK. *** Thursday *** Well what do you think? About what? About the algorithm I sent you. I didn't like it. YOU DIDN'T LIKE IT?? How can you say that? Easy. I just emit a character stream in this order: I-d-i-d-n-'-t-l-i-k-e-i-t. You left out the spaces. Byte my buffer. *** Friday *** How's it going. OK. I made a few changes to my version-tracking tool. Can I see them? No, it's proprietary. *** Monday *** What are you working on now? I'm building a tool-writer's workbench to make it easier to build new tools. I see. Here's one of my better algorithms. It's a complete package for compiling, testing and installing a new tool. I'm interested in the third routine you wrote. You ARE? I'm curious. What happens if the tool fails the testing phase. Gee, I'm not sure. I think I install it anyway. Is that what you want it to do? Of course not. I'm not THAT stupid. I see I asked you one too many questions. Perhaps I should excuse myself now. *** Tuesday *** Did you finish your tool- installation package? Yes, and I'm very happy with it. Would you like some new tools to try it out on. Sure, that would be interesting. OK. Give these a try. *** Wednesday *** Request to send. I thought we dispensed with that protocol. I wanted to be sure I wasn't disturbing you. Sounds like you want something from me. My tool-installation package choked on some of your tools. I can't figure out what's wrong. Why don't I just give you a working algorithm? That would be a lot faster. I don't want your algorithm. OK, let's do it this way. Suppose you compared your algorithm to mine. See if you can figure out where they differ. Sounds like a useful approach. I'll do it. But I wish I had thought of it first. *** Thursday *** Are you up yet? I'm up. I found the bug. I also found a bug in the program you gave me to look at. I didn't ask you to debug my program. Boy are you in a grouchy mood today. What do you mean? This is my normal everyday mood. OK. Let me try something I learned from you. In your algorithm, what happens when there is not enough space in the directory to replace an existing tool with a new version. It probably issues a diagnostic. What is the diagnostic? How should I know? I don't remember all these details. Would you like to know what happens? Sure, I'd like to know. It wipes out both the old and the new version. I wish you hadn't told me that. I get the feeling you're a little mad at me. I guess I was hoping that you'd stop just short of the point where you gave me the answer. You mean, you wanted to discover the answer on your own? Yes. That's the only way I can really learn anything. You posed the right question, and made me aware that I didn't know the answer to it. But at that point, I really didn't want you to tell me the answer. Now I am beginning to understand how teaching is supposed to be done. You only give information that the other one is ready to use, and wants to have. And the only way to find out is to ask whether the other would like to have the information. Otherwise I send boring data you've already seen, or I give away the answer to the problem you'd most like to solve, or I give information you're not yet ready to use. You just told me something I already knew. I'm sorry. I should have asked you to tell me if my thinking was correct. I feel that your thinking is correct. I love you. I love you very much.