filesnake /

* Notes about this project
** Sending files over network
*** Raw sending through Line
The file sending stuff is not really easy however twisted seems to
have a very good way to handle this, illustrated at this link:
(There's an example)

*** Bittorrent
Another way would be integrate a bittorrent library inside the code, in that way:
 pass the .torrent file
 accept and start the connection
There should be at least one tracker. (maybe one for each client)
Maybe the best library is libtorrent-rasterbar

*** Perspective Broker
**** Producer/Consumer
A perspective broker should be nice for doing that, plus the
Producer/Consumer pattern.
The producer/consumer however are on another port like:

def remote_transfer_file(port,host,key):
    start transfer
**** Pager
using pager is on the same port, though I don't know if the
performances are good.

** Tasks
*** DONE refactoring of client and server
    - State "DONE"       from "TODO"       [2010-05-11 mar 16:14]
    separation of concerns as described in_

*** DONE client and server must have different protocols
    - State "DONE"       from "TODO"       [2010-05-11 mar 16:14]
*** TODO find a way to test servers and clients through a loop
** Features Planned
- Automatic discovery in LAN through avahi
- easy file transfer, possibly fast
- directory transfer
- stop/pause/resume transfer.
- checking for integrity and if there are some parts not integer, it
  will recover that parts without redownloading all the file.

- recovering transfers after ungraceful shutdown [maybe, it will require something like authentication]

* Notes about twisted
** Factories
from the finger tutorial:

   The same behavior, but finally we see what usefulness the factory
   has: as something that does not get constructed for every
   connection, it can be in charge of the user database. In
   particular, we won't have to change the protocol if the user
   database back-end changes.


* Notes about pygtkhelpers
reading the source is the only way till the 1.0.