On Monday 24 Jun 2013 23:09:35 leuchtkaefer wrote:
> Hi Freenet community!
> 
> First of all, thanks for giving me the opportunity of participation in Google 
> Summer of Code; specially thanks to toad.  
> I am highly motivated to produce something useful for the community, so if 
> you have the time to read my weekly updates and you think you have some idea 
> or knowledge that can help me to achieve my goals please send your comments. 
> My mentor is toad but good ideas or constructive criticism is always welcome. 
> I will send weekly updates on weekends unless it is needed before for some 
> some deadline (e.g. mid-term eval). This time comes with some delay.

Regular updates are a good thing.
>  
> UPDATE WEEK#1
> 
> A) I develop my own plugin. Part of it will be documented in the wiki for 
> next programmers, particularly newbies to Freenet. 
> 
> Opportunities: 
> I found that while trying to follow the scarce documentation on 
> FreenetHTTPPlugin I encounter the same problems documented by evand in 2009:  
> https://emu.freenetproject.org/pipermail/devl/2009-July/032942.html
> https://bugs.freenetproject.org/view.php?id=3310
> I think the situation in 2013 didn't change too much. :"(  

FredPluginHTTP is only for trivial toadlets that only produce small amounts of 
HTML. You should probably be using toadlets. There are several plugins that use 
this, e.g. KeyUtils, Library, etc...

What exactly is your plugin supposed to be doing? Even if it's only editing the 
index, it could be generating large HTML pages, so returning the page as a 
String may not be best.

Re documentation, please let me know if you have specific APIs that you don't 
understand, and I will document them. Documenting *EVERYTHING* would probably 
take all summer and I don't have time.
> 
> Not yet sure if my contribution on file sharing will be coded in a completely 
> independent plugin or for instance inside the WoT. Currently I think is 
> preferable to write an independent plugin for file sharing. Besides, 
> developing a clean and better documented plugin is helpful for the community. 
> Moreover, it helps me to understand better the functionality of freenet and 
> some plugins while providing me of an space to test things with the 
> abstraction of weird behaviors from other complex plugins.

Not WoT; WoT has nothing to do with searching. You should interface to WoT 
using FCP. Library currently does searching, so there is a question of whether 
you want to implement the searching part within Library.
> 
> I require more understanding on the codebase to design and develop my sharing 
> solution. While developing my plugin I aim to reduce such gap and help others 
> beginners as me.  

Right.
> 
> I had a lot of problems mainly because lack of documentation but I finally 
> got some basic thing that includes a new menu on Freenet(though I have to 
> correct some minimal bugs). I will improve it a bit and document it for wiki 
> and git.
> 
> =============================================================================
> B) File sharing design:
> 
> Each identity may share a list of documents listed in an index based on 
> Library index's format.
> Library index's structure needs to be adapted. Relevance is not relevant for 
> sharing. 
> Sharing is done on identity basis. 
> 
> I will include more info later.    

Ok.
> 
> =============================================================================
> C) Questions/Need clarifications:
> 
> 1) What is important to share, items from the users'datastore's or items from 
> the users' bookmark list? or both?
...
> 
> 2) Does the client have direct access to the files stored in its own node? I 
> mean I don't see any way of accessing this. The index presented by Library is 
> global and has not direct connection to my local storage. 
> I don't see any interface to access the files on my datastore. What happen 
> when I try to access a file that was already stored in my datastore?  
...
> At this moment, I don't see any "explorer" of my datastore's content. 

No.

We do not share ANYTHING from the datastore. You are still mixing up different 
levels / layers. The datastore is just a cache, and the files we upload are not 
usually stored in our own datastore; they are stored in other people's 
datastores. They are chopped up into lots of pieces which end up on different 
nodes.

What we want to share is a list of files, which the user has manually added to 
their filesharing list. In the index, the files will be just a URL 
(CHK@blah,blah,blah/mybigfile.zip), with some metadata (size, type etc). We can 
get these files from several places:
- Files we have uploaded. When we upload a file, we want the option to 
automatically add it to our filesharing index when the upload finishes.
- Files we have downloaded. Ideally we'd like to be able to add files from our 
Downloads page. This involves the client layer; when you are ready to look at 
this let me know, it's a bit complicated but I can point you to code that 
should make it not too difficult (especially the code that renders the page 
now). The list of files we've downloaded, on the Downloads page, is *not part 
of the datastore*: It's a separate system.
- Files we have just added by URL; we may have found it anywhere, it doesn't 
matter, we can add it manually.
- Files from other indexes.
> 
> The current version has a bookmark list based on the client/node but there 
> are no bookmarks per identity, is that correct?

I don't think bookmarks are important here. Bookmarks can be shared with our 
darknet peers / friends (people whose nodes we are *directly* connected to), so 
should not show up on our index unless we explicitly add them. Don't worry 
about bookmarks.

See above.
> 
> 3)(similar to question 2 but with bookmarks) When I click on a file in my 
> bookmark it downloads the file, but I think that if the file is already 
> cached on my datastore, the file is not requested to other nodes. Is that 
> correct? 

Yes, or the "client cache", which is a separate store used only by the local 
node (not by its peers). But that's a lower level.
> 
> 4) If I develop a separate plugin, can I access to the node's identities? 
> How? Can I access to the Web of Trust database?

Yes. WoT is a plugin and you can access it via FCP. For example, the Spider 
plugin accesses Library via FCP; Freetalk talks to WoT via FCP.
> 
> 5)Which freenet/plugin databases can I access from my own plugin?
> 
> 6) Are terms from Library's index relevant?

Term = word. So yes, you want to be able to search for a group of words.
> 
> 7) Already mentioned before, is it better to have an independent plugin for 
> file sharing? What do you think? I prefer do it independently.

Yes, IMHO it should probably be independant. The main jobs are:
- Maintain your own index.
- Search other people's indexes.

The second overlaps with Library, but the first should probably be independant. 
So it probably makes sense to have a single plugin for both jobs, or maybe 
combine it with Library.
> 
> =============================================================================
> D) My current situation:
> Although summer started, the weather in Switzerland didn't notice it and my 
> uni duties either!
> - This week I had to correct  a lot of student's report (I am teaching 
> assistants and this week was final exams/presentations). Luckily I finished 
> with such duties for the summer.  
> - Next week 26-28 I have the annual doctoral workshop somewhere in the middle 
> of the mountains, probably without Internet connection. I still have some 
> free time and I plan to work on Freenet, but I also have to prepare my 
> workshop talk. Besides, during the students seminars is not allowed to work 
> with ours laptop.  
> - July 15 is my paper's deadline. I still have to do some paper rewriting and 
> I have to do it with time in advance as requested by my supervisor.
> I am trying to catch up using my free-time, but I know that due to lack of 
> documentation, my knowledge gap and my uni schedule I may have a slow pace 
> during the first 4 weeks. :/ Please, have patience. 

Yeah. The docs suck. I don't have time to fix them all, but am happy to explain 
things, and to document individual classes which are particularly getting in 
the way.

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Devl mailing list
[email protected]
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to