moving the http/server sub-project into a "make by default" state in the BSDmakefile
Bug-fix in http/index.html -- when rendering gradient (variances) for the standard deviations of close-to-zero (division by zero as well as proactive catering to possible overflow/underflow in the exponents calculations).

Minor re-styling in the task-list section of the web-page (http/index.html): the way graphs/animations are drawn.
Huge change-set, expect bugs... still untested, etc.

NETCPU PROCESSOR-RELATED CHANGES:

Bug-fix (converger_1/processor.h): unreported complexities were not sent during the rollback timeouts. Fixed it whilst also trying to stay true to the KISS (keep it simple stupid) principles: rollback timer just sets the flag, whilst the actual cooking of the message is done in  one place only (during "processing the iterations" code).

Bug-fix/refactoring: caching of the bulk message on local filesystem should have been done only by the 1st instance of the processor.exe... other instances should have just waited and loaded from local file.

Refactoring: instead of throwing an exception in converger_1/processor.h when on_bulk_read did not get a bulk_msg message, a further check is made to see if the message is 'end process'... if so then a more elegant connection-closure is attempted, otherwise an exception is thrown (which would result in a complete re-connection process taking place).

Memory-based stealthiness (in addition to the already-existing CPU-based stealthiness): 'should_i_sleep' tests for the free ram and determines if a given instance of processor.exe should sleep/back-off. Still very much untested though.

Consequently the processor.exe now requires 2 command-line args: 1 for cpu affinity and another, supplied from the supervising update_client, for the clone-instance index... in case "excluded_cpus" file exists and stipulates (for the sake of dealing with HyperThreading) some cores as being excluded from computational participation.

Additional (commented-out) todo: to set the lowest memory priority on loser os (in censoc/scheduler.h, idle). Not yet activated as it appears to be supported only on later lose-os versions such as 8 et al.

Shortening of the reporting-interval of completed complexities to the server (in converger_1/processor.h). Basically taking care not to make it too long (e.g. if 30 minutes is used, then the server may get hit with potentially plenty of complexities at once which it then shall demodulate and process one by one and this can block its responsiveness for a while. An alternative of reporting 'completed complexities' based on some 'max count/threshold' may not work out either as it may generate rather frequent messaging from processor to server in cases where processor is capable of processing many likelihood iterations in a short period of time... and this network-intense -frequent communication would work against the design-spirit of NetCPU, i.e. of being non-intrusive w.r.t. io-bound activities. Instead, a more even time-based "spreading-out" of the reports should do for now, in the KISS spirit :-)

UPDATE_CLIENT CHANGES:

Now has the capacity to pass multiple arguments to the starting processes. Also minor clarification comment was added for the excluded_cpus semantics.

NETCPU SERVER-RELATED CHANGES:

Possible bug-fix w.r.t. redundant calculations (converger_1/server.h): 'do_redistribute_remaining_peers_complexities' was called immediately after the 'do_redistribute_remaining_complexities()' returned true... even though the 'do_redistribute_remaining_complexities' already calls 'do_redistribute_remaining_peers_complexities' just before returning true.

Visited_places are now refactored into the unordered_set (instead of the 'range_utils' manipulated map). Now there is no pair/tuple denoting the starting value and then the size of the continuous range. Such change is mainly due to two factors: it is faster to deal with the unordered_set (I think, under current circumstances) due to the hashing; and the actual statistical breakdown (in practical/empirical cases) yields only something like 30% of savings in the number of elements when used with the traditional map and ranges (i.e. visited_places due to their universal coordinates are not likely to have plenty of continuous ranges anyways).

Subsequently also deleted 'visited_place' as a struct... now the convergence_state message contains an array of byte-arrays (the latter, byte-array, being the binary representation of the BIGNUM's visited place coordinate in absolute terms).

IO_KEY refactoring and potential bug-fixing regarding the wraparound (i.e. such a wraparound may, theoretically, take place between various on_write_xxx callbacks in certain cases).

Wake on LAN in server.cc timer increased. If/when computer does a self-shutdown due to overheating (e.g. no air-con in the unattended room) then one does not want to wake computer up again too soon.

Also replacing the convergence_state_msg (with its extra memory usage and compression mechanisms) with an explicit type to read/write uncompressed convergence-related information from/to disk. This change had chain-reacted into many other code-changes, do expect bugs...

Increasing the time interval between writing-to-disk of the convergence state (roughly from 7 * 3 = 21 to 1200 * 3 = 3600 seconds, or 1 hour). Given that the overall convergence process is likely to take many hours, syncing once-an-hour for the sake of the rollback is okish... (esp. because having more frequent writings to disk will not lighten the 'processing load' on the server side -- currently the convergence state serialization deploys a simple 'overwrite' strategy as it would, currently, be against every fiber of the KISS principle to start hacking complex mechanisms of the incremental backup of the convergence state with all of its remaining complexities and visited places which do indeed change between zoom-levels et al).

HTTP RELATED CHANGES:

Visual re-styling:

*) http/index.html: wider variance truncation for the displayed gradients.
*) more correct (old version is wrong I think) w.r.t. gradient drawings of the distribution probabilities densities (older version transformed the distance inward whilst the more correct, inline with how the actual lines/examples of individual respondents are drawn, would be to expand the box outward... I think).
*) http/index.html: mid-points of the normalised values are displayed in a different color (black instead of blue).
*) slowed the refresh rate of the graphs.
*) more conservative (expect server crashes etc.) warning message at the very start/front page of the interface (index.html)
etc. etc. etc.

Other thingies include:

*) more informative feedback: adding http-reported tasks_list with active task containing number of processing peers and current-zoom complexities. This cascaded with changes such as adding a 'meta_text' message field to the io-messaging structs; additional args to 'load_coefficients_info_et_al(msg, tsk)' method, which itself was renamed with '_et_al' addition, etc.
*) light/pedantic fixing of the double-quotes to single ones in cases where only a char is appended to ::std::string.
*) light fixing of the wraparound in Javascript (since I know pretty much nothing about Javascript's modulus and numeric wraparound, the safer option is to have an explicit wraparound 'boundary' in 'normals_i' incrementation).

SYSINFO RELATED CHANGES:

More concise code layout for getting FreeBSD's system info (ram, etc.); more compatible-with-native system return types (uintptr_t).

A couple of new functions to get the size for free RAM.

Additional todo comment to make it more like a singleton's patter for resources which are not going to change during the runtime of the program (e.g. number of CPUs or size of the installed physical RAM).

BIG INT RELATED CHANGES:

Removed some deprecated code.

Added hashing feature (for the use in unordered_set et al).

Enabled caching of the previously-allocated BIGNUM structs to reduce malloc/free calls. Also some experimental pre-allocation of BIGNUM data, etc. Current deployment scenarios do not imply any need for re-freeing the thing, unless the whole context gets reset...
It remains to be seen, however, whether the library for BN_xxx does some freeing of memory when the number is small-enough as to not need all of the, potentially, large memory which may already be present...

Additional boost-static-asserts for 'size_type' specialization vs. the "WORD" semantics in the bignum library 'set_word' calls.

OTHER CHANGES ELSEWHERE:

Lose_installer and update_client sub-projects: added a minor comment/note mentioning that no white-spaces should be present in the installed/distributed filenames, directories and overall paths.

Taking out deprecated Eigen include files and deleting unused code in converger_1/server.h w.r.t. Eigen et al.

Taking out any code referencing the big_int et al from processor-side of the infrastructure (big_uint et al are only used at the server side anyways).

Boost's temporary regression away from 'canonical' call to just 'normalize' -- current build environment on various boxes does not have the aforementioned 'canoncial' and frankly there is currently no time to re-configure -update all of my build machines.

Made logging of the 'remaining_complexities' to std/cerr during sync_timeout intervals (at the server side: converger_1/server.h) be done only when running a debug build.

Allowing larger message size when reading-from/writing-to disk various messages (e.g. convergence_state message which can easily get larger than 32 meg, a previously defaulted max).

Deleted some 'unused args' warnings during the building of the software.

Added previously-missing-from-git-tree 'models_ids.h' file.
HTTP-RELATED CHANGES are in this commit.

http/index.html --  bug-fix, "normals.length()" is not a function -> should be normals.length

http/index.html -- changed how normalized variables are calculated, a more simplified approach which discards zero-related orientation of betas (i.e. in addition to range-normalization to one (i.e. "max - min = 1"), all betas are shifted/offset so that they final values are in the absolute range of "0 <= x <= 1").

http/index.html -- re-styling and spelling-corrections of the "warning this is a beta-quality software" text at the start of the main page.

http/index.html -- re-styling of the overly-wide rows of coefficients (betas and etas et al) when 'show details' is clicked on in the "show tasks list" page. Now there is as scroll-bar for the overly-wide data meaning that other things like buttons and outer decoration/controls are still within the screen's visibility.

http/index.html -- graph/appearance re-styling (points, bar-heights, colors, line-widths, dimensions, text-size, etc.)

http/index.html -- unused code cleanup.

converger_1/server.h -- spelling corrections and rewording of the "currently calculated complexities" when listing active task details in the 'show tasks list' portion of the GUI.