[Dextrose] [Sugar-devel] [DESIGN] Reflect internet connectivity in the 'Network' frame icon
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.
> 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? :)
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
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.
: 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.
: 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"
* "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