[Dextrose] [Sugar-devel] [DESIGN] Reflect internet connectivity in the 'Network' frame icon

Michael Stone michael at laptop.org
Sun Feb 13 20:59:57 EST 2011

On Sun, 13 Feb 2011 at 19:41:32 -0500, Martin Langhoff <martin.langhoff at gmail.com> wrote:
> On Sun, Feb 13, 2011 at 6:38 PM, Michael Stone <michael at laptop.org> wrote:
> > "The Sugar UI should make network health discoverable."
> Good point in general. 

(Thanks! :)

> To what is trying to get solved, I'd word it as "Sugar UI should make network
> _affordances_ discoverable".

So what network affordances [1, 2] are we supposed to make discoverable? :)

In particular: 

   a) are we trying to expose affordances that are useful when the network is
      working perfectly or are we more interested in making discoverable those
      affordances that will be useful when things are broken?

   b) are we more interested in making indicators (whose status is automatically
      updated) or in sensors that can be activated to learn about the world?

> We can get a rough initial version with a ping to 'schoolserver', and
> a ping to a configurable internet host.

For the sake of concreteness, here are some examples of how these
considerations might affect Anish's general idea:

   1) Let's make an autonomous binary internet indicator to be displayed on
   the frame and in the network-view. 
   The sensor driving the indicator will periodically make HTTP HEAD requests at
   a deployment-configured rate against a URL chosen uniformly at random from a
   deployment-configured list.
   The indicator will be "happy" when the most recent request succeeded with
   status code 200 and will be "sad" otherwise.

   2) Let's make a three-state autonomous indicator to be displayed on the frame
   and in the network view.

   The sensor driving the indicator will periodically run a complete network
   diagnostic procedure which, at a minimum, checks that we:
     1) have a network interface,
     2) that is up,
     3) with an IP address, 
     4) that the interface IP is pingable
     5) with default route configured
     6) that the default route is pingable
     7) with a nameserver entry in resolv.conf
     8) that is pingable
     9) that successfully resolves a list of test addresses
     10) such that the resolved IPs are pingable
     11) such that there are HTTP servers running on port 80 on the IPs returned
         from a configured subset of the resolved names that that return status
         code 200 for HTTP 1.0 HEAD requests for url "/"....

   The indicator will be "happy" if all tests past in the most recent test run.

   The indicator will be "sad" if any "hard" tests failed.

   The indicator will be "worried" if all hard tests passed but some soft tests

   If the indicator is "sad" or "worried", then hovering or clicking on the
   indicator will display a modal dialog or palette listing all tests, showing
   their pass/fail status, and showing folded blocks of logs for all tests.


[1]: As background, I'm going to assume that an "affordance" is "a quality of
      an object, or an environment, that allows an individual to perform an
      action" (http://en.wikipedia.org/wiki/Affordance). Please correct me if
      you prefer a different definition.

[2]: For example, are all these opportunities included?

        * "to join a shared activity"
        * "to send an object to a friend"
        * "to store or to load a backup" and
        * "to browse the web"
      How about these?
        * "to join #sugar-devel"
        * "to host a web page"
        * "to copy an activity from a friend's journal"
      Or these?
        * "to ping a default route?"
        * "to resolve names to IP addresses?"
        * "to send IP packets to and to receive packets from public IPs?"
        * "to communicate without interference from middlepeople?"

More information about the Dextrose mailing list