-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
As you may be aware, some Freenet developers and users were present during the CTS summit in Berlin early October. Present were: myself (digger3), Arne, Toad, Infinity0 (presently Tor-dev), leuchtkaefer (gsoc) and Vmon (user). We actually spoke with some people running Freent people running various nodes to help out which was very nice. During the summit we made sure that people were aware that Freenet exists and is still very much alive. We did a bunch of other things, semi-major ones were: 1) we gave a bunch (9 or so?) of 4-minute presentations summarizing Freenet and its abilities to about ~100 people. 2) Hosted a 45-minute freenet plugin-development workshop. The positive outcome of that workshop is that the basics are relatively easy to get going. I've converted our workshop to a very rough draft on the wiki [1]. I would like everybody to improve it and make it reasonably foolproof for Freenet-newbies. Just follow it along in Eclipse and add code where required! Warning; I wrote this during my train-ride without a proper IDE. 3) We also spoke about the current state of Freenet, some short term things wrt releases and accounts that need to be done and long-term restructuring to make outside contributions more viable. We talked at some length about these last two which I'll try to summarize to the best of my ability... Just ask if anything is unclear! === Short term todo's === - - We should basically assume that toad will be completely absent from the project. Anything that he *can* accomplish is awesome, but the project should also run fine without his immediate presence. - - test the release process with Bombe, nextgens, xor? which already have the release keys. At present only operheim1 knows the full details and we'd like to eliminate the Bus-factor. - - check proper Github access and accounts for those involved (I believe toad made some specific personal notes on this) - - ... (we spoke on more things, but I forgot to take a photographs of the flip-over with the info on it :-( ) === Long term restructuring infinity0 has worked on freenet packages and infrastructure in the past. All present at CTS agreed that code restructuring is an important aspect of Freenet's long-term viability as a project with multiple contributors. Infinity0 estimates this to take roughly 6-9 months of fulltime work. Let's dive into *some* of the work required: * Solve the maven secure-dependencies issue (there are some leads to start with Debian-based maven dependencies, input is very welcome!) * Integrate guava where appropriate * Standardize the threading/concurrency framework ** com.google.common.collect.concurrent ** Research whether thread priorities are still required, could still require the NativeThread library ** 95% of Freenet's usage of "synchronized {{ }}" and "Object.wait()" is inappropriate/outdated. We need to move to blocking qeues and similar modern datastructures * IO ** Standardize on relevant Apache libraries *** Look whether we can integrate crypto into it to achieve the current functionalities of (RAM)Bucket and friends. (persistent, encrypted bucket which transparantly move from RAM -> Disk when exceeding their memory limit) ** Use java.nio extensively * Configuration ** use a more easily config management system ** Research existing approaches to this (settings that can be changed @ runtime and settings that require a reboot) ** Use standard syntax for settings ** Static settings for certain things (for example to deal with directories where files are stored, when a user switches the directory to a different one should we remove the files safely? keep them? make it the user's responsibility?) ** move user config to a persistant state (e.g. /var/lib/) * UI separation ** Clear divide between UI & Core ** Obective: allow one to remove all UI code (fproxy) and still allow fred to compile & run without it. ** Break UserAlerts away from the Core. Instead of having all sorts of HTML stuff in core we need to refactor it out of core. However, because the user alerts can happen *very* early in the process of starting seperation is likely to be non-trivial. There was some heated discussion during CTS on this matter that shows that it needs to be looked at carefully on how to accomplish the a maximally loosely coupled set of components. * Misc ** There are lots of custom utilities in Freenet (e.g. HTML encoding) that need to to switched to 3rd party libraries ** Although we should also keep some Freenet-specific ones such as Base64 ** * Plugins ** writing plugins should be easy, the previously cited tutorial on plugin development (fetch key, insert key, communicate with plugins) needs to look clean. While it doesn't we need to change the API. ** Documentation on plugin-development and overall Freenet development is required. This can only happen *after* the major restructuring of the Freenet codebase, otherwise documentation efforts are wasted. Original photographs of the flipover are available [2], I didn't manage to decode all of what was written down... :( Personal thoughts: I'd very much like to move Freenet to a component-based architecture similar to that of OSGi (think hot-swapping the network code to test a bug in a running Freenet instance). This message touches on a *huge* number of topics. I'd like to ask those involved to make new threads for really in-depth discussions of certain subjects. Just quote the relevant portions of this e-mail. General discussion of the information presented here is of course most welcome. Cheers! Thomas [1] https://wiki.freenetproject.org/Plugin_development_tutorial [2] http://home.thomasmarkus.nl/2013/10/cts/flipover/flipover1.jpg, http://home.thomasmarkus.nl/2013/10/cts/flipover/flipover2.jpg -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJSVaE9AAoJEGoOjQCp/UPgYKsP/2D7nwdOHHRO5WiH8gUnUj60 sYs0h9P/kTvm288FK2JjcnPOovOGyfWtAXnsYUx6cgFwXMTs4CQ+D1AkrQAvG23E Ebe6rARZwzled4WFWxPo/jN8YLHez9R07EtZa2CCQICRg6hR7mi7sq+fEh3L5JZg GSKegcFNEhtiriLiz8l0OB0NMqmw0PfMM+wfgqacrAAt3/u6LtmueD8yEIQQtZ01 C1ZG27K1jmWT2l7pYBRF1yHZDHc8xBUAR/KaHIdUQZ3ejqCzLXT/4ENRc7WqGKik SKMHFORfvQFSzc574F9x/UuGXXxcWDQOwgGKqP2vmC/80gnTYmPX5s0uXJTjWh0v suHe3NqZsqtjvYZ6OwH9y5qkwjzHkew2L00/qDd31Mu7Hyjx4dyuGBawdJuX0w+I cFxRB4j7+jH/j9SMD9PvukJAtPOH9M+WlbOd6XMDlQOdNArnVI24C+LZTlyIpN6E vri3Eb9D1H7AtBzHUmPqZ/mbzQb+8zXQu0/pIms2D3f29Se+B0YLc3sYEP2Akalf 4YfUacnhm580cajtPGhU02XFTSk9NnVguhPqmSiziTcuCWzp8X0PD/0clrvhfE8i YmmRsfffzEnnzH6b/+bOsVknbCFa7RUC1/2FMV3t0J1Cfx5yI/M0K5vW1pUNLKAg 4VGsbgf46dd25v2c1kNq =/Swk -----END PGP SIGNATURE----- _______________________________________________ Devl mailing list Devl@freenetproject.org https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl