Abstract:
Technology is disclosed herein for resolving synchronization conflicts. According to at least one embodiment, multiple computing devices in a synchronization group can communicate with a cloud storage service for data synchronization. The cloud storage service determines a ranking list for the synchronization group based on a user input indicating the priority of a new computing device in a ranking list. When two conflicting updates to a data set are received from two computing devices, the cloud storage service determines a winning update from the two conflicting updates based on priorities of the first and second computing devices in a ranking list, and distributes the winning update to the computing devices to override the other conflicting update.
Abstract:
Technology is disclosed herein for optimizing network connections using proxy connections. According to at least one embodiment, a computing device receives requests for network connections with remote servers from multiple computer applications running on the computing device. The computing device further establishes a network connection with a proxy server. The proxy server initiates and maintains proxy network connections with the remote servers. The proxy server can delay at least one network message of the network messages received from the remote servers such that the proxy server sends the network messages to the computing device in a batch. The proxy server batches the network messages such that the computing device stays at a high power consumption state for a time period shorter than an overall time period for which the computing device would stay at the high power consumption if the network messages were sent individually without batching.
Abstract:
Technology is disclosed herein for optimizing data caches among multiple interconnected computing devices. According to at least one embodiment, a storage server transfers a first data set to a computing device. The storage server then identifies a neighbor computing device sharing a local area network (LAN) with the computing device. The neighbor computing device maintains a network connection with the storage server. The storage server transmits a second data set relevant to the first data set to the neighbor computing device. In response to a read request for the second data set from the computing device, the storage server sends to the computing device an instruction indicating that the neighbor computing device is storing a data cache for the computing device.
Abstract:
Some examples include repurposing a mobile device for performing a plurality of nonconventional functions, including a fire detector, a radiation detector, and a Wi-Fi repeater. For example, the mobile device may be configured to serve as a fire detector by one or more modules that may use an onboard camera, microphone, and temperature sensor to monitor an area for fires. In addition, the mobile device may be configured to serve as a radiation detector. For instance, a camera image sensor and/or the memory on the device may be used to detect elevated levels of radiation in the vicinity of the mobile device. In response to detecting a fire and/or radioactivity, the mobile device may send an alert notification to another device. Further, the mobile device may be configured to concurrently serve as a Wi-Fi repeater, such as for extending a range of a wireless router, or the like.
Abstract:
Technology is disclosed herein for optimizing data caches among multiple interconnected computing devices. According to at least one embodiment, a storage server transfers a first data set to a computing device. The storage server then identifies a neighbor computing device sharing a local area network (LAN) with the computing device. The neighbor computing device maintains a network connection with the storage server. The storage server transmits a second data set relevant to the first data set to the neighbor computing device. In response to a read request for the second data set from the computing device, the storage server sends to the computing device an instruction indicating that the neighbor computing device is storing a data cache for the computing device.
Abstract:
Technology is disclosed for providing configurable synchronization mechanisms for automatic synchronization of application states across multiple devices using cloud storage. In accordance with the techniques introduced here, a method includes steps of receiving a request for supplemental application synchronization information associated with a first application on a first remote computing device. In response the request for the supplemental application synchronization information, application-specific configuration information is determined for synchronizing a state of the first application to a cloud-based storage service. The supplemental application synchronization information including the application-specific configuration information is then provided to the first remote computing device for facilitating synchronization of the state of the first application to the cloud-based storage service.
Abstract:
Technology is disclosed herein for client side data encryption with a recovery mechanism. According to at least one embodiment, a computing device encrypts at least one data set into an encrypted data set using a private encryption key. The computing device encrypts the private encryption key using a password provided by a user of the device. The password is also encrypted using the user's answers to password recovery questions. The encrypted data set, the encrypted key and the encrypted password are transmitted to and stored by a server. The computing device can retrieve and decrypt the encrypted data set form the server. The encryption key can be recovered by decrypting the encrypted key using the password. The password can be recovered by decrypting the encrypted password using answers to the password recovery questions provided by the user.
Abstract:
Technology is disclosed for sharing an authentication profile of a user between a group of user devices for accessing an access restricted computing environment (“the technology”). The access restricted computing environment can require the user to input authentication information, such as a username, password, or answers to challenge questions, to authenticate the user. For example, to access a wireless network on a first user device, a user may have to input a password for the wireless network. To access the same wireless network on a second user device, the user may have to input the password again on the second user device. The technology facilitates the user to obtain the authentication information required to access the wireless network from another user device, e.g., a device from which the user has accessed the wireless network previously. This can eliminate the need for the user to manually input the authentication information repeatedly.
Abstract:
Technology for decomposing an application into fragments and streaming the application in fragments is disclosed herein. According to at least one embodiment, a computer-implemented method includes steps of determining multiple application fragments of a computer application, wherein each application fragment of the application fragments includes a code to present at least one interface of the computer application; storing the application fragments at a storage device; generating a resource dependency data structure, wherein for each specific application fragment of the application fragments, the resource dependency data structure includes identifications of resources that are needed for running the specific application fragment; and streaming, via a network component, at least one application fragment of the application fragments to a computing device.
Abstract:
Technology is disclosed herein for data synchronization based on file system activities. According to at least one embodiment, a computing device monitors one or more file system operations for a file stored in the computing device. The computing device records the file system operations for the file sequentially into a log data structure. The computing device synchronizes the file with a server by sending the log data structure to the server. The server can apply the file system operations recorded in the log data to an instance of the file stored in the server such that data of the file stored in the computing device are consistent with data in the instance of the file stored in the server after the file system operations are applied.