Hey folks!

The bachelor thesis is the last thing remaining to do in my computer science 
studies.
Today I had a meeting with my mentor, and I proposed to design and implement a 
Freenet client application: Filesharing. He is okay with that! :)

Easy-to-use, sharefolder-based filesharing with auto-insert has been requested 
for ages, and yet we didn't bother to finally implement it.
In fact it is the #1 request at uservoice: 
http://freenet.uservoice.com/forums/8861-general

I want to finally deal with this :)
It fits my current job very well: It will need spam filtering, so it  should be 
a WOT client application. 
Luckily, I was also able to convince my mentor that it is absolutely critical 
for me to fix WOT performance first! :) I told him that this shall take 4-6 
months, so I would start writing the thesis between December and February.

This should be manageable - there are 5 possible major WOT optimizations, 
sorted descending by efficiency:
1)  Optimization of computeAllScoresWithoutCommit(). Very pessimistically 
estimated should take a month.
2) Queuing of downloaded trust lists to prevent thread congestion. Not much 
work, should take 1-2 weeks. 
3) Event-notifications, which is essentially finished besides some fred-side 
refactoring and will be deployed very soon (2-3 weeks). 
4) Not subscribing to the USKs of ALL identities but only to direct trustees. 
Should be 2-4 weeks of work.
5) De-synchronizing the web-interface. While that own its own is only a week 
of work, WOT currently requires it to stay synchronized due to the way we 
misuse db4o. So it will need some major refactoring of WOT and should be a 
month of work. Luckily, fixing optimization number 2 will result in only around 
2 threads competing for the main database locks instead of hundreds, so we can 
very likely ditch this until after the bachelor thesis.

So if we ditch #5 because #2 decreases its priority, and pessimistically 
assume twice the time I've estimated, we are at 5.5 months. In conclusion it 
should be absolutely possible to fix the performance before I have to start the 
thesis.

Of course it is somewhat sub-optimal to write a new client application instead 
of fixing the existing ones with event-notifications whose lack was the primary 
reason why they are not usable. I considered applying to fix an existing client 
application as a bachelor thesis. But that is not a good idea for the 
following reasons:
- A bachelor thesis has a very limited timespan of 3 months. It is very 
difficult to estimate how long it takes to fix a piece of code which you didn't 
write.
- A thesis shall be science, not only programming. With filesharing, that is an 
easy to meet requirement: Anonymous DoS/spam-proof sharefolder-based 
filesharing is not something very well-established, in fact I don't know of any 
proper solution. We probably have quite a few half-finished clients, and my 
scientific job with the thesis would be to:
* accumulate all existing solutions
* describe them
* evaluate the algorithmic theory behind them.
* judge their qualities and disadvantages
* decide whether one of them can be completed to be what we need, or whether 
we need to cook a new one which combines all technological ideas of the 
existing solutions
* invent missing algorithms
* use the remaining time to start with implementation
The good thing about this science-part is that it requires me to do things 
right this time, instead of just programming what comes to my mind until stuff 
explodes like WOT and FT did :)
I will have to write up a small 1-2 pages paper within the next 3 weeks for 
university which describes the goals of the thesis in detail. I'll mail this 
to devl once it is done.

Overall, the 3 months which the thesis will take are not a lot, and the 4-6 
months which I have before it might leave some room for fixing 1-2 of the 
existing WOT client applications to become official. 
Maybe I can also convince some volunteers to start with it? :)
I would like to start fixing Freetalk very soon. Once the core performance 
issues of WOT are fixed, I should probably just continuously dedicate some 
hours to it, even during the thesis. And if it doesn't work before the thesis, 
we will at least have a fixed WOT before it and a good part of file-sharing 
afterwards.
And 3 months aren't that long after all.

Anyway, I am *very* happy for this opportunity being open, and I hope you guys 
can support this as well.
With regards to the discussion of actual technical details of filesharing, I 
suggest you be patient until the thesis has been officially started. Students 
are not allowed to work on the thesis before the official start, so you can 
save 
me some hassle of justifying whats part of the thesis and what isn't by 
waiting with the discussion until its time to do it :)
But you can be ensured that I will *definitely* make gathering of existing 
ideas / algorithms a part of the thesis, so existing ideas will not be 
ignored. I just don't want to hear too much about them now :)

Greetings,
        xor


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

_______________________________________________
Devl mailing list
Devl@freenetproject.org
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to