On Jan 15, 2008 1:57 PM, Matthew Toseland <toad at amphibian.dyndns.org> wrote: > TOTALS: > Essential: 5 weeks 3 days > Important: 10 weeks 3 days > Good to have: 32 weeks 2 days > I am of the view that the good-to-have features can be safely postponed for > 0.7.1 or 0.8. IMHO it would be good to have at least some of the features > marked Important.
We can't wait another year, or even half a year for 0.7.0. Think about it, Oskar and I presented our design for 0.7.0 back in July 2005, two and a half years and we are still a year away from a point release? Its ridiculous, we should aim to release 0.7.0 in or before March 2008 - and we should cull any features that threaten to push us beyond that. > Big stuff: (5 weeks essential, 5 weeks important, 15 weeks good-if-possible) > > [0] Enough seednodes to survive a MAJOR slashdotting. That probably means some > form of auto-harvesting. (1-3 weeks) Not if people step up and provide our seednodes. > [0] Ultra Lightweight Passive Requests. Essential for web of trust based chat > applications, and generally useful. (2 weeks) No way is this essential for 0.7.0. > [1] Finish Echo, or customize and bundle thingamablog (1 week) Not even sure what this is. > [1] Tunnels. Michael Rogers and I have had some fruitful discussions about > security, it looks like some form of (optional) tunnels may greatly improve > security at little code cost and some performance cost. (2 weeks) Why on earth is this a precondition for 0.7.0? > [1] Make big sites work well (multiple container inserts) (2 weeks) Same question. > [2] Full download resuming (2 weeks) No way we need this for 0.7.0. > [2] Plugin versioning and auto-update-over-freenet (1 week) Ditto. > [2] Finish API and implement the new plugin system (3 weeks) Ditto. > [2] Simulate alternate load management schemes, and deploy (4 weeks??) Ditto. > [2] Low-level rewrite (packet format, congestion control, etc) (3 weeks?) Ditto. > [2] Datastore rewrite (to use any SQL engine e.g. Derby, or external e.g. > mysql), some people have been having major problems (2 weeks, I'd like to > postpone it, if it behaves I will) Ditto. > Other stuff: > > NODE: (2 days good-if-possible) > [2] Per-node failure tables / route around nodes that fail for a specific key. > Easy extension of ULPRs. (2 days) Ditto. > INSTALLER(S): (1 week good-if-possible?) > [2] Linux packages. (??) > [2] Install a startup script on Linux. (1 week?) We do need to ensure that installation is easy and people can get from downloading to using Freenet as easily as possible. I would give this a [0] priority. > XMLLIBRARIAN: (1 week important, 3 days good-if-possible) > [1] Integrate cleanly and easily with freesites. (2 days) > [1] Search box on home page. (1 day) > [1] More usability work (All Indexes folder, etc) (3 days) > [2] Adjacent word matching support. (1 day) > [2] Filtered HTML in summaries. (1 day) > [2] Negative match support. (1 day) None of this is a prerequisite for 0.7.0. > NETWORK PROFILING: (3 days important) > [1] Simple threaded probe requests. (3 days) Ditto. > FPROXY: (1 week important, 3 weeks good-to-have) > [1] RSS filter. (important for blogging) (3 days) > [2] Rewrite CSS2 filter (better standards support, better security). (1 week) > [1] Support XHTML 1.1, 2.0, HTML 5.0 (3 days) > [2] Support SVG including embedded in XHTML. (1 week) > [2] ogg vorbis, ogg theora filters (1 week) Are you insane? None of this should be a prerequisite for 0.7.0. > CLIENT LAYER / FCP LAYER: (3 days essential, 2w3d important, 4w1d > good-to-have) > [0] TestDDA working and mandatory for direct directory uploads. (3 days) > [1] Much less disk space usage for uploads (various optimisations). (1 week) > [2] tar.gz support for packing containers. (2 days) (ASL2 licensing issues) > [2] tar.bz2 support for packing containers. (2 days) (ASL2 licensing issues > with .tar) > [2] Or use cpio or something to avoid licensing issues. (2 days) > [1] Fix >2GB uploads (2 days) > [2] Revocable Subspace Keys and an official project freesite (1 week) > [2] Fix implicit containers subdirs support. (2 days) > [1] Don't report internal error on an invalid key. (1 day) > [2] FCP API for Node to Node Messages so Thaw etc can talk with Thaw on nearby > darknet nodes. (3 days) > [1] Cut disk space usage *significantly* in uploads. (1 week) > [2] Client-cache. (3 days) > [2] Redirects to USKs. (1 day) > [2] Insert-time charset detection. (2 days) > [2] Memory optimise splitfile inserts as did with requests. (4 days) I don't see anything here that needs to be a prerequisite for 0.7.0. > FROST ETC RELATED: (2w good-to-have) > [2] ?filename= parameter to fproxy/clients, so we can go back to CHK's being > invariant for different filenames. (2 days) > [2] Enforced whole-file hash and prevent DDA data from changing during > insertion. (1 week) > [2] Selective reinsertion / indicate what blocks can't be fetched. (3 days) Again, nothing that needs to be a prerequisite. > DARKNET: (2w4d good-to-have) > [2] One-time invites. (4 days) > [2] Short-noderef invites. (1 week) > [2] Distribution mechanism - installer-invite-bundle generator. (1 week) Ditto. > DATASTORE: (1d important, 1w4d good-to-have) > [2] Better datastore shrinking, on the fly with accurate LRU. (3 days) > [1] Datastore histogram. (1 day) > [2] Option to encrypt datastore. (3 days) > [2] Option to put temp files in datastore. (3 days) Ditto. > CLIENTS: (~~ 1 week good-to-have) > [2] We should have some sort of client that supports uploading freesites > persistently. Bombe was going to fix jSite to do this. If not that, then > maybe a WebDAV plugin. (1 week for webdav plugin) Ditto. > [1] ULPRs are essential for any spam-proof messaging system. We should give > the Frost devs any *reasonable* assistance e.g. architecture review. I'm ok with giving the frost guys what they need to solve their spam problem if its easy, but once we provide the functionality, it is up to them to fix it, we aren't fixing it, and we aren't waiting for them to fix it either. > LINK LAYER: (3 days good-to-have) > [2] Debug not-forwarded-detection and turn off assumeNATed by default. (3 > days) Nope. > TEMP FILES: (1 day important) > [1] Split temporary files into subdirs. (1 day) Nope. > Postponed for 0.8: (unless somebody does it before that) > - Premix routing. > - Full passive requests. > - Swapping must resist an active clustering attack. > - Better support for fragmented networks. > - NAT-PMP plugin. > - AVI, PDF, MP3 filters. > - Transport plugins. > - Polymorphic UOM-based micro-installer. (nextgens) > - Client layer coalescing. > - Faster FEC decode especially on AMD64. (nextgens) Wow, I'm surprised that there are a few things that *aren't* a precondition for 0.7.0. I think we really need to change our perception about timeline here, you are sticking features in here as requirements for 0.7.0 when there is no *way* they need to be requirements for 0.7.0. We should be aiming to release 0.7.0 in March 2008, and we should cull features until that becomes realistic. Ian. -- Email: ian.clarke at gmail.com Cell: +1 512 422 3588 AIM: ian.clarke at mac.com Skype: sanity
