ryan
Table of Contents
Weekly Progress Updates
Apr 10, 2009
- I got my peerFile program to run based only on reading .peer files in the root directory, so it is completely automatic in getting the information about the files and writing those peer files as a result. This step moves me in Peer Twisted Server v.2. I just need to work on how the local user interacts with the program (adding peerFiles, etc.) and then move into receiving and sending messages with other programs. Cheers.
- Updated my Plan Documentation Journal with some stuff about a feeling of accomplishment about small tasks done well.
Apr 9, 2009
- I finished the writePeerFile function (with minor exceptions on dating/checksumming the files,) I added the "date-modified" part of each file checked and recorded, and I also drafted the intra-workings of how the program deals with peers and peer files--Peer Twisted Server v.1
Apr 8, 2009
Apr 3, 2009
- I skimmed the Twisted Networking Essentials / O'Reilly book. It consists of older examples of Twisted code, so I can only take a few concepts or pieces.
- Most importantly, I've decided that my Twisted Web program is not the focal point of my Plan component. The main piece of that work is my idea and design for a Peer protocol.
- This Peer protocol handles the managing of shared files over several computers. It does not actually transfer these files between computers; it tells the computers sharing the files if there is an update, and where to get it, and keeps track of which computers are sharing the correct, updated files.
- If three computers want to share the same 10 files, the Peer protocol would handle informing each computer of what files they need, then keeping track of which computers are sharing those same files.
- This can be demonstrated in a Peer protocol interaction
- I have also finished a quick working draft of my Twisted implementation of a Peer server: Peer Twisted Server v.1
Mar 13, 2009
- I wrote a function that recursively searches all sub-directories under a directory and records it in a list in python. Added to HTTPTwistedServer-v3.py
- The purpose of this function is to eventually create a peerlist that can be used to notice changes to the directory, and to tell other peers when changes have been made. Then peers could find which files they need and request them.
- I need help creating a dynamic website that could interact with the HTTP server. Perhaps a simple web app, just with buttons that would reflect requests like communicating with other servers, requesting to peer web pages. Maybe using XML-RPC...
Mar 10, 2009
$ wget -r -k -l 1 -w 2 http://cs.marlboro.edu/courses/spring2009/tutorials/ryan/home
Feb 26, 2009
- I completed an RPS-Client-Twisted, in Twisted obviously, that communicates with RPS-ServerTwisted-v3.py. Last semester I only had a basic python socket client. With this new Twisted Client code, I can begin trying to communicate with the Transmission-RPC program.
- I need to code a Twisted HTTP Client that will send JSON-encoded POST Headers to the Transmission RPC. This is turning out to be as hard as it sounds for me.
- Then I need to further design my program, in specifics for how it will work. Then integrate this Transmission-RPC python code into my HTTP-Server.
Feb 19, 2009
- I got my home computer to serve HTML files from a directory using HTTPTwistedServer-v.2.
- FYI: CS doesn't serve port 3000 off-campus. I used SSH Forwarding to test this HTTP server on CS.
- I researched bittorrent on python.
- The original BitTorrent program was written in Python, but is generally not memory-efficient, and has since become closed-source.
- The Transmission bittorrent client is supposed to be very hardware-efficient. It's written in C, but it has an XML-RPC interface that I could use a python program to communicate with.
- There are several python Transmission RPC clients. I could examine two in particular, TransmissionRPC and helical (a subproject of TransmissionRPC), and play with them to start looking at writing own Transmission RPC Client in Twisted. I'm looking especially at helical. It creates a command-line interface with Transmission RPC, which would be great for a Twisted program, and similar to my old RPS program.
I'm going to look at my old RPS code which can be adapted to send messages to the Transmission RPC. For example:
?method=session-set&speed-limit-down=50&speed-limit-down-enabled=1
or
?method=torrent-start&ids=1,2
Feb 13 2009
tutorial in Jim's office :
Jim says : I just changed the group on this to be rdolan.
/var/www/cs/htdocs/courses/spring2009/tutorials/ryan/
Feb 10 2009
- I got the HTTP Twisted Server program running on my CS account using a shell script (runHTTPserver.sh). I used Jim's directions in running unix background deamons
- An error occurs when I try to stop the job using 'atrm'. After finding the job number with 'atq', I remove it with'$ atrm 81', for example. But every time, the process continues to run, not listed in 'atq' but it continues to run the HTTP server on port 3000. I have to manually find the process number with 'ps axf' and use 'kill -9' to terminate it. Does this problem have something to do with port 3000 messing with Apache?
Feb 5 2009
- Wrote a Basic Plan Project Description for this project.
- Wrote description of the HTTP Protocol
- Discussed progress on the HTTP Server in Updates Journal
- For Next Week:
- Play with writing a .py program that launches a server. Find out how to point to a directory.
- Write shell script and run the program with "at" command.
- Upload results to cs, test using ssh port forwarding (from TCP/IP notes - Matt Daley last semester)
- Preliminary research into Torrent Trackers.