-----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

Reply via email to