Released Neubot 0.4.8

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

If you have already installed Neubot for Ubuntu, MacOSX or FreeBSD, it should update automatically, and we just kindly ask you to verify that this is the case. As a rule of thumb, if it has not updated after a couple of weeks, well... "Houston, we have a problem." Neubot for Windows, instead, needs manual intervention and you can find instructions here:

http://www.neubot.org/install-windows#upgrade

Instructions for installing from scratch are available here:

http://www.neubot.org/download

This release contains 95 patches. The diffstat says: 108 changed files with 3,155 additions and 261 deletions.

Here are the most relevant changes:

  • Perform measurements using M-Lab servers in most cases.

    Neubot's master server was already redirecting non-Italian users to M-Lab servers in most cases (more on the corner cases later). While Italian users were still using the master server, installed at TopIX, the Turin and Piedmont distributed Internet exchange.

    The recent installation of Italian M-Lab servers at TopIX allows the Neubot project to use those servers for Italian users. That reduces the load on the master server, which means that the server can now perform more computation during the rendezvous. In this respect, there are plans to return name and prefix of the client's network to build filters for preventing automatic tests in certain networks, e.g. to avoid consuming bandwith when using a 3G Internet key with a small bandwidth cap.

    Of course, the master server is still used by people that (i) are running old versions (pre 0.4.6) and (ii) have not provided the permission to publish their Internet address. Support for those clients will cease with the release of Neubot 0.5.0, and the Neubot project urges everyone that is running an old client to upgrade to at least 0.4.6.

    Link to the relevant commit:

    https://github.com/neubot/neubot/commit/6bdfc6f3

  • Implement scalable server-side data collection.

    Historically, Neubot has saved results on a sqlite3 database, both on the user and on the server side. The problem with this approach is that the database can't be published without postprocessing, and that reduces the scalability of data collection.

    At the same time, the M-Lab project was already using a scalable data collection mechanism for other hosted projects. The general idea is that each result is a file on the server file system, and results are periodically harvested using rsync and then published on the web.

    Starting from this release Neubot employs a file-based backend on the server side, allowing the M-Lab project to perform scalable data collection and publishing. On the user side Neubot is still using the sqlite3 database, which simplifies the web user interface implementation.

    Link to the relevant commit:

    https://github.com/neubot/neubot/commit/0876e7c7

  • MacOSX, Ubuntu: Allow to automatically follow development

    Starting from this version of Neubot, it is possible for users to automatically follow development. Following the development you will be able to run release candidate versions and you'll help to test the code before the release.

    Instructions for MacOSX users here:

    http://www.neubot.org/macos-automatically-follow-development

    For Debian and Ubuntu here:

    http://www.neubot.org/ubuntu-automatically-follow-development

    Link to the relevant commit:

    https://github.com/neubot/neubot/commit/01141beb

  • Improve geographic redirection table

    To redirect users to the closest M-Lab server, Neubot master server uses a redirection table. In general, this table maps countries and continents to one (or more) M-Lab servers. The master server code geolocates the client address and checks whether there are one or more servers in the client's country. If so, it checks thee redirection table, loads all the servers in the country, and returns one server at random. Otherwise, if there isn't a server in the country, the master server loads all the servers in the continent and returns the address of one of them at random.

    However, the previous incarnation of the redirection table was listing just one server per country or continent. The rationale of that design choice was to always redirect a set of users to the same server, for consistent performances. The idea was to avoid to redirect a user in Spain once to, say, a server in UK and another time to a server in Greece, with radically different latency and possibly affecting performances. Of course, the drawback of this choice was that available M-Lab servers were not used efficiently. The Neubot project was aware of that, and that was meant to be just a temporary arrangement, for starting Neubot deployment on M-Lab.

    To use more efficiently the available M-Lab servers, the improved redirection table lists all the available servers within a country. As a consequence, users that live in a country that hosts M-Lab servers now perform tests with one of those servers at random. For other users, the old approach is still in place, and they will always perform tests with the default server for their continent.

    Proper redirection for users that live in a country where there are no M-Lab servers will be implemented in the next Neubot releases. The plan is to delegate the redirection step to DONAR, a specialized DNS server, tightly integrated with M-Lab, that can automatically return the address of the closest M-Lab server.

    Link to the relevant commit:

    https://github.com/neubot/neubot/commit/d704625e

  • Remove /api/configlables and rewrite /api/config API

    This change conceptually belongs to the code-rationalization dept., however it is mentioned explicitly because it affects the API between the Neubot and its web user interface.

    Link to the relevant commit:

    https://github.com/neubot/neubot/commit/bd084f77

  • Bug fixes

    Starting from Neubot 0.4.6 I've started collecting know bugs information at:

    https://github.com/neubot/neubot/wiki/errata

    Here is the list of bugs that have been fixed since the previous release, along with the link to the relevant commit:

    • [2012-01-24] In privacy policy v2.0, Measurement-Lab URI is incorrectly reported to be http://www.measurement-lab.net/about, but the correct URI is http://www.measurementlab.net/about. Fixed by this commit:

      https://github.com/neubot/neubot/commit/57801743

    • [2012-01-24] When a test starts, the results of the last test are not properly cleared in the right sidebar. As a result, if the test fails, you see in the right sidebar the name of the new test and the results of the old test. Reported by Alessio Palmero Aprosio, thanks! Fixed by this commit:

      https://github.com/neubot/neubot/commit/593639f9

    • [2012-01-24] Under Windows 7, Neubot uninstaller does not show up in the control panel. Should you want to uninstall Neubot, you must do that manually, invoking the uninstall.exe program at C:\Users\USER\Neubot, where USER is your user name. Reported by Alessandro Longo, thanks! Fixed by this commit:

      https://github.com/neubot/neubot/commit/3cc80abd

    • [2012-01-24] The update.html page does not load at a minimum the state.js javascript and, as a results, the right sidebar is not initialized. Fixed by this commit:

      https://github.com/neubot/neubot/commit/342aef26

    • [2012-01-25] The neubot-nox-0.4.6-1_all.deb file was missing in the releases directory. Spotted by my aunt (!), thanks! This is now fixed in the releases site.

    • [2012-01-25] The testing-only codepath for speedtest and bittorrent should nonetheless check the privacy settings. Noted while helping Tiziana to debug a Neubot problem with her laptop. Fixed by this commit:

      https://github.com/neubot/neubot/commit/22d3ad5f

  • More code rationalizations, cleanups and regression tests.

Full change log available here:

https://raw.github.com/neubot/neubot/0.4.8/ChangeLog

Diff since previous version here:

https://github.com/neubot/neubot/compare/0.4.6...0.4.8

Commit history here:

https://github.com/neubot/neubot/commits/0.4.8

SHA256sums here:

https://github.com/neubot/neubot/wiki/sha256

Errata here:

https://github.com/neubot/neubot/wiki/errata

Data here:

http://www.neubot.org/data