Released Neubot 0.4.2

Version 0.4.2 is the latest generally-available stable release of Neubot, distributed for Ubuntu >= 10.04, MacOSX >= 10.6 and Windows >= XP SP3. Of course, Neubot 0.4.2 is also available in source format (.tar.gz and .zip).

This release contains 143 patches. The diffstat says: 87 files changed, with 3167 lines inserted and 1392 lines deleted.

Here are the most relevant changes:

  • MacOS: automatic updates in the background.

    This implementation of the automatic updates is very generic, in the sense that is based on the standard UNIX API and does not leverage MacOS specific facilities, such as launchd(8). I have patches to do that but they are not ready for this release and they will go into the next one;

  • Win32: disable autostart at the end of the install.

    Because the installer runs with high privileges and so starts Neubot with high privileges too.

    (Of course Neubot will autostart each time you login on the system and the _only_ difference is that it is not started at the end of the installation.)

    I have scheduled some work on the Windows installer for the coming weeks. I hope I will be able to find a viable solution for this privileges issue too;

  • Ubuntu: new GUI, based on PyGtk+ and PyWebKit.

    The basic idea is to embed WebKit into a Gtk+ window and to point it to Neubot Web UI. So, now you use Neubot's own application instead of opening its Web User Interface into the browser. I think this is more usable and clear.

    BTW I have plans to do something similar for MacOS and Windows too;

  • database: add OS name and Neubot version to results.

    I've added them because they help data analysis. The version is important because the behavior of the tests may change over time, because of changes in the code base. The operating system is important as well, because every OS implements TCP/IP in a peculiar way;

  • net: undo the 262144-receive buffer optimization.

    Using a fixed-size buffer penalizes Linux, which has very advanced buffer management strategies designed for high bandwidth-delay product networks.

    (Having the version number and the OS name in the database allows to track the effect of this change quite well);

  • www: if privacy settings are not set, the starting page is privacy.html not index.html.

    We are modifying our installers to show privacy policy and ask for permission to collect and share/publish. The installer will also refuse to install if you don't give the permission to collect the results.

    But the work is still in progress, and for now only the MacOS installer is ready. Meanwhile, it will not hurt to land users on privacy.html;

  • privacy: do not allow nonsense transitions once you have set the permissions.

    There are two different changes here.

    1. Once you have said that your are informed you cannot step back and tell Neubot you're not informed. This is pure common sense.
    2. Also, once you've given the permission to collect your results you cannot step back. This is to align with installers, that are being modified to allow installation only if you read the policy and give the permission to collect the results;
    ====== BEGIN UPDATE [2011-11-02] ======

    Of course here I'm not talking about your fundamental rights. You can at any time ask us to remove your personal data. I was instead talking about how the software works: it does not allow you to remove the permission to collect your Internet address and advises you to uninstall Neubot if you don't want the software to do that. To be even more clear, here's what Neubot says when you try to remove the permission to collect: (Pointed out by Eleonora Bassi, thanks!)

    ====== END UPDATE ======
  • speedtest: use just one connection, like bittorrent does.

    This is the first step to make the two tests more comparable: of course comparing two connections with one _isn't_ fair, especially with high bandwidth-delay products or when there is more average congestion.

    More work is needed before we can say that the two tests stress the network in the same way. Namely, we need to change speedtest to work on a request-response basis, like bittorrent does. So, this is just the first step in the right direction.

    (And this is another case where saving the version number in the database would be very helpful to track the effects of the change.)

  • server: add support for a simple API to assess server state.

    This API is needed to implement a simple Nagios plugin, which can say whether the server state is OK or not;

  • nagios-plugin: finalize it.

    Now the plugin uses the abovementioned server API to assess server status and return something in the (OK, WARNING, ERROR) domain.

  • more code rationalizations, bug and reliability fixes, unit tests.

The release candidates have been tested on Ubuntu 10.04, Windows XP SP3, Windows 7 and MacOSX 10.6. The main testing platform has been my laptop with MacOS 10.6.8.

Packages and source archives available here:

ChangeLog here:

Commit history here:

SHA256sums here:

People that contributed to this release, with patches, testing and/or feedback:

    Simone Basso
    Marco Scopesi
    Alessio Palmero Aprosio
    Federico Morando
    Juan Carlos De Martin
    Matt Mathis