eXtreme Assignment 2 Journal


Assignment 2 [ Add a New Entry ]

Saturday, March 30, 2002


3/30/2002 04:52:00 PM

Our pair programming session last night dealt with finishing off the story dealing with caching.

We now parse the content of the RSS we get back and store the items as a list of URLs
in a table so that we can retrieve them in a format that the getClip function understands.
Right now it is hard coded so that it retrieves the 0th element in the list of URLs and
just does a getClip on that. It also checks to see if this clip is already in the cache.

The bug that Chris spotted was attributed to the fact that the RSS was being generated
with an IP address that may not have been the one that the web server was bound to. This
means that when you do getClip on the URL:port combo that you found inside the RSS,
getClip will not work. I have went in and fixed this inside ClipRequestHandle so that the
RSS is generated using the URL that was used by the client to connect. This is common practice
in redundunt server farm situations where although the web server which is sending you a
response is redunduncy1.extreme.com you want the client to keep using www.extreme.com.
As you probably already know, this is the reason behind the HTTP client sending the HOST header.

I have also put some while loops at the end of the main of each test so that you can just
double click on it under windows for testing and the window will not die after it finishes
the test.

I'll post the flow chart in a few days ( I can slack since you guys are on break, right? :) )



Thursday, March 28, 2002


3/28/2002 07:01:00 PM

Story:

I want the peer on the receiving end to cache recently downloaded data.

tasks
  • whenever a client finishes downloading a clip, it should store it in its ClipCache

  • the name of the clip should remain exactly same as the name that was used to store it in the peer's storage including the extension

  • the name of the clip should use a DCE based universally unique id.


objects
  • ClipCache

  • ClipBox




Wednesday, March 27, 2002


3/27/2002 12:37:00 AM

We had a very fruitful meeting today. I believe everyone is on the same page as to where we're going with our little project. We came up with 4 characteristics that should remind everyone about tonight's meeting.
  1. Server can be chatty and broadcast availability of new clips to a group of peers without any explicit requests.

  2. Server can be quiet and only respond to requests.

  3. Client can be conscious and handle incoming posts of notificationso n new available data from a peer

  4. Client can be ignorant and let all incoming posts drop on the floor


For this week we have decided to try and tackle the following 2 stories
  • I want the peer on the receiving end to cache recently downloaded data.

  • I want the peer on the receiving end to decide what to paste as well as what data to download for pasting.


Chris reminded us that at our first session tomorrow we'll also need to implement the callback mechanism for the HttpClient class.


Here are the instructions on getting started on your windows box
  1. FTP to sun4.andrew.cmu.edu

  2. travel to our project directory /afs/andrew.cmu.edu/scs/cs/CS395-3/

  3. grab the entire goodies directory and FTP it over to your desktop

  4. install python 2.1 on C:\python21 by double clicking on the python 2.1.2 installer

  5. install the PyXml module by double clicking on PyXML-0.7 installer. (Ignore registry errors)

  6. Try running xml_demo.py to make sure your parser works.

  7. copy the contents of dynwin (not the directory!) to your Python 2.1's Lib directory

  8. Try running demo/winmin.py

  9. Now you have your environment set up

In order to install Xemacs
  1. Double Click on goodies\setup.exe

  2. Choose Install from Local Directory

  3. Browse and point to th egoodies/xemacs for the packages
  4. Type the destination path to be c:\xemacs\ NOT c:\program files\xemacs


To start coding
  1. Log on to andrew and do a cvs update in your ass2 directory

  2. FTP to sun4.andrew.cmu.edu

  3. travel to our project directory /afs/andrew.cmu.edu/scs/cs/CS395-3/

  4. copy the entire ass2 directory on to your desktop

  5. Try running src/Clipster.py

  6. Check to see if you now have both the "clips" and the "cache" folders inside c:\documents and settings\your_andrew_user_id\Local Settings\Temp





Monday, March 25, 2002


3/25/2002 03:04:00 PM

Alright guys, as posted up on the announcement page, our next meeting is tomorrow (3/26/2002 Tuesday) night 10PM on the 1st floor of hunt library.

As to Chris' post, I've discovered the problem. It was in the HttpClient where it was missing a \r\n terminator. So the request was not considered complete and the server was waiting for the terminator. I've put the changes into CVS.

I'm also in the process of putting stuff into the utils directory (XML processing libraries, and the DynWin package). They come with examples as well, so it should be fairly easy to get started on them.

See you all tomorro night~