How to hand in your assignment

In an effort to save trees, we have set up a means by which you can submit your programming project solutions by electronic mail. Essentially, you mail off a message containing your source code (in a specific format), to a particular address on ogun.stanford.edu (Prof. Olukotun's machine). Said message is to be digested automatically by a shell script, and if all goes well, your files will be recreated in a directory on ogun, and then we can compile, run and grade them.

!!!IMPORTANT NOTE: IF YOUR SUBMISSION IS LOST, WE HAVE NO WAY OF KNOWING WHETHER YOU SUBMITTED OR NOT, SO CONTACT US IMMEDIATELY IF YOUR SUBMISSION IS NOT OFFICIALLY ACKNOWLEDGED WITHIN 12 HOURS OF SUBMITTING.!!!

Creating a Directory

Before doing anything else, you have to make a directory on ogun to receive your submissions. This is accomplished by logging on to one of the Sweet Hall workstations and issuing the command

    hand_in282h -make
This assumes that you have /usr/class/ee282/bin somewhere in your path. If you have put the line "source /usr/class/ee282h/setup" in your .login file, then you are fine.

Note that the ogun directory you create has to be given a name. hand_in282h, when run on a Sweet workstation, will know about your username, which is what we prefer you to use and which is what hand_in282h uses by default when run on a Sweet workstation. In the (extremely unlikely) event that the response to hand_in282h -make indicates that someone else has already created the directory, you will have to create a different directory, but first you must specify a different name to use by setting the environment variable SUBMIT_ID, such as:

   setenv SUBMIT_ID new-improved-name
You should also put a line doing this in your .login (.profile if you use sh instead of csh), so that you don't have to deal with this again. Names must be of the form [a-z][0-9a-z]*. Then try
    hand_in282h -make
again and cross your fingers.

Responses from hand_in282h

The server on ogun always (modulo undiscovered bugs or mailer braindamage) responds in one of two ways. Either it will mail back an acknowledgement, e.g.,

    Date: Sun, 8 Apr 90 20:27:43 EDT
    From: Automagic EE282h Submission Daemon 
    Subject: Re: make blofeld
    To: blofeld@portia.stanford.edu

    Directory "blofeld" is ready to receive submissions.
or you will get a mailerbarf, e.g.,
    Date: Sun, 8 Apr 90 20:28:39 EDT
    From: MAILER-DAEMON@ogun.stanford.edu (Mail Delivery Subsystem)
    Subject: Returned mail: unknown mailer error 37
    To: 

       ----- Transcript of session follows -----
    "blofeld" directory already created by
     blofeld@TV.Land.COM (Charles Phillip Arthur George Blofeld)

    554 "|/amadeus/b1/ee282/bin/suback"... unknown mailer error 37

       ----- Unsent message follows -----
    Received: by ogun.Stanford.EDU (5.57/Ultrix3.0-C)
            id AA15307; Sun, 8 Apr 90 20:28:39 EDT
    Received:  by portia.stanford.edu (5.59/25-eef) id AA06718; Sun, 8 Apr 90
    Date: Sun, 8 Apr 90 20:56:49 PDT
    From: Ernst Stavros Blofeld 
    Message-Id: <9004090356.AA06718@portia.stanford.edu>
    To: ee282@ogun.stanford.edu
    Subject: make blofeld

    hi there
(which, in this case, is how you find out someone has already stomped on your directory).

Don't worry about "unknown mailer error 37". 37 was chosen specifically to be random and intimidating. In fact, getting a 37 is good, since it means that you made a mistake that we expected people to make and, other from that, all is well.

If some other number appears, or the message following the "----- Transcript of session follows -----" is particularly unintelligible, then it's time to worry, and we would like to hear about that.

Handing in Your Solution with hand_in282h

Okay, so you've got your project working and the sources are sufficiently presentable that you won't be too embarrassed if someone looks at them. Now what?

Take the directory in which all of the code for your solution resides, (the verilog directory, not testcode) and remove from it ALL of the files not used for your solution. Basically just delete any test or backup files you have in your directory. And if for some reason you have any executables in your directory, get rid of them. When you're done, your directory should contain

Make sure that nothing in your program is depending on any symbolic links to files outside your directory since these will all be trashed by the move over to ogun. Having done all of this, you can enter a command of the following form:
    hand_in282h # 
For example, you could type:
    hand_in282h #1 verilog
This will package the directory verilog along with all of its subdirectories (using tar, compress and uuencode) and mail it off to ogun to be entered as your solution to Programming Assignment #1.

If all goes well, you will get an acknowledgement back in a few minutes. In this case, the acknowledgement lists all of the files that were received. Check this and make sure nothing is missing. MAKE SURE THAT YOU DO GET THIS ACKNOWLEDGEMENT!! If you don't get it, we don't have your project.

We have found some possible reasons for submission problems. If you get a checksum error message, try making all the files owned by yourself, not by your partner, and make all the access permission to the directory and files readable only to yourself.

Errors will result in mailerbarf as above. It is expected that, in general, you should only have to submit an assignment once. The submission program will allow you to submit your programs more than once, but please do this sparingly, or chip in 50 bucks or so to help us buy a bigger hard disk to hold all of your programs. Do NOT submit a project more than three times -- submissions after the third will be ignored.

The Group File

Part of your submission should be a file named GROUP (all caps, by the way). There should be one line that contains the following information:

      first_name last_name full_email_address
Example:
      Bruce Wayne capedcrusader@leland.stanford.edu

DO NOT add extraneous characters (hyphens in a name are OK) or in any other way "dress" up your GROUP file. Also, MAKE SURE you add a carriage return after the last entry in your GROUP file. Either action will create all sorts of havoc and only upset the TAs! If you don't submit this file, then one of the people in the group will lose big time. Do not forget this. You need to submit a GROUP file with your programming project.

WARNING: If you forget to submit a GROUP file with your programming project, don't assume that the TAs or instructor will be too understanding after we have started to grade the programs.

Fundamental Standard

Although it goes without saying, we will nevertheless point out that the Fundamental Standard and the other codes of conduct at Stanford apply to the use of the submission program; e.g., forgery of email for fraudulent purposes is just as much a violation as any of the more traditional possibilities.

Other hand_in282h Options

    hand_in282h -help
Display this file.
    hand_in282h -ping
This tells the server on ogun to just mail back a response and not do anything else. This is to provide some assurance that the server and the intervening mailers are working and also gives you an idea of just how long the turnaround time is. If there's anything strange about the place you're mailing from, this is one way to find out. Also if the ogun disk is within 200k of being filled up, you'll find out about this also.
    hand_in282h -check
This verifies that your directory on ogun actually exists. If so, the acknowledgement will contain a listing of the mail log for that directory. This way, you can tell (unless someone is being exceedingly clever) who has been writing to your directory.
    hand_in282h # 
This is the exact same command you used to hand in your project the first time. When executed a second time, if copies the first submission to another directory and puts the new submission as the code to be graded. For example, if your original submission was placed in directory '1', directory '1' will be moved to '1.1' and your new submission will be placed in directory '1'.

Very Important

Keep any acknowledgements you receive from the server on ogun. This is your receipt to prove that you submitted your project in case something goes wrong.