A computing device is provided with a discovery framework that may include a discovery user interface (UI) and a discovery engine configured to use various standard discovery protocols in a protocol stack of the computing device. The discovery engine may respond to an invocation of the discovery framework by determining discovery criteria and based thereon selecting one of the discovery protocols, requesting discovery through the selected discovery protocol, receiving corresponding first discovery results, and maintaining a discovery list comprised of indicia of devices discovered through at least the selected discovery protocol. The discovery UI allows interactive adjustment of the discovery criteria, displays the discovery list, and responds to selection of a discovered device in the discovery list by enabling a connection with the discovered device based on a network address of the discovered device obtained through one of the discovery protocols.
1. A computing device comprising: processing hardware; storage hardware storing instructions executable by the processing hardware, the instructions comprising: an operating system comprising a network stack that implements a plurality of discovery protocols; a discovery framework comprising a discovery user interface (UI) and a discovery engine configured to use the discovery protocols; the discovery engine configured to respond to an invocation of the discovery framework by determining discovery criteria and based thereon selecting one of the discovery protocols, requesting discovery through the selected discovery protocol, receiving corresponding first discovery results, and maintaining a discovery list comprised of indicia of devices discovered through any of the discovery protocols; and the discovery UI configured to allow interactive adjustment of the discovery criteria and configured to display the discovery list and respond to selection of a discovered device in the discovery list by enabling a connection with the discovered device based on a network address of the discovered device obtained through one of the discovery protocols, the discovery UI comprising an interactive element that, when activated, causes the discovery engine to select a second discovery protocol, request discovery through the selected second discovery protocol, receive corresponding second discovery results, and update the discovery list to indicate devices discovered through the second discover protocol, wherein the discovery list displayed by the discovery UI displays the devices discovered through the second discovery protocol.
2. A computing device according to claim 1, wherein the discovery protocol and the second discovery protocol comprise at least two of: an application-layer discovery protocol, a network-layer discovery protocol, and a link-layer discovery protocol.
3. A computing device according to claim 1, wherein the discovery engine is further configured to normalize the discovery results and the second discovery results into a namespace in which discovered devices are represented by respective single unique identifiers by identifying discovery results that correspond to a same device.
4. A computing device according to claim 1, wherein the discovery list comprises a representation of a first device discovered by the discovery protocol and comprises a representation of a second device discovered by the second discovery protocol, wherein both representations are configured to be interactively selected to initiate a connection to the corresponding devices.
5. A computing device according to claim 1, wherein the discovery framework comprises an application programming interface (API) invocable by arbitrary applications on the computing device.
6. A computing device according to claim 1, wherein the discovery UI comprises one or more UI elements configured to control filtering and/or ordering of the discovery list.
7. A computing device according to claim 1, wherein the discovery UI is configured to display an indication that additional devices have been discovered and the indication is configured to cause the additional devices to be displayed.
8. A computing device according to claim 1, wherein the devices in the discovery list are ordered according to proximity to the computing device.
9. A method performed by a computing device, the method comprising: executing an operating system comprised of a network protocol stack, the network protocol stack implementing a plurality of discovery protocols; displaying a user interface (UI) comprising a discovered-device area that displays discovered devices; responding to an invocation of the UI by requesting one of the discover protocols to discover devices on a network and adding the discovered devices to the discovered-device area; enabling interactive control of additional device discovery through the UI, wherein interactions with the UI modify discovery criteria and the discovery criteria control which discovery protocols are automatically selected to for discovering devices that are displayed in the discovered-device area; and whenever a device is discovered from multiple discovery protocols, assuring that the device is represented no more than one time in the discovered-device are.
10. A method according to claim 9, further comprising displaying an indication that additional discovery is available and responding to an activation of the indication by requesting the network communication protocol stack to perform additional device discovery with an additional discovery protocol.
11. A method according to claim 9, further comprising a user interface element that displays filtering criteria and filtering which devices are displayed in the discovered-device area according to the filtering criteria.
12. A method according to claim 9, further comprising responding to a user input selecting a device in the discovered-device area by initiating a connection over the network.
13. A method according to claim 9, wherein devices in the discovered-device area are at least partly ordered according to indications of previous connections thereto by the computing device.
14. A method according to claim 9, wherein devices are displayed in the discovered-devices area in a same form regardless of which discovery protocol discovered which device, and wherein some devices in the discovered-device area were discovered at different layers of the network communication protocol stack.
15. A method according to claim 14, wherein the different layers include at least two of: the application layer, the network/transport layer, and the link/media layer.
16. A method according to claim 9, wherein types of discovered devices are identified and are used for ordering, filtering, discovering, and/or displaying information about discovered devices.
17. Computer-readable storage hardware storing information configured to enable a computing device to perform a process, the process comprising: executing a discovery user interface (UI) functionally linked to a discovery engine; displaying in the discovery UI indicia of devices discovered on a network through a plurality of discovery protocols implemented by a protocol stack of the computing device, the devices discovered by the discovery engine selecting the discovery protocols according to discovery criteria specified at least in part by the discovery UI; based on a determination that additional devices are to be discovered, displaying additional indicia of devices discovered through the plurality of discovery protocols; and responding to a user input selecting a device indicated by the indicia of devices by initiating a network connection between the selected device and the computing device.
18. Computer-readable storage hardware according to claim 17, wherein the displaying additional indicia of devices comprises selecting one of the discovery protocols and issuing a request to the selected discovery protocol.
19. Computer-readable storage hardware according to claim 17, wherein the process further comprises automatically dynamically adapting the discovery UI to enable interactive extension of device discovery using the discovery protocols.
20. Computer-readable storage hardware according to claim 17, the process further comprising reducing results from the discovery protocols to a coherent normalized device namespace, the reducing including consolidating results from the discovery protocols that correspond to same devices.
 Devices often communicate with each other over networks to exchange information. For any two devices that need to exchange data, network communication can potentially involve many protocols, from the application layer down through the link layer. In some cases, two devices may have software that implements a same application-layer protocol. For discussion, the software might be peer components on respective devices, where the peer components are to exchange information according to the application-layer protocol. Although the two devices might be capable of forming a network connection through which their peer components might exchange messages, such an exchange can be difficult when a network connection cannot be formed because one peer is not aware of the other peer's existence or in particular its network address.
 This kind of connectivity problem often occurs when the application-layer protocol implemented by the peers assumes that one or more particular lower layer protocols are available for discovering other devices on the network. For instance, the application-layer protocol might be a media streaming protocol designed to use a WiFi advertising mechanism to discover other WiFi devices. One of the peer devices might not implement the advertising mechanism, or, the devices might be out of range of each other. Although the peers might be capable of exchanging their application-layer data if a network connection were established, the inability to discover each other prevents such communication. They might be incapable of "seeing" each other using the link-layer discover mechanism, and yet a network/transport layer connection--and hence peer communication--would be possible if they were able to discover each other through other means.
 Device-to-device connectivity at the application layer can be difficult due to other problems. For example, a network discovery mechanism at any layer might discover an excessive number of nodes, perhaps in the hundreds or thousands. If all such discovered devices are provided to an application and displayed for a user to select a target device for the application to connect to, the large number of devices shown makes it difficult for the user to find a suitable or particular device. In addition, many of the devices might not be relevant to the current conditions, application, user, etc. The user might know that the desired target device is in the same room, is within a certain radio range is on a same network segment, or is a certain type of device, and yet devices that do not meet those conditions are displayed for potential selection by the user.
 In addition, any given device needing to form a connection might have many mechanisms available for device discovery. A device might have application-level discovery mechanisms such as directory services, Domain Name System (DNS) discovery protocols such as DNS-SD (Service Discovery) and the Simple Service Discovery Protocol (SSDP). The device might also have discovery features in its implementations of network-level protocols, such as Internet Protocol (IP) multicast extensions, the IPv6 Network Discovery Protocol (NDP), and others. Many link-layer protocols also include discovery facilities for discovering nodes available for a particular link-layer protocol. For example, Bluetooth has various types of broadcast beacons that announce or solicit device presence. WiFi Direct also has advertise/discover functions.
 For a network with many and various devices, there might be dozens or hundreds of protocols that any two devices might potentially use to discover one another. However, most application-level software is coded to inflexibly use only one or a few discovery mechanisms. If multiple discovery mechanisms are used, it is in an uncoordinated disjoint manner. For instance, if two different discovery mechanisms are used by one application, then there might be, respectively, two different user interfaces (UIs), two different paths of connection logic, two different purposes for discovery, etc. While a device might have four or five means for discovering other devices on the network or devices that are nearby and capable of link-level or network-level connectivity, any given application on that device might be configured to use only one of the discovery means and therefore fail to take advantage of its device's full discovery capability.
 There is a need to allow arbitrary application-level software to transparently use a variety of network discovery mechanisms in a coherent manner and in a way that allows the scope and results of discovery to fit a current usage context.
 The following summary is included only to introduce some concepts discussed in the Detailed Description below. This summary is not comprehensive and is not intended to delineate the scope of the claimed subject matter, which is set forth by the claims herein.
 The embodiments described herein will be better understood from the following Detailed Description read in light of the accompanying Drawings, wherein like reference numerals are used to designate like parts in the accompanying description.
 FIG. 1 shows a discovery framework on a host.
 FIG. 2 shows details of the discovery framework.
 FIG. 3 shows details of how a discovery engine is used.
 FIG. 4 illustrates how the scope of device discovery may change dynamically based on user steering through a user interface of the discovery framework.
 FIG. 5 shows different discovery mechanisms that can be used by the discovery engine.
 FIG. 6 shows how discovery results from various discovery protocols can be collected and normalized into a coherent namespace of unique device identities.
 FIG. 7 shows an example of a master device identities table.
 FIG. 8 shows an example of an application configured to use the discovery framework.
 FIG. 9 shows the discovery user interface displayed by an application that uses the discovery framework.
 FIG. 10 shows how the discovery user interface can interactively control the scope of device discovery.
 FIG. 11 shows an example of the discovery user interface initiating a new connection.
 FIG. 12 shows details of a computing device.
 Embodiments of a network discovery framework are discussed below. Discussion will begin with an overview of a network discovery framework and its general context. Major functions of a discovery framework are described next, followed by discussion of how a same discovery framework can manage multiple contexts or discovery sessions for multiple applications or the like. Next, dynamic user-controlled scoping and refinement of a discovery list is explained. Examples of standard underlying discovery mechanisms and protocols are then covered, including details of how to build the results of disparate discovery protocols into a coherent normalized set of discovered devices. Finally, uses and features of a user interface provided by a discovery framework are described.
 FIG. 1 shows a discovery framework 100 on a host 102. The discovery framework 100 is shown as part of an operating system 104. However, the framework can be implemented in any way that makes it available to arbitrary application-level code that needs to discover devices for connecting thereto. For example, the framework may be a shared library, a background service, a component of a managed runtime environment, etc. Generally, the discovery framework 100 is accessed through some form of software interface, application programming interface (API), interprocess communication, or the like. The framework can be invoked and used by any software on the host 102. For instance, different applications 106 might each interface with the discovery framework 100. However, any code can invoke the framework. For example, a graphical user shell might have different elements that each have their own connectivity and discovery needs; each element may use the discovery framework in a customized way. As discussed below, in one embodiment, the framework manages a different context for each instance of its use or invocation by an application or other software.
 The discovery framework 100 has two major functions or modules, namely, a discovery UI 108 and a discovery engine 110. The discovery UI 108 (or instances thereof) is displayed in the windows of the application-layer code where device discovery is needed. Alternatively, the discovery UI has its own window. The discovery UI 108 is for (i) allowing a user to interactively steer the discovery engine's discovery of devices and shaping the results, (ii) displaying indicia of the discovered devices (e.g., a list of device names and pieces of device information), and (iii) allowing discovered devices to be interactively selected and in response configured for connectivity, for instance by assigning the network name/address of the selected device to an application-level configuration setting, and/or initiating network-level and/or application-level connectivity to the selected device, etc.
 The discovery engine 110 discovers devices as specified by the discovery UI 108 and/or discovery criteria. The discovery engine 110 is configured to interface with a variety of standard discovery protocols. The discovery engine 110 manages the discovery of devices 112 over one or more networks 114 according to various conditions, underlying discovery protocols, or discovery features of communication protocols. The discovery engine 110 uses arbitrary and perhaps standard discovery protocols to collect information about the devices 112. The devices 112 can be any type of device with the means to potentially communicate with the host 100. For example, devices 112 may be mobile phones, laptops, appliances with network connectivity, virtual machines, servers, displays such as projectors, sensors, printers, and so on. As discussed below, the discovery engine 110 collects responses to discovery requests, normalizes the discovery information, and provides indicia of discovered devices 112 for display and selection in the discovery UI 108. As used herein, "discovery protocol" refers to any communication protocol either specifically designed for device discovery or any communication protocol that includes a component for device discovery.
 FIG. 2 shows details of the discovery framework 100. As noted, any arbitrary code such as applications 106 can invoke the discovery framework through an API or the like. The discovery framework 100 has a context manager 130 to keep track of sessions or individual invocations of the discovery framework 100. When an application invokes the discovery framework 100, a new context 131 is created and associated with the invoker. The context 131 stores all of the discovery state for the corresponding invoker, for instance, discovery criteria, user interface state, etc. The context manager 130 creates and manages the lifetime of contexts 131. The context manager 130 also performs processes 132 for instantiating contexts 131, handling updates to contexts, and using the contexts to provide each application 106 or other invoker with the correct corresponding discovery results and the corresponding state of the discovery UI 108. Thus, each piece of code using the discovery framework 100 appears to have its own independent discovery mechanism with its own individual state, yet resources of the discovery framework such as discovery functionality, UI appearance and logic, and underlying discovery results can be shared. In one embodiment, contexts are partly persisted. For instance, when an application has invoked the framework, if the application specifies some discovery parameters, or if the discovery UI 108 is used to express preferences for displaying or filtering discovery results, or if a discovered device is selected for a connection, etc., then this type of information is persisted in the corresponding context after the application terminates or otherwise ends its session with the framework. When the application again invokes the framework, for instance after a new execution of the application, then the application can continue with at least some of its prior discovery state.
 As noted above, a new context might be initialized with various values. In one embodiment, a discovery type is associated with the new context. This might be done explicitly by the invoker passing in an explicit type parameter (e.g., "type1") or implicitly by inferring a type from features of the invoker. The type, if any, is looked up in a table 134 of predefined discovery types, each having a respective set of discovery criteria. The looked-up criteria are copied in to the corresponding context to initialize the discovery criteria for that context. Once initialized, if at all, the discovery criteria for a context can be updated interactively by user interaction with the discovery UI 108. Alternatively, each new context is assigned default values.
 In another embodiment, each invocation of the discovery framework creates a new autonomous instance of the discovery framework. In this case, context management is not needed and each framework instance has its own discovery configuration and data.
 The discovery framework 100 may be implemented so that the discovery UI 108 acts as a near real-time regulator of the scope and content of discovery. When the discovery UI 108 is interacted with to, for example, expand or contract the scope of discovery for the corresponding context/application, any necessary additional discovery searches (e.g., using an additional discovery protocol) are responsively performed and results thereof may populate the discovery UI 108 with newly discovered devices. In this way, a user is able to evaluate what has been discovered and interactively contract or expand the scope of network discovery of devices. Similarly, the current set of discovery results can be interactively filtered, reordered, etc., and which discovered devices are displayed in the discovery results expands and contracts accordingly.
 To enable this interactive steering of discovery and how discovery results are presented, a monitor 138 may be included. The monitor 138 may perform a process 139 that monitors for changes to contexts. When a change is detected the discovery engine 110 is informed and any needed actions are taken, such as issuing a new discovery request to the network. Similarly, the monitor 138 can monitor activity of the discovery engine 110 to assure that the discovery UI 108 remains consistent with the current discovery criteria. In some embodiments, discovery results are provided to the discovery UI 108 asynchronously so that the discovery UI 108 populates with indicia of devices as they are discovered.
 The discovery engine 110 uses the various available discovery protocols (discussed below) to discover new devices, stores results, and normalizes or canonicalizes the results into a coherent set of discovered device identities. Discovery may be guided by the discovery criteria of a given context. When the monitor 138 detects a change to a context's discovery criteria, the discovery engine 110 may be signaled to update the discovery search for the context. In turn, a discovery process 140 is performed. The relative discovery criteria are evaluated by the discovery engine 110. The discovery engine 110 may determine whether the discovery search needs to be expanded with a new discovery source.
 FIG. 3 shows details of how the discovery engine 110 is used. For discussion, it will be assumed that some application ("APP N") or other software has invoked the discovery framework 100 and has a corresponding context 131 ("CONTEXT N"). The context 131 stores or accesses UI state 150, discovery criteria 152, and a current discovery list 154. At step 155, controls 156 of the discovery UI 108 may be manipulated by a user. For example, an "expand search" button might be activated, a new discovery criteria might be added, a search string might be inputted in a text box, a desired type of device might be selected, a minimal degree of proximity is inputted, etc. This change to the UI state 150 updates the discovery criteria 152 (the UI state and the discovery criteria may be one and the same). In response, at step 158 the discovery engine 110 evaluates the updated discovery criteria and performs any underlying discovery inquiries that might be needed. Alternatively or additionally, at step 159 the current discovery list 154 is updated, which flows through to a device list element 160; indications 162 of discovered devices reflect which devices have been discovered according to the updated discovery criteria 152.
 FIG. 4 illustrates how the scope of device discovery or the devices in the current discovery list 154 may change dynamically based on user steering through the discovery UI. The shapes and shades of the graphics representing discoverable devices 112 represent different discovery mechanisms or protocols that might be implemented by the devices, different filterable features of the devices, and so forth. That is, factors that might affect whether a device is discovered or considered relevant to current criteria. Initially, the operative device or host 102 invokes the discovery framework. The discovery framework may start with some initial discovery criteria, either explicitly seeded with initialization parameters by the caller of the framework, by default, by inference, according to a previously stored context of the invoker, etc. At this initial state ("STAGE 1" in FIG. 4), the discovery engine might determine that only a single discovery protocol is needed, for instance, a Bluetooth discovery packet might be broadcasted. Devices 112 that answer the Bluetooth discovery request are represented by shaded squares. Thus, the current discovery list at STAGE 1 includes four devices, some or all of which are displayed in the device list element 160. If, after this first stage of discovery, the user does not find a desired device, then the scope of discovery may be expanded either by explicit user input or automatically, for instance based on passage of time or other conditions such as passive receipt of advertisement beacons or packets.
 At a next state of discovery ("STAGE 2"), the user may have indicated that additional discovery is needed. The discovery engine may expand the scope of discovery in a number of ways. For instance, a Bluetooth discovery might be initiated for additional device types or a lower minimum signal strength. A new discovery protocol might be added to the mix. As shown in FIG. 4, at the second stage the variety and number of discovered devices has been expanded. Similarly, if additional user input indicates that a desired device has still not been found, then the discovery may be expanded again ("STAGE 3"), for example, by invoking yet another search mechanism (e.g., multicast DNS) or loosening another search constraint. At each stage, the discovery UI might be updated to reflect the current discovery list, additional search constraints, result-ordering options, discovery options, etc. In some cases, adding filtering criteria might, counterintuitively, expand the number of discovery protocols in use. For example, if a string matching condition is inputted by a user, although this condition might reduce the number of displayed devices (by filtering), some form of DNS query might be added to the mix of discovery protocols.
 FIG. 5 shows different discovery mechanisms that can be used by the discovery engine 110. The discovery engine has a discovery querier 180 or similar component that is configured to interface with various discovery protocols. Regarding the discovery protocols, the host's operating system 104 has an ordinary communication or protocol stack 182, with modules or implementations of various communication protocols, some of which may be dedicated for discovery, others which may be communication protocols that happen to include a discovery mechanism (collectively referred to herein as "discovery protocols"). The discovery protocols can be used at any layer, including the application layer 184, transport layer 186, network layer 188, and link layer 190. In addition, some discovery mechanisms may be used that do not involve network communication, for example, Quick Response (QR) codes and inaudible sound.
 Among the discovery protocols that might be used at the application layer 184 are various DNS mechanisms such as DNS Service Discovery (DNS-SD), Multicast DNS (M-DNS). Well known directory services may also be used, for instance various Lightweight Directory Access Protocol (LDAP) implementations, Active Directory (TM), Simple Network Management Protocol (SNMP), etc. Service discovery protocols may also be used to discover devices, such as Dynamic Host Configuration Protocol (DHCP), the Simple Service Discovery Protocol (SSDP), or others. At the transport layer 186 there may not be protocols dedicated to discovery per se, however, some of the transport protocols may have discovery components. For example, the Universal Datagram Protocol (UDP) may include a broadcast feature 192 that can be used to obtain addresses of answering devices. At the network layer 188, several features may be available. For example, the Internet Protocol (IP) Neighbor Discovery (ND) 194 defined by IP version 6, the Internet Control Message Protocol (ICMP), and others may be used for network-level discovery of devices. At the link layer 190 a number of mechanisms may be available. The WiFi protocols alone include several discovery protocols. WiFi Direct protocols define transmissions for advertising and discovery. WiFi infrastructure, Bluetooth, and Ethernet implementations may each include ways to discover devices. For instance Ethernet modules sometimes implement the Link Layer Discovery Protocol. It should be noted that aspects of protocols not specifically designed for discovery can nonetheless be used to obtain clues about available devices. Discovery protocols can be implemented in ways other than wired/wireless electromagnetic radiation. For example, some devices may be capable of sound transmission and detection and at inaudible frequencies, and sound can be used akin to modems for discovery. The examples above are illustrative; other and new protocols are contemplated.
 FIG. 6 shows how discovery results from various discovery protocols can be collected and normalized into a coherent namespace. The discovery engine 110 is configured with logic to determine which discovery protocols are needed at any given time for any given context. In FIG. 6, for some context and corresponding discovery criteria, the discovery engine 110 has determined initially that discovery protocol A 200 is needed. The discovery querier 180 is coded to interface with all of the available discovery protocols to formulate discovery requests and to receive results. Initially, a module or implementation of discovery protocol A 200 is instructed to issue a discovery request, for example, by formatting an appropriate message, packet, or frame and passing it out a corresponding network interface.
 In response, the discovery querier 180 receives results 202 conformant to discovery protocol A. For example, the results might be DNS records, WiFi frames containing headers identifying devices that responded to the query, Bluetooth packets, or the like. Generally, results will contain, for each discovered device, one or more of: a network name and/or address (e.g., an IP address), a MAC address, metadata about the responding device, supported protocols, a Return Signal Strength Indicator (RSSI), or any other information of the type found in standard discovery protocols such as those discussed with reference to FIG. 5.
 Because the results from different discovery protocols may have different fields, formats, etc., the raw results are stored in a discovery cache 204 and are normalized therefrom. Each discovery protocol may have a table or other data structure for storing results with the format and/or content of the corresponding discovery protocol. For example, table A 206 stores results 202. Each record in table A 206 corresponds to a device discovered through discovery protocol A. Similarly, if the discovery criteria of the current context changes, then the discovery engine 110 might determine that the scope of discovery needs to be expanded to include discovery protocol B 208. A module or implementation of discovery protocol B is used by the discovery querier 180 to formulate another discovery request compliant with discovery protocol B. When additional results 210 are received through the network protocol stack and passed to the discovery querier 180, the additional results 210 are stored in table B 212 which may be specifically for storing data from discovery protocol B. Alternatively, pointers to results stored in discovery protocol modules/implementations may be used.
 Because an objective of the discovery framework is to provide a coherent device namespace from which a user can select devices to connect to, the discovery framework may have a normalizer 214 and a deduplicator 216. The normalizer maps incoming discovery protocol results to a device identities table 218 using any fields of information that can indicate an association with a same device. The device identities table 218 contains a single master record for each discovered device. When a discovery result is received, for instance results 202, for each device therein, if needed, a new master device record is added to the device identities table 218. The master record of a device might be populated with various fields from the results 202, for instance an IP address of the device, a name, an estimated range or proximity rank, pointers to other discovery results in the discovery cache 204 for the same device, and so forth. Each device may be assigned a Unique Identifier (UID) for the device namespace, and the UID functions as a key that links the discovery data of a device to its master record. The deduplicator 216 may consolidate duplicate master records using known deduplication techniques, remove duplicate result records, or otherwise detect and remove duplicate data.
 In one embodiment, each context has its own independent discovery cache. In another embodiment, each context shares the discovery cache as possible; the discovery cache is the union of discovery data of all of the contexts. In another embodiment, no raw discovery protocol results are cached or stored in tables, and instead, all data is translated and copied into the master identities table 218 when received. Generally, the provenance of the discovery data of a discovered device should be tracked, since dynamic discovery scoping decisions may depend on which discovery protocols have already been used or not. For example, if a master record of a device has a link to results table A, then it can be determined that protocol A has already been used to discover that device. If each context has its own discovery cache, the set of used protocols can be determined from which results tables exist or contain data.
 The discovery cache may or may not implement expiration logic. If discovery data is persisted, then the time to expire may depend on the particular discovery protocol, a type of the relevant context, or other factors. Generally, mobile devices will have short-lived discovery data, since the devices that are discoverable may depend on the changing location of the mobile device. That is, some devices may simply perform discovery protocol requests each time discovery data is needed for a given discovery protocol.
 The discovery engine 110 may also have functionality or modules to provide access to the discovery data in the tables. For example, a query handler 220 may handle queries, received through an interface 222, for discovery data, by finding requested discovery data and returning same. A filter 224 may provide filtered views of the discovery data in the master device identities table. For example, if the discovery UI indicates that only wireless devices are to be discovered, then the filter 224 provides a corresponding subset of discovered devices. In effect the filter 224 provides a view of the master device identity table. In addition, a proximity estimator 226 may be included to populate the master device table with proximity measures or ranks. If RSSI data is available, then RSSI values can be used. Any means for estimating the physical proximity of a device may be used, and various factors can be combined in weighted fashion. For instance, RSSI data, indications of a device being in a same building or on a same network segment, discovered location data (e.g., GPS coordinates), etc., may be combined to estimate which devices are relatively closest.
 FIG. 7 shows an example of a master device identities table 218. Each record of a discovered device contains key discovered information, including for example a name or hostname, an IP address, an indication of the types of the device (e.g., speakers, display, an operating system), indicia of the discovery protocols used to find the corresponding device, a UID, and/or others. The device identities table 218 is the source of the list of discovered devices displayed in the discovery UI. The contents thereof (or a filtered subset) can be provided to the discovery UI by data binding, event-driven data updating, interprocess communication, software interfaces, etc.
 FIG. 8 shows an example of an application configured to use the discovery framework. A display 230 of the host 102 displays a window 232 of the application. The window 232 may display content 234 of any variety. The application is functionally linked to the discovery framework. For example, an operation or user interface element 326 might invoke the discovery UI. The operation might be related to a connectivity need of the application. For instance, if the application is about to attempt to connect to a peer application, then the discovery UI might be automatically displayed. If a user interface element 236 is used, for instance a button, then the discovery UI is displayed when the user interface element 236 is activated.
 FIG. 9 shows the discovery UI 108 displayed by an application that uses the discovery framework 100. In the example of FIG. 9, the invocation of the discovery UI triggers a first automatic initial discovery request from one or more discovery protocols and the canonicalized discovered devices (the discovered device list) automatically populate the discovery UI. The discovery UI provides the ability to interactively select a device, for instance, in the form of selectable device indicators 240, a scrollable selector/cursor, a context menu, or the like. The discovery UI can be implemented, in some embodiments, to hide, delete its context, or take other actions if a device is selected. Moreover, selection of a device may trigger an application action such as attempting to form a connection with the selected device or setting a configuration setting to the selected device, its address, etc. As noted, in one embodiment, the discovery UI might automatically start to expand its scope of discovery automatically if a device is not selected after a threshold amount of time or in an insufficient number of devices are initially discovered.
 The discovery UI may also have controls 242 to control the scope of discovery, filter the discovered device list, set an ordering criteria (e.g., by device name or proximity), refresh the search, etc. Filtering can be based on any type of discovery data or information associated with discovered devices. For example, indicia of previous connections or pairings at the application level may be stored and the discovered device list may be sorted to prioritize such devices or filtered to display only such devices. Devices may also be filtered or sorted based on device type, proximity, connectivity capabilities, and other features. As noted above, the displayed discovery list can be populated asynchronously as new discovery responses flow in from responding discovered devices. A string filter may also be included to allow the user to display only device a whose names and/or associated metadata contains a user-specified string.
 The discovery UI may also include elements to enable a discovered device to be selected or designated. For example, each displayed discovered device may be represented by an interactive graphic that responds to user activation by triggering an event, initiating a network connection to be handed to the calling context (e.g., application) of the discovery UI, configuring the calling context to connect to the selected device, etc.
 FIG. 10 shows how the discovery UI can interactively control the scope of device discovery. The controls 242 may include one or more elements, such as a find-button 252, that signal to the discovery engine that additional discovery is needed. Such a signal can also be implicitly generated responsive to passage of some threshold amount of time without selection of a device, too few devices having been found, scrolling to the end of the current discovery list, expansion of the current discovery criteria or filter conditions, etc. In any case, what is notable is the discovery framework providing arbitrary code with transparent abstract access to a suite of discovery protocols to discover connectable devices without exposing the user to details of the underlying discovery protocols, and with a consistent discover-and-connect experience regardless of the application or setting.
 Returning to FIG. 10, when the find-button 252 or other feature of the discovery UI indicates that the scope of discovery needs to be extended, the discovery engine responds accordingly by adding indications of new devices 254 to the discovery list. For example, devices discovered by additional discovery protocols may be added, devices that less precisely fit the discovery criteria may be included, etc. In one embodiment, the discovery expansion adds or switches the discovery protocols that supply the current discovery list. In FIG. 10, activation of the find-button 252 leads to display of additional devices which can be selected.
 FIG. 11 shows an example of the discovery UI initiating a new connection. When indicator 240A for device1 is activated by a user input, because the device has been discovered with a discovery protocol, a network or media address of the device is available. That information, for instance from the master device table, is used to initiate a corresponding network-layer or link-layer connection to the selected device. As shown in FIG. 11, the application may use the new network connection to exchange data with a remote application, for instance, a peer, client, server, etc.
 FIG. 12 shows details of a computing device 250 on which embodiments described above may be implemented. The host 102 shown in FIG. 1 is a computing device 250. The technical disclosures herein constitute sufficient information for programmers to write software, and/or configure reconfigurable processing hardware (e.g., FPGAs), and/or design application-specific integrated circuits (ASICs), etc., to run on one or more of the computing devices 120 to implement any of features or embodiments described in the technical disclosures herein.
 The computing device 250 may have a display 252, a network interface 254 (or several), as well as storage hardware 256 and processing hardware 258, which may be a combination of any one or more: central processing units, graphics processing units, analog-to-digital converters, bus chips, FPGAs, ASICs, Application-specific Standard Products (ASSPs), or Complex Programmable Logic Devices (CPLDs), etc. The storage hardware 256 may be any combination of magnetic storage, static memory, volatile memory, non-volatile memory, optically or magnetically readable matter, etc. The meaning of the term "storage", as used herein does not refer to signals or energy per se, but rather refers to physical apparatuses and states of matter. The hardware elements of the computing device 250 may cooperate in ways well understood in the art of computing. In addition, input devices may be integrated with or in communication with the computing device 250. The computing device 250 may have any form factor or may be used in any type of encompassing device. The computing device 250 may be in the form of a handheld device such as a smartphone, a tablet computer, a gaming device, a server, a rack-mounted or backplaned computer-on-a-board, a system-on-a-chip, or others.
 Embodiments and features discussed above can be realized in the form of information stored in volatile or non-volatile computer or device readable storage hardware. This is deemed to include at least storage hardware such as optical storage (e.g., compact-disk read-only memory (CD-ROM)), magnetic storage hardware, flash read-only memory (ROM), and the like. The information stored in storage hardware can be in the form of machine executable instructions (e.g., compiled executable binary code), source code, bytecode, or any other physical hardware having a physical state that can transfer information to processing hardware to enable or configure computing devices to perform the various embodiments discussed above. This is also deemed to include at least volatile memory such as random-access memory (RAM) and/or virtual memory storing information such as central processing unit (CPU) instructions during execution of a program carrying out an embodiment, as well as non-volatile media storing information that allows a program or executable to be loaded and executed. The embodiments and features can be performed on any type of computing device, including portable devices, workstations, servers, mobile wireless devices, and so on.


Delegate Joseline Pena-Melnyk has worked to stop wrongful convictions with a successful bill to require police to use scientifically-supported procedures during eyewitness identification. She has also defended state support for Planned Parenthood's family planning services.
Pena-Melnyk, who represents Prince George's and Anne Arundel counties, was born in the Dominican Republic and is a board member of the Dominican American National Roundtable.
She serves on the Governor's Wellmobile Program Advisory Board, is a member of the Baltimore Revitalization Task Force, and is on the board of EMERGE Maryland.


Calusco d'Adda is a comune (municipality) in the Province of Bergamo in the Italian region of Lombardy, located about 35 km northeast of Milan and about 14 km west of Bergamo. As of 31 December 2004, it had a population of 8,067 and an area of 8.2 km².
Calusco d'Adda borders the following municipalities: Carvico, Medolago, Paderno d'Adda, Robbiate, Solza, Terno d'Isola, Villa d'Adda.
Content on this page is licensed under CC-BY-SA from the authors of the following Wikipedia pages: List of twin towns and sister cities in Italy, Calusco d'Adda. Note that the data on Wikipedia is highly unreliable. In many cases, sister cities are missing or wrongly listed. Some cities also have different levels of partnership. If you find an error, please make a correction on the relevant Wikipedia pages and cite your sources.


Gold chloride and gold oxide are used to make cranberry or red-colored glass, which, like colloidal gold suspensions, contains evenly sized spherical gold nanoparticles. Gold, when dispersed in nanoparticles, can act as a heterogeneous catalyst of chemical reactions. Toxicity.... If the gold is attracted to the magnet, it's not real gold but more likely fool's gold, which contains iron. Poke your gold with a pin. Gold is extremely soft and ductile, so if the gold cracks or splits, chances are it wasn't real gold at all.
Rose gold, also known as pink gold and red gold, was popular in Russia at the beginning of the nineteenth century, and was also known as Russian gold, although this term is now obsolete. Rose gold jewelry is becoming more popular in the 21st century, and is commonly used for wedding rings, bracelets, and other jewelry.
Sometime in the 1370's, French scrivener Nicolas Flamel purchased a strange 21-page book penned in a language unbeknownst to him. The minute, yet mystifying tome utterly engrossed Flamel, who promptly decided to dedicate his life to unraveling its secrets.
Gold chloride and gold oxide are used to make cranberry or red-colored glass, which, like colloidal gold suspensions, contains evenly sized spherical gold nanoparticles. Gold, when dispersed in nanoparticles, can act as a heterogeneous catalyst of chemical reactions. Toxicity.


BoBo Buddies Toddler Backpack and Reins - Raffy is backordered and will ship as soon as it is back in stock.
BoBo Buddies Toddler Backpack and Reins - Mungo is backordered and will ship as soon as it is back in stock.
BoBo Buddies Toddler Backpack and Reins - Roary is backordered and will ship as soon as it is back in stock.


Should theOscars have a category for 'Best Performance by a Piece of Office Equipment ina Motion Picture'? No. Of course not. That would be ridiculous. Nevertheless,some of our favourite Hollywood movies contain pivotal roles from normallyinnocuous office products.
How many ofthe following five photocopier/fax cameos do you remember?
Some would argue the quintessential photocopier scene. Mike Judge's 1999 satire about three disgruntled office workers who decide to rip off their company via complex accounting fraud features what is probably the goriest movie death for a piece of electronic equipment since the T-101 decided to take a nap underneath an hydraulic press. The three colleagues take long sought after revenge against the MFP for ruining their long days by taking it out into the middle of nowhere and taking turns to pummel it into the dirt – all set against a Geto Boys soundtrack.
The sinister photocopier again emerges as a symbol of white collar frustration and pent upcorporate drone angst in David Fincher's seminal 1999 study of the modern male psyche. The narrator works for an insurance company and sees his lifestretching out before him devoid of possibility – in order to liven things uphe subconsciously creates an alter ego – the exotically amoral Tyler Durden. Before meeting Tyler for the first time we see, through the narrators eyes, subliminalglimpses of his soon to be unleashed dark side – single frames containing outof focus Tylers in the background. The first of these occurs while the narrator watches his colleague operate a photocopier.
Tagline: On long enough timeline the survival rate for every HPLJ9050 drops to zero.
Okay,it's not a movie but it is HBO, so close enough, yeah? The urban myth of the police faking lie detector tests on ignorant suspects is an old one but in series five, episode one of what is probably the greatest cop drama of all time it's given a new twist. Dapper dressing Bunk Moreland tapes his frightened witnesses hand to a photocopier's glass plate in order to verify his answers."The machine never lies, son" says Moreland to his terrified mark, who promptly confesses.
You'd have thought that where they were going, they wouldn't need faxes. Apparently you'd be wrong. When Marty McFly finds himself in his own living room 20 yearsin the future in Robert Zemeckis' 1989 sci-fi comedy sequel he sees his future self getting fired by his then boss for being goaded into a dodgy business deal by his friend Needles ("nobody calls me chicken!"). The message comes through on several faxes placed in Marty's, now I come to think of it, suspiciously 80's looking living room. But all is not lost- at the end of Part III, back in 1985, (the two films were shot together and intended as a single cohesive story) McFly overcomes his tendency towards provinghis courage which ensures that he'll keep his mundane future job (?) and the message disappears.
Tagline: He was never in time for his classes… He was never in time for his dinner… Then one day he bought an Amstrad PF600.
Oh agent Kujan, you came so close to catching the elusive Keyser Söze in Bryan Singer's 1995 neo-noir masterpiece. If only that fax machine had been a little quicker in transmitting the police artist's sketch of Keyser's face (put together from the description of the only other survivor). If only mobiles with cameras had been around in '95 then you wouldn't have needed a fax machine at all.
Tagline: Five criminals. One line up. No connection. Please hang up and try again.
Approved Index provides a fast and free way to get photocopier quotes. Fill out one simple form and get up to 4 free, no-obligation quotes from top UK copier suppliers.


To accomplish our mission as an outreach and professional development program of Salish Kootenai College's Department of Media Design, Flathead Tech4Good relies on partnerships throughout the community. Our partners serve as experts and mentors and provide depth and context for our annual challenge theme. Partners give SKC FT4G the capacity to provide high-quality engagement and professional development opportunities for local high school and college students.


The objective of this research is to determine the relationship between service quality and outpatients' satisfaction towards public hospitals in Malaysia. Five dimensions from SERVQUAL model, Competency, Responsiveness, Courtesy, Tangibility and Reliability are used in the research model. A cross-sectional survey was conducted in hospitals located in States with the highest average outpatient numbers, namely Hospital Kuala Lumpur, Hospital Pulau Pinang and Hospital Putrajaya. The convenience sampling technique was used and 409 useful questionnaires were collected. The results showed that there is a significant positive relationship between Competency, Tangibility, Reliability and Outpatient Satisfaction. However, Responsiveness and Courtesy have a positive and insignificant relationship with Outpatients' Satisfaction. By determining the significant variables influencing outpatients' satisfaction, this study gives an insight for managers and staff of public hospitals on the effect of service quality towards outpatients' satisfaction and also recommends ways for improvement.
Local Authorities play an important role in the national development of any country as they are the vehicle for basic municipal service delivery. They are the interface of government and its citizenry at the local level meaning that local authorities represent government in action. As such, the same are expected to proffer sustainable services in the right amount and at the right time. Local authorities therefore provide the backbone for a country's socio-economic development. However, the recent history of the local authority sector suggests that Councils have fallen way behind in terms of delivering on their mandate due a number of factors. The Ministry responsible for Local Government in Zimbabwe notes that the peak year where councils were optimally functional was 1996 and this is the level that has been benchmarked. In the main, it may be noted, that Councils in Zimbabwe rank among the most liquid organisations; their revenues are guaranteed in the Constitution and in some way in the relevant Acts of Parliament. As such, it is within the rights of the public to expect local authorities to offer more than they have done since the turn of the millennium. It may be argued that the set-up of Local Authorities in Zimbabwe is not aligned to the objective of delivering optimal services to communities with the same not responding to the demands of the people as well the operating environment. To significantly alter this negative spiral of performance, it is imperative that Local Authorities deal decisively with issues surrounding organisational culture in order to focus members (councillors and employees), policies and processes towards the achievement of both local and national goals and priorities. This study reviews several literature already proffered on the subject matter in conjunction with primary research with a view to add to the body of knowledge in the area of study.
This study contributes in the existing literature in the field of organizational culture and service delivery in the public sector. Research has been carried out on organizational culture in the private in developed countries. There is limited literature on organizational culture in the public sector, mainly in the developing world. The study used qualitative research methods that present a practical way of establishing the organisational culture aspects such as norms, values and belief systems that can't be measured quantitatively.
It is argued that while increase in budgetary allocation to social services is highly desirable, it is not sufficient to guarantee enhancement in better health outcome. This paper links public health expenditure, economic growth and health outcomes and the causality among them using Nigeria data. The finding suggests increase in public health expenditure has decreased infant mortality rate while infant mortality rate is negatively correlated with economic growth. Interestingly, the direction of causality among public health expenditure, infant mortality rate and growth is unidirectional, from public health expenditure to growth.
This is one of the few studies which have investigated public health expenditure, economic growth and health outcomes (infant mortality rate) in Nigeria.
This is a qualitative paper which is to present the facts and literature findings on the causes of good governance practice in Ghana conceptually. It is noted that discipline and probity are the backbone of good governance. Every country in this modern era want to achieve good governance so that there will be improvement in the economic fortunes but this cannot be achieved if there is lack of discipline and lack of probity in the practice. Hence, literature reveals that there are some relationships between discipline (independent variable), probity (mediating variable) and good governance (dependent variable). Good governance is the main important factor to eradicating poverty and advancing development, said by the UN former Secretary General – Kofi Annan (Court, 2001). This research is purely a conceptual research and a model/conceptual framework has been proposed for future scientific research. Hypothesis has been proposed which need to be developed and tested for effective and efficient conclusion in future findings as such. This research only proposes the concepts that are associated with good governance practice – discipline and probity; the methods used are the secondary sources of data findings were analyzed. Future research findings, analysis and recommendation is eminent on this proposed concept model for future researchers. Therefore, a strong methodology is needed to support all the findings and interpretations of the hypothesis. In this instance, quantitative and qualitative study as a mixed method would be suitable for future research to test relationships and hypothesis that are been identified in the proposed conceptual model.
The aim of this conceptual paper is to contribute to the burning issues of the lack of discipline and probity as a deterrent in the developing world from achieving good governance. This study contributes in the existing literature of the concepts needed in practice to improve good governance for development.
This study have examined the determinants of corruption in Nigeria's public sector using ten local government areas in Lagos State and Federal Capital Territory in Abuja during the period 2017-2018. Plethora of studies has analyzed the relationship between corruption and economic growth using different econometric techniques and statistical simulation. This study, however, departed from the common methodological approach by conducting a survey of corruption in public sector to ascertain its determinants. Findings from a survey of one thousand and seventy six (1976) subjects were documented and multiple variables emanated as critical determinants of corruption in public sector. The study recommends that policy makers should intensify efforts at re-orientating the society against the ills of corruption by establishing high ethical standards to which all and sundry must adhere.
This study contributes to the existing body of literature by adopting a survey technique to ascertain the determinants of corruption in Nigeria's public sector by exploring ten (10) local government areas in Lagos State and Federal Civil Service in Abuja. A large number of studies in this area have employed theoretically established and econometric expositions to validate the determinants of corruption. The study uses common statistical technique to analyze both the causal and determinate variables motivating corruption.


A variety of protein sequence databases exit, ranging from simple sequence repositories which store data with little or no manual intervention in the creation of the records, to expertly curate universal databases that cover all the species and in which the original sequence data are enhanced by the manual addition of further information in each sequence records. As the focus of the researches moves from the genome to the protein information. Several the leading protein sequence databases are discussed here, with special emphasis on the databases now provided by the universal protein knowledgebase (uniprot) consortium.
Keywords: Bioinformatics, Biological databases, Protein analysis, Protein modeling.


text:
Luca Guidetti (born 6 May 1986) is an Italian footballer who plays for  club Alessandria.

Club career
On 8 January 2019, he signed a 1.5-year contract with FeralpiSalò.

On 11 January 2023, Guidetti moved to Alessandria.

Honours

Club
 Monza
Serie D: 2016-17
Scudetto Dilettanti: 2016-17

References

1986 births
Living people
Footballers from Milan
Italian footballers
Association football midfielders
Serie C players
Serie D players
Como 1907 players
A.C. Renate players
U.S. Folgore Caratese A.S.D. players
S.C. Caronnese S.S.D. players
A.C. Monza players
FeralpiSalò players
F.C. Sangiuliano City players
U.S. Alessandria Calcio 1912 players

redpajama_set_name: RedPajamaWikipedia


Fit: Featuring our classic fit, the Essential leggings are crafted to perfection to give you the ultimate comfort.
Materials: Hand crafted from the highest quality polyester lycra blend to guarantee the perfect blend of comfort, flexibility and style in and out of the gym.
Design: Featuring our signature VQ logo on the lower leg and Vanquish branded waistband.


text:
"The Connection Has Been Reset"
China's Great Firewall is crude, slapdash, and surprisingly easy to breach. Here's why it's so effective anyway.
Illustration by John Ritter
Many foreigners who come to China for the Olympics will use the Internet to tell people back home what they have seen and to check what else has happened in the world.
Interview: "Penetrating the Great Firewall"
James Fallows explains how he was able to probe the taboo subject of Chinese Internet censorship.
The first thing they'll probably notice is that China's Internet seems slow. Partly this is because of congestion in China's internal networks, which affects domestic and international transmissions alike. Partly it is because even electrons take a detectable period of time to travel beneath the Pacific Ocean to servers in America and back again; the trip to and from Europe is even longer, because that goes through America, too. And partly it is because of the delaying cycles imposed by China's system that monitors what people are looking for on the Internet, especially when they're looking overseas. That's what foreigners have heard about.
They'll likely be surprised, then, to notice that China's Internet seems surprisingly free and uncontrolled. Can they search for information about "Tibet independence" or "Tiananmen shooting" or other terms they have heard are taboo? Probably—and they'll be able to click right through to the controversial sites. Even if they enter the Chinese-language term for "democracy in China," they'll probably get results. What about Wikipedia, famously off-limits to users in China? They will probably be able to reach it. Naturally the visitors will wonder: What's all this I've heard about the "Great Firewall" and China's tight limits on the Internet?
In reality, what the Olympic-era visitors will be discovering is not the absence of China's electronic control but its new refinement—and a special Potemkin-style unfettered access that will be set up just for them, and just for the length of their stay. According to engineers I have spoken with at two tech organizations in China, the government bodies in charge of censoring the Internet have told them to get ready to unblock access from a list of specific Internet Protocol (IP) addresses—certain Internet cafés, access jacks in hotel rooms and conference centers where foreigners are expected to work or stay during the Olympic Games. (I am not giving names or identifying details of any Chinese citizens with whom I have discussed this topic, because they risk financial or criminal punishment for criticizing the system or even disclosing how it works. Also, I have not gone to Chinese government agencies for their side of the story, because the very existence of Internet controls is almost never discussed in public here, apart from vague statements about the importance of keeping online information "wholesome.")
Depending on how you look at it, the Chinese government's attempt to rein in the Internet is crude and slapdash or ingenious and well crafted. When American technologists write about the control system, they tend to emphasize its limits. When Chinese citizens discuss it—at least with me—they tend to emphasize its strength. All of them are right, which makes the government's approach to the Internet a nice proxy for its larger attempt to control people's daily lives.
Disappointingly, "Great Firewall" is not really the right term for the Chinese government's overall control strategy. China has indeed erected a firewall—a barrier to keep its Internet users from dealing easily with the outside world—but that is only one part of a larger, complex structure of monitoring and censorship. The official name for the entire approach, which is ostensibly a way to keep hackers and other rogue elements from harming Chinese Internet users, is the "Golden Shield Project." Since that term is too creepy to bear repeating, I'll use "the control system" for the overall strategy, which includes the "Great Firewall of China," or GFW, as the means of screening contact with other countries.
In America, the Internet was originally designed to be free of choke points, so that each packet of information could be routed quickly around any temporary obstruction. In China, the Internet came with choke points built in. Even now, virtually all Internet contact between China and the rest of the world is routed through a very small number of fiber-optic cables that enter the country at one of three points: the Beijing-Qingdao-Tianjin area in the north, where cables come in from Japan; Shanghai on the central coast, where they also come from Japan; and Guangzhou in the south, where they come from Hong Kong. (A few places in China have Internet service via satellite, but that is both expensive and slow. Other lines run across Central Asia to Russia but carry little traffic.) In late 2006, Internet users in China were reminded just how important these choke points are when a seabed earthquake near Taiwan cut some major cables serving the country. It took months before international transmissions to and from most of China regained even their pre-quake speed, such as it was.
Thus Chinese authorities can easily do something that would be harder in most developed countries: physically monitor all traffic into or out of the country. They do so by installing at each of these few "international gateways" a device called a "tapper" or "network sniffer," which can mirror every packet of data going in or out. This involves mirroring in both a figurative and a literal sense. "Mirroring" is the term for normal copying or backup operations, and in this case real though extremely small mirrors are employed. Information travels along fiber-optic cables as little pulses of light, and as these travel through the Chinese gateway routers, numerous tiny mirrors bounce reflections of them to a separate set of "Golden Shield" computers.Here the term's creepiness is appropriate. As the other routers and servers (short for file servers, which are essentially very large-capacity computers) that make up the Internet do their best to get the packet where it's supposed to go, China's own surveillance computers are looking over the same information to see whether it should be stopped.
The mirroring routers were first designed and supplied to the Chinese authorities by the U.S. tech firm Cisco, which is why Cisco took such heat from human-rights organizations. Cisco has always denied that it tailored its equipment to the authorities' surveillance needs, and said it merely sold them what it would sell anyone else. The issue is now moot, since similar routers are made by companies around the world, notably including China's own electronics giant, Huawei. The ongoing refinements are mainly in surveillance software, which the Chinese are developing themselves. Many of the surveillance engineers are thought to come from the military's own technology institutions. Their work is good and getting better, I was told by Chinese and foreign engineers who do "oppo research" on the evolving GFW so as to design better ways to get around it.
Andrew Lih, a former journalism professor and software engineer now based in Beijing (and author of the forthcoming book The Wikipedia Story), laid out for me the ways in which the GFW can keep a Chinese Internet user from finding desired material on a foreign site. In the few seconds after a user enters a request at the browser, and before something new shows up on the screen, at least four things can go wrong—or be made to go wrong.
The first and bluntest is the "DNS block." The DNS, or Domain Name System, is in effect the telephone directory of Internet sites. Each time you enter a Web address, or URL—www.yahoo.com, let's say—the DNS looks up the IP address where the site can be found. IP addresses are numbers separated by dots—for example, TheAtlantic.com's is 38.118.42.200. If the DNS is instructed to give back no address, or a bad address, the user can't reach the site in question—as a phone user could not make a call if given a bad number. Typing in the URL for the BBC's main news site often gets the no-address treatment: if you try news.bbc.co.uk, you may get a "Site not found" message on the screen. For two months in 2002, Google's Chinese site, Google.cn, got a different kind of bad-address treatment, which shunted users to its main competitor, the dominant Chinese search engine, Baidu. Chinese academics complained that this was hampering their work. The government, which does not have to stand for reelection but still tries not to antagonize important groups needlessly, let Google.cn back online. During politically sensitive times, like last fall's 17th Communist Party Congress, many foreign sites have been temporarily shut down this way.
Next is the perilous "connect" phase. If the DNS has looked up and provided the right IP address, your computer sends a signal requesting a connection with that remote site. While your signal is going out, and as the other system is sending a reply, the surveillance computers within China are looking over your request, which has been mirrored to them. They quickly check a list of forbidden IP sites. If you're trying to reach one on that blacklist, the Chinese international-gateway servers will interrupt the transmission by sending an Internet "Reset" command both to your computer and to the one you're trying to reach. Reset is a perfectly routine Internet function, which is used to repair connections that have become unsynchronized. But in this case it's equivalent to forcing the phones on each end of a conversation to hang up. Instead of the site you want, you usually see an onscreen message beginning "The connection has been reset"; sometimes instead you get "Site not found." Annoyingly, blogs hosted by the popular system Blogspot are on this IP blacklist. For a typical Google-type search, many of the links shown on the results page are from Wikipedia or one of these main blog sites. You will see these links when you search from inside China, but if you click on them, you won't get what you want.
The third barrier comes with what Lih calls "URL keyword block." The numerical Internet address you are trying to reach might not be on the blacklist. But if the words in its URL include forbidden terms, the connection will also be reset. (The Uniform Resource Locator is a site's address in plain English—say, www.microsoft.com—rather than its all-numeric IP address.) The site FalunGong .com appears to have no active content, but even if it did, Internet users in China would not be able to see it. The forbidden list contains words in English, Chinese, and other languages, and is frequently revised—"like, with the name of the latest town with a coal mine disaster," as Lih put it. Here the GFW's programming technique is not a reset command but a "black-hole loop," in which a request for a page is trapped in a sequence of delaying commands. These are the programming equivalent of the old saw about how to keep an idiot busy: you take a piece of paper and write "Please turn over" on each side. When the Firefox browser detects that it is in this kind of loop, it gives an error message saying: "The server is redirecting the request for this address in a way that will never complete."
The final step involves the newest and most sophisticated part of the GFW: scanning the actual contents of each page—which stories The New York Times is featuring, what a China-related blog carries in its latest update—to judge its page-by-page acceptability. This again is done with mirrors. When you reach a favorite blog or news site and ask to see particular items, the requested pages come to you—and to the surveillance system at the same time. The GFW scanner checks the content of each item against its list of forbidden terms. If it finds something it doesn't like, it breaks the connection to the offending site and won't let you download anything further from it. The GFW then imposes a temporary blackout on further "IP1 to IP2" attempts—that is, efforts to establish communications between the user and the offending site. Usually the first time-out is for two minutes. If the user tries to reach the site during that time, a five-minute time-out might begin. On a third try, the time-out might be 30 minutes or an hour—and so on through an escalating sequence of punishments.
Users who try hard enough or often enough to reach the wrong sites might attract the attention of the authorities. At least in principle, Chinese Internet users must sign in with their real names whenever they go online, even in Internet cafés. When the surveillance system flags an IP address from which a lot of "bad" searches originate, the authorities have a good chance of knowing who is sitting at that machine.
All of this adds a note of unpredictability to each attempt to get news from outside China. One day you go to the NPR site and cruise around with no problem. The next time, NPR happens to have done a feature on Tibet. The GFW immobilizes the site. If you try to refresh the page or click through to a new story, you'll get nothing—and the time-out clock will start.
This approach is considered a subtler and more refined form of censorship, since big foreign sites no longer need be blocked wholesale. In principle they're in trouble only when they cover the wrong things. Xiao Qiang, an expert on Chinese media at the University of California at Berkeley journalism school, told me that the authorities have recently begun applying this kind of filtering in reverse. As Chinese-speaking people outside the country, perhaps academics or exiled dissidents, look for data on Chinese sites—say, public-health figures or news about a local protest—the GFW computers can monitor what they're asking for and censor what they find.
Taken together, the components of the control system share several traits. They're constantly evolving and changing in their emphasis, as new surveillance techniques become practical and as words go on and off the sensitive list. They leave the Chinese Internet public unsure about where the off-limits line will be drawn on any given day. Andrew Lih points out that other countries that also censor Internet content—Singapore, for instance, or the United Arab Emirates—provide explanations whenever they do so. Someone who clicks on a pornographic or "anti-Islamic" site in the U.A.E. gets the following message, in Arabic and English: "We apologize the site you are attempting to visit has been blocked due to its content being inconsistent with the religious, cultural, political, and moral values of the United Arab Emirates." In China, the connection just times out. Is it your computer's problem? The firewall? Or maybe your local Internet provider, which has decided to do some filtering on its own? You don't know. "The unpredictability of the firewall actually makes it more effective," another Chinese software engineer told me. "It becomes much harder to know what the system is looking for, and you always have to be on guard."
There is one more similarity among the components of the firewall: they are all easy to thwart.
As a practical matter, anyone in China who wants to get around the firewall can choose between two well-known and dependable alternatives: the proxy server and the VPN. A proxy server is a way of connecting your computer inside China with another one somewhere else—or usually to a series of foreign computers, automatically passing signals along to conceal where they really came from. You initiate a Web request, and the proxy system takes over, sending it to a computer in America or Finland or Brazil. Eventually the system finds what you want and sends it back. The main drawback is that it makes Internet operations very, very slow. But because most proxies cost nothing to install and operate, this is the favorite of students and hackers in China.
A VPN, or virtual private network, is a faster, fancier, and more elegant way to achieve the same result. Essentially a VPN creates your own private, encrypted channel that runs alongside the normal Internet. From within China, a VPN connects you with an Internet server somewhere else. You pass your browsing and downloading requests to that American or Finnish or Japanese server, and it finds and sends back what you're looking for. The GFW doesn't stop you, because it can't read the encrypted messages you're sending. Every foreign business operating in China uses such a network. VPNs are freely advertised in China, so individuals can sign up, too. I use one that costs $40 per year. (An expat in China thinks: that's a little over a dime a day. A Chinese factory worker thinks: it's a week's take-home pay. Even for a young academic, it's a couple days' work.)
As a technical matter, China could crack down on the proxies and VPNs whenever it pleased. Today the policy is: if a message comes through that the surveillance system cannot read because it's encrypted, let's wave it on through! Obviously the system's behavior could be reversed. But everyone I spoke with said that China could simply not afford to crack down that way. "Every bank, every foreign manufacturing company, every retailer, every software vendor needs VPNs to exist," a Chinese professor told me. "They would have to shut down the next day if asked to send their commercial information through the regular Chinese Internet and the Great Firewall." Closing down the free, easy-to-use proxy servers would create a milder version of the same problem. Encrypted e-mail, too, passes through the GFW without scrutiny, and users of many Web-based mail systems can establish a secure session simply by typing "https:" rather than the usual "http:" in a site's address—for instance, https://mail.yahoo.com. To keep China in business, then, the government has to allow some exceptions to its control efforts—even knowing that many Chinese citizens will exploit the resulting loopholes.
Because the Chinese government can't plug every gap in the Great Firewall, many American observers have concluded that its larger efforts to control electronic discussion, and the democratization and grass-roots organizing it might nurture, are ultimately doomed. A recent item on an influential American tech Web site had the headline "Chinese National Firewall Isn't All That Effective." In October, Wired ran a story under the headline "The Great Firewall: China's Misguided—and Futile—Attempt to Control What Happens Online."
Let's not stop to discuss why the vision of democracy-through-communications-technology is so convincing to so many Americans. (Samizdat, fax machines, and the Voice of America eventually helped bring down the Soviet system. Therefore proxy servers and online chat rooms must erode the power of the Chinese state. Right?) Instead, let me emphasize how unconvincing this vision is to most people who deal with China's system of extensive, if imperfect, Internet controls.
Think again of the real importance of the Great Firewall. Does the Chinese government really care if a citizen can look up the Tiananmen Square entry on Wikipedia? Of course not. Anyone who wants that information will get it—by using a proxy server or VPN, by e-mailing to a friend overseas, even by looking at the surprisingly broad array of foreign magazines that arrive, uncensored, in Chinese public libraries.
What the government cares about is making the quest for information just enough of a nuisance that people generally won't bother. Most Chinese people, like most Americans, are interested mainly in their own country. All around them is more information about China and things Chinese than they could possibly take in. The newsstands are bulging with papers and countless glossy magazines. The bookstores are big, well stocked, and full of patrons, and so are the public libraries. Video stores, with pirated versions of anything. Lots of TV channels. And of course the Internet, where sites in Chinese and about China constantly proliferate. When this much is available inside the Great Firewall, why go to the expense and bother, or incur the possible risk, of trying to look outside?
All the technology employed by the Golden Shield, all the marvelous mirrors that help build the Great Firewall—these and other modern achievements matter mainly for an old-fashioned and pre-technological reason. By making the search for external information a nuisance, they drive Chinese people back to an environment in which familiar tools of social control come into play.
Chinese bloggers have learned that if they want to be read in China, they must operate within China, on the same side of the firewall as their potential audience. Sure, they could put up exactly the same information outside the Chinese mainland. But according to Rebecca MacKinnon, a former Beijing correspondent for CNN now at the Journalism and Media Studies Center of the University of Hong Kong, their readers won't make the effort to cross the GFW and find them. "If you want to have traction in China, you have to be in China," she told me. And being inside China means operating under the sweeping rules that govern all forms of media here: guidance from the authorities; the threat of financial ruin or time in jail; the unavoidable self-censorship as the cost of defiance sinks in.
Most blogs in China are hosted by big Internet companies. Those companies know that the government will hold them responsible if a blogger says something bad. Thus the companies, for their own survival, are dragooned into service as auxiliary censors.
Large teams of paid government censors delete offensive comments and warn errant bloggers. (No official figures are available, but the censor workforce is widely assumed to number in the tens of thousands.) Members of the public at large are encouraged to speak up when they see subversive material. The propaganda ministries send out frequent instructions about what can and cannot be discussed. In October, the group Reporters Without Borders, based in Paris, released an astonishing report by a Chinese Internet technician writing under the pseudonym "Mr. Tao." He collected dozens of the messages he and other Internet operators had received from the central government. Here is just one, from the summer of 2006:
From: Chen Hua, deputy director of the Beijing Internet Information Administrative Bureau
Dear colleagues, the Internet has of late been full of articles and messages about the death of a Shenzhen engineer, Hu Xinyu, as a result of overwork. All sites must stop posting articles on this subject, those that have already been posted about it must be removed from the site and, finally, forums and blogs must withdraw all articles and messages about this case.
"Domestic censorship is the real issue, and it is about social control, human surveillance, peer pressure, and self-censorship," Xiao Qiang of Berkeley says. Last fall, a team of computer scientists from the University of California at Davis and the University of New Mexico published an exhaustive technical analysis of the GFW's operation and of the ways it could be foiled. But they stressed a nontechnical factor: "The presence of censorship, even if easy to evade, promotes self-censorship."
It would be wrong to portray China as a tightly buttoned mind-control state. It is too wide-open in too many ways for that. "Most people in China feel freer than any Chinese people have been in the country's history, ever," a Chinese software engineer who earned a doctorate in the United States told me. "There has never been a space for any kind of discussion before, and the government is clever about continuing to expand space for anything that doesn't threaten its survival." But it would also be wrong to ignore the cumulative effect of topics people are not allowed to discuss. "Whether or not Americans supported George W. Bush, they could not avoid learning about Abu Ghraib," Rebecca MacKinnon says. In China, "the controls mean that whole topics inconvenient for the regime simply don't exist in public discussion." Most Chinese people remain wholly unaware of internationally noticed issues like, for instance, the controversy over the Three Gorges Dam.
Countless questions about today's China boil down to: How long can this go on? How long can the industrial growth continue before the natural environment is destroyed? How long can the super-rich get richer, without the poor getting mad? And so on through a familiar list. The Great Firewall poses the question in another form: How long can the regime control what people are allowed to know, without the people caring enough to object? On current evidence, for quite a while.
James Fallows is a staff writer for The Atlantic and has written for the magazine since the late 1970s. He has reported extensively from outside the United States and once worked as President Carter's chief speechwriter. He and his wife, Deborah Fallows, are the authors of the 2018 book Our Towns: A 100,000-Mile Journey Into the Heart of America, which was a national best seller and is the basis of a forthcoming HBO documentary.

redpajama_set_name: RedPajamaCommonCrawl


Education Portfolio Convenor Sue Higgins of Rural Women New Zealand Photo: RNZ/Cosmo Kentish-Barnes.
The deadline for five tertiary scholarships offered by Rural Women New Zealand (RWNZ) is fast approaching, with applications due in by Friday, 1 March 2019.
"Despite the current Government's first-year Fees Free policy, university remains an expensive experience for many rural students who do not have the choice of living at home to minimise expenses," says RWNZ Education Portfolio Convenor, Sue Higgins.
"RWNZ is particularly concerned about the low rates of students graduating with agricultural-based degrees and the impact this will have on the development of New Zealand's rural sector."
"By offering our support, RWNZ seeks to make university more accessible to young people living rurally, women and those students over 25 who want to make a difference in their communities," Ms. Higgins says.
Other bursaries and grants offered by RWNZ with deadlines later in the year include the Secondary School Boarding Bursary and the Audrey Reid Grant. The Audrey Reid Grant is designed to help students over 25 years old to focus on subjects that will benefit rural communities, such as midwifery or horticulture.


text:
Babylon's ark : the incredible wartime rescue of the Baghdad zoo
The work Babylon's ark : the incredible wartime rescue of the Baghdad zoo represents a distinct intellectual or artistic creation found in Randwick City Library. This resource is a combination of several types including: Work, Language Material, Books.
The Resource Babylon's ark : the incredible wartime rescue of the Baghdad zoo
the incredible wartime rescue of the Baghdad zoo
Lawrence Anthony with Graham Spence
Babylons ark
trueAnthony, Lawrence
Spence, Graham
trueBaghdad Zoo
Iraq War, 2003
trueBaghdad, Iraq
trueWildlife rescue -- Baghdad, Iraq
trueZoo animals -- Conservation -- Baghdad, Iraq
trueNature Writing -- Animal Studies
Wildlife rescue -- Iraq | Baghdad
trueIraq War, 2003-2011
trueHistory writing -- Wars and conflicts | Iraq War
Zoo animals -- Conservation -- Iraq | Baghdad
trueNature Writing
trueHistory writing
"When the Iraq War began, conservationist Lawrence Anthony could think of only one thing: the fate of the Baghdad zoo, located in the city center and caught in the cross fire. His worst fears were confirmed when he entered Baghdad and discovered that full-scale combat and uncontrolled looting had killed many of the animals of the zoo." "But not all of them. Even during the heat of battle, individual U.S. soldiers had taken the time to help care for the remaining animals, and a few of the zoo's staff had returned to work in spite of the constant firefights. Together, the Americans and Iraqis had managed to keep alive the animals that had survived the invasion." "Babylon's Ark chronicles the zoo's transformation from war-torn chaos to peaceful park, and the heroic efforts of Anthony and others to restore the zoo's inhabitants to health and safety. Along the way, Anthony recounts hair-raising efforts to save a pride of Uday Hussein's lions, close a deplorable black-market zoo, and rescue Saddam Hussein's Arabian horses from a hidden stable in Abu Ghraib." "Anthony's unique ground-level experience makes Babylon's Ark an eye-opening story of how conservationists, soldiers, and civilians put aside their differences and worked together for the sake of the wild animals of Baghdad."--BOOK JACKET
Booklist Editors' Choice: Adult Books for Young Adults, 2007.
Context of Babylon's ark : the incredible wartime rescue of the Baghdad zoo
Babylon's ark : the incredible wartime rescue of the Baghdad zoo, Lawrence Anthony with Graham Spence

 Data from Babylon's ark : the incredible wartime rescue of the Baghdad zoo - Randwick City Library

Data Citation of the Work Babylon's ark : the incredible wartime rescue of the Baghdad zoo
http://link.randwick.nsw.gov.au/resource/Sp5iAbkz04c/
http://library.link/resource/Sp5iAbkz04c/