On Friday 26 March 2010 19:49:56 Evan Daniel wrote: > On Fri, Mar 26, 2010 at 2:28 PM, ??? <chentianyi87 at gmail.com> wrote: > > Hi, > > > > I am interested in A microblogging and/or real-time chat system of GSOC and > > the description said that a fair amount of work on how to efficiently > > implement microblogging over Freenet have been done. I am wordering that if > > I want to join this project, I should build a independent use any technology > > and framework I want such as Struts + Spring + Hibernate or I should > > embedded the microblogging in to the Freenet code as the whole system. And I > > think Freenet have had strong ability in file distribute so that add > > real-time chat system is really easy for you because you only need to > > connect others by knowing their IP address. Could give me a short > > description about what is the objective of this project and what kind of > > technology you really want? I am now builiding by own SNS website by using > > Struts + Spring + Hibernate and Ajax and have some experience about file > > download software with multithreading control. Could you tell me what is the > > most different between this project and my provious projects? > > > > By the way, do I need to design the entity, relationship and attribute for > > database by meself? What database you use? (I have MySQL and Oracle 10g > > experience)? > > I'll let someone else speak to the gsoc issues; here's a brief summary > of the technical problems. > > The first thing to realize about any sort of microblogging or chat > application on Freenet is that it will be *very* different from a > normal web app on the back end. (The UI end can and should be as > similar as possible, though.) First, there is no central server to > talk to. It's *completely* peer to peer. Second, there's a spam > problem: globally writable namespaces don't work. And third, the raw > operations Freenet provides (insert and fetch, but not update or > directory listing equivalents) are somewhat awkward to work with. > > The combination of these is why I thought microblogging might be a > better model than IRC for real time communication over Freenet. Each > user publishes messages in an outbox, and polls the outboxes of users > they wish to follow. That, a UI, and integration into the web of > trust plugin (to provide a list of other non-spammer users) can > provide the very basics of microblogging. After that, the important > optimizations include ways to discover new messages faster than > polling everything, and ways to search hashtags and usernames and such > efficiently. That's where things get both interesting and hard. > > Freenet latency is high: expect 5-10 seconds one way, with modest > changes to Freenet. Even though you could build either chat or > microblogging on the same underlying framework, calling it > microblogging does a better job of setting user expectations. > > I put some thought into what the protocol should look like with a goal > of optimizing speed and searchability. I wrote some test code, but > nothing of any significance. You can find my thoughts on the protocol > on Freenet: > freenet:USK at > cF9ctaSzA8w2JAfEqmIlN49tfrPdz2Q5M68m1m5r9W0,NQiPGX7tNcaXVRXljGJnFlKhnf0eozNQsb~NwmBAJ4k,AQACAAE/Fritter-site/2/ > > When writing a gsoc proposal, give some thought to what parts of the > problem you want to tackle. It sounds like your experience and > interests lie more in the direction of user interfaces. If that's > correct, my suggestion would be to make that the focus of your > proposal. For example, you could ignore the problems of protocol > design (by using my proposal, for example -- I'm sure it could be > improved, but it's probably good enough) and searching (by simply not > implementing any). IMHO a well-written, easy to use interface is more > important than hard features like search. Search support could be > added later, once it has users.
Evan gives a good summary of the technical issues above. I'll add a bit: Hibernate is way too heavyweight for us, Freenet itself uses db4o. No you can't connect directly to the other people chatting, because they are anonymous. The best way to deal with spam is to integrate with the existing Web of Trust plugin. Ajax is a good idea, but it needs to work without it; our existing AJAX code uses GWT but only as a dumb java-to-javascript translator i.e. we don't use any of its widgets/controls, so it works even if Javascript is turned off; this is important as many of our users are excessively paranoid (and some of them for good reasons!). See the web-pushing branch to see what I mean (it will be merged soon, and has to be turned on by a config option). I would also point out that you can apply for multiple applications. If you have experience in building dynamic web UIs, that is a definite bonus as we need more of that work in various places: Freenet itself, the Freetalk messaging system, Freemail, etc. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 197 bytes Desc: This is a digitally signed message part. URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20100401/646d0600/attachment.pgp>
