Assignments
background
First of all realize that we are compressing 15 weeks or more into 6,
and that each lecture (180 minutes with breaks removed) is the equivalent
of 3.6 days of ordinary 50 minute classes, and thus with 2 lectures a week
we are doing about 2.5 weeks on Monday and Wednesday.
So the material, and the work, moves quickly, and you should try to
keep up.
Second of all you already realize that I have been away, the systems
are in very bizarre shape, and so we will all have to make accomodations
for that.
Third realize that the main point of the assignments is to give you
"something to do" other than sitting in class and following my web
browsing leads, so you can test your understanding or get an idea of what
you could do further.
who does the work
As I have already mentioned in class it is fine for people to learn
from one another and to work together. You are not going to be of much use
to the world if you cannot. On the other hand it is not so nice to try to
take credit for work that other people have done.
If you want to work on any problem as a group go ahead. Please identify
the members of the group on the first page of the assignment, and please
turn in only one assignment: one of you can post it, and the other pages
can just be links to that one. This will help us keep track.
Of course if N people work together in some sense we have to expect N
times as much work, or even more. That does not mean more material
necessarily, it should mean more sophisticated material at least. So be
aware that in some sense we will have to "divide up the credit". Of course
if you turn in something really nice the TAs and I will probably be so
happy you all get a good grade.
Sort out disagreements as to "who did what" amongst yourselves. We may
be able to guess, and we definitely reserve the right to question anyone
at any time, and to expect everyone in a group to have a good idea of what
was done.
format
Since we are going to be "automatically" retrieving your work, you are
going to have to follow exactly certain naming conventions.
You will each have a website directory on
speckle.mscs.mu.edu, namely
/home/LOGNAME/public_html,
and its contents are accessed from the web as
http://speckle.mscs.mu.edu/user/LOGNAME
In there we have put a directory called 210, and in that directory you
put an index.html as your home page for the course, and
put a starting page for each assignment called AssignmentN.html (we will not have more than 9
assignments, so the number is a single digit :-), with links and a little
description of the assignment from your home page.
Any page can of course point elsewhere from inside with
href and img tags.
You must run all your pages through an html syntax checker. We will not
grade them if they do not go through weblint with flying
colors.
I will show you in class how to turn these in, and then post a writeup
of what to do. Basically we are going to have each of you create a private
key, and make the corresponding public key available to us, which we will
place into the proper part of your home directory on speckle.
This means you can use a simple shell script to turn in your
assignment, or a batch file from DOS. It will just take the page[s] from
wherever they are, and put them in the proper place. Thus you can develop
your pages anywhere you like, but they end up where we can see them, and
evaluate them.
AssignmentsThere will most likely be 5 assignments,
each due on Monday morning of the week after it is assigned.
- week 1 home page and ssh --- Due Tuesday, May 29, 4:00 PM
(for travellers)
-
part 1
Your first problem will be to see that you have a home page
index.html for the course, which should have links to your
assignment pages, and anything else you like to place on it.
There MUST be a recognizable recent picture of you, available
fairly soon in the semester, so we can all know which one you are for
sure. If you don't have such a picture, I will bring in my digital
camera and you will soon have one of my wonderful shots.
You're welcome to put up pictures of friends and family (even
grandkids:-), but we do need one of you.
part 1
Your second problem will be to make, while in your .ssh directory on
studsys, three PQ-keysets
ssh-keygen
- makes
identity
identity.pub
ssh-keygen -t dsa
- makes
id_dsa
id_dsa.pub
ssh-keygen -t rsa
- makes
id_rsa
id_rsa.pub
You should then place a copy of each *.pub file
in your home directory.
From that directory we will obtain your key, and place it in the
appropriate spot on speckle:
identity.pub becomes a line of .ssh/authorized_keys
id_dsa.pub becomes a line of .ssh/authorized_keys2
id_rsa.pub becomes a line of .ssh/authorized_keys2
Once this is done you can login on speckle by
ssh speckle (which will ask for your passphrase for your identity key)
and you can also give a -i flag to use ssh2 with dsa or rsa.
See the "man" pages for further information.
Make sure you have done the command
export MANPATH=/usr/man:/usr/share/man:/usr/local/man
and then you can do
man ssh
man ssh-keygen
and so on.
- week 2 dns and qmail -- Due date Monday, June 4, 8:00 A.M.
-
This week is pretty short, only 3.6 days of class. So the assignment
will be longer, and include the dns material from last week as well as
the qmail material we do on Wednesday.
Also we had to allow some time for setup and such, with the way the
systems are installed. We'll treat this one and last weeks together as
'two' for the purposes of grading.
See CompulsoryMisEducation.html
for my heretical views about grading.
part 1-a:exploring
Use the pages shown during the lecture, on domain registration, to
find, and tell, more about some domain that is interesting to you.
Unless you really do something interesting, skip com,edu
and such popular domains. There will be two country domains especially
interesting to many of you, but try to find out something that nobody
else finds out.
For the politically minded, its a (goldmine|landmine). Do Northern
and Southern Ireland (geographically) share a domain? Do Tibet and
Taiwan have different domains than China? What about Pakistan,
Bangladesh, and India? Dare you look into the Middle East? What about
South America? And is Africa full of domains, and is there any content
for them?
If you have kids, you [[MIGHT]] get them interested in this.
part 1-a:tools
Using the dnstools
I just posted trace the status of name-service and mail-service for a
domain of interest to you. If you are working at a company that might
give you some ideas, relative to the company, a supplier, a customer.
Try to format the results in an understandable fashion. DNS record
tracking is not easy: the graphical tool I showed you is certainly one
way.
part 2: email Due Thursday, June 14, 2001
Try at least the following four types of email:
- local-local
- local-remote
- remote-local
- remote-remote (called "forwarding" )
If you do not have an account on a machine other than studsys,
then obtain one of the free accounts from hotmail or yahoo or a similar
service. The TAs can show you the process.
In each case obtain the entire email message, complete with all
headers, and analyze the headers to see what added each one, and why.
For example each time an SMTP transfer is made a Recieved: header
will be added by the SMTP server that received the mail.
My recommendation for capturing the content with headers intact is
just to edit your "mbox" file on studsys (in your home directory). You
can send an email, for example, and then do "tail -100 mbox" to get the
last 100 lines, and throw away the top lines, keeping only the bottom
part that you need. Or you can just edit your mbox file, if it is not
too large.
- week 3 due Monday, June 18, 8:00 A.M.
-
One way to turn in your assignment is to use the "script" command on a Unix machine,
as detailed in script. Something similar can be done in DOS
if you are working at home by copying the screen of your DOS box to the ClipBoard,
and then saving it to a file.
Write a simple Java client and server, following an example such as
my "WHOIS".
First copy my code from /home/doug/public_html/src/java/net/dougharris./example/whois, to obtain two files ClientWHO.java and ServerWHO.java.
Compile them both with your "javacd".
Have the client query rs.internic.net at port 43 for dougharris.net
(or any other domain name) with:
javad net.dougharris.example.whois.ClientWHO rs.internic.net 43 dougharris.net
Start the server by something like
javad net.dougharris.example.whois.ServerWHO 12000&
( see make my port
for a shell script to create a unique value for you).
Have the client query localhost at the chosen port for doug
(or any other login name) with:
javad net.dougharris.example.whois.ClientWHO localhost port doug
Now modify my client/server pair to do something else, say print a message using data sent by the client, or copy a file whose name is sent by the client.
- week 4: due Monday, June 25, 2001, 8:00 AM
-
Design a "standard servlet" which could be used on a complex web site as the "front end" for its sections, using initialization parameters for the context to determine the custom behavior that should be provided, and using the parameters for the configuration to specify the details of that behavior.
- week 5: due Thursday, June 28, 2001, 8:00 AM
-
Describe some problem area with which you are familiar, and suggest ways in which XML is going to impact that area in the near future. Please don't just say "HTML" or "database" or something of that sort, without being sure that you provide some non-obvious material in your description!
|