US Pat. No. 9,434,108

FABRICATING FULL COLOR THREE-DIMENSIONAL OBJECTS

Microsoft Technology Lice...

1. A method for fabricating full color three-dimensional objects, comprising transforming, via a computing device comprising
three-dimensional printing capabilities, a three-dimensional model into instructions for a fabrication device by:
slicing the three-dimensional model into layers with color information preserved;
generating two-dimensional polygons for each layer based on colors on faces, colors on textures, or gradient colors, or any
combinations thereof, wherein each two-dimensional polygon comprises a single color; and

determining a tool path for fabricating a full color three-dimensional object from colored materials based on the two-dimensional
polygons for each layer, wherein determining the tool path comprises generating instructions that direct the fabrication device
to:

apply colored material for all two-dimensional polygons of a same color before switching colors;
smooth an exterior of the full color three-dimensional object by switching colors at an internal vertex of each two-dimensional
polygon within each layer; and

deposit transitional material within an infill area, a support structure, or an area outside the full color three-dimensional
object, or any combinations thereof, when switching colors.

US Pat. No. 9,471,474

CLOUD DEPLOYMENT INFRASTRUCTURE VALIDATION ENGINE

Microsoft Technology Lice...

1. At a computing device including one or more processors and system memory, a method for validating installed services on
the computing device, the method comprising:
receiving a request for validation of an installed role;
retrieving a manifest for the installed role, wherein the manifest identifies a plurality of validators for the installed
role;

identifying dependencies among two or more of the validators based upon common parameters and role-specific parameters required
for the manifest;

generating a dependency graph based upon the determined dependencies;
executing the one or more validators in an order specified by the dependency graph;
retrieving a diagnoser associated with the installed role; and
executing the diagnoser to identify a source of an installed role failure.

US Pat. No. 9,130,979

SYSTEMS AND METHODS FOR USING VIRTUAL MACHINES TO SEQUENCE NATIVE APPLICATIONS INTO VIRTUAL PACKAGES AND FOR REIMAGING VIRTUAL MACHINES

Microsoft Technology Lice...

8. A computing system for providing virtual applications from a remote based system based on native applications, the computing
system comprising:
one or more processors; and
one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions
that when executed by at least one of the one or more processors cause at least one of the one or more processors to perform
the following:

at a remote based system, receiving a native application from an on-premises system remote from the remote based system;
at the remote based system sequencing the native application into a virtual application with a virtual machine;
providing the virtual application to a system different than the remote based system; and
marking the virtual machine as dirty in such a way as to cause the virtual machine to be reimaged prior to being used for
a subsequent sequencing operation on another virtual application.

US Pat. No. 9,117,094

DATA LOCATION OBFUSCATION

Microsoft Technology Lice...

1. A data location obfuscation system, comprising:
a processor;
a memory accessible to the processor;
a computer program component stored on the memory and executable via the processor; and
a memory management component stored on the memory and executable via the processor that reorders, during execution of the
computer program component, data locations of the computer program component to defend against discernment of data flow patterns,
wherein the memory management component is configured to determine that scrambling is turned on and, based at least in part
on the determination, scramble pointers returned by the memory management component to the program to blur relations between
pointers.

US Pat. No. 9,218,422

PERSONALIZED DEEPLINKS FOR SEARCH RESULTS

Microsoft Technology Lice...

1. One or more computer storage media storing computer-useable instructions that, when used by one or more computing devices,
cause the one or more computing devices to perform a method, the method comprising:
identifying website categories for a plurality of websites;
identifying deeplink pages within the websites and a deeplink page type for each deeplink page;
tracking information for an end user identifying deeplink page types of deeplink pages visited by the end user and website
categories of websites at which the deeplink pages visited by the end user are located;

storing user behavior information for the end user based on the tracked information, the user behavior information mapping
the deeplink page types of the deeplink pages visited by the end user to the website categories of the websites at which the
deeplink pages visited by the end user are located;

receiving a search query from the end user;
identifying a search result web page in response to the search query by querying a search engine index based on the search
query;

identifying a website category of a website at which the search result web page is located;
accessing the user behavior information for the end user;
identifying, from the user behavior information, a deeplink page type of one or more deeplink pages previously visited by
the end user at one or more other websites within the website category of the website at which the search result web page
is located;

identifying a first deeplink page within the website at which the search result web page is located corresponding with the
deeplink page type of the one or more deeplink pages previously visited by the end user at the one or more other websites
within the website category of the website at which the search result web page is located;

generating a search result for the search result web page to include a deeplink to the first deeplink page within the website
at which the search result web page is located; and

providing the search result for presentation to the end user.

US Pat. No. 9,508,385

AUDIO-VISUAL PROJECT GENERATOR

MICROSOFT TECHNOLOGY LICE...

1. A computing system that enables a user to generate an audio-visual project, comprising:
memory that stores
template data that predefines a plurality of templates;
effects data that predefines a plurality of effects; and
skin data that predefines a plurality of skins each of which can be applied to specific ones of the templates;
wherein each of the templates specifies how many segments are included in the project if the template is selected to generate
the project;

wherein each of the effects specifies properties of a said segment, if the effect is applied to the segment, including how
many video slots are included in the segment and how many audio slots are included in the segment; and

wherein each of the skins specifies, on a segment by segment basis, which ones of the effects are applied to which ones of
the segments specified by a said template if the skin is applied to the template;

a user interface configured to accept from the user
a selection of one of the plurality of templates;
a separate selection or recording of a video clip to populate each separate video slot included in each segment of the project;
and

a separate selection or recording of a separate audio clip to populate each separate audio slot included in each segment of
the project; and

one or more processors configured to generate and store on one or more processor readable storage devices, an audio-video
project file that is based on the how many segments are specified by the selected template, the video clips that populate
the video slots, the audio clips that populate the audio slots, and one or more other properties of each said effect that
is applied to each said segment of the project;

wherein the one or more other properties of each said effect comprises at least one of an intro, an outro, static graphics,
moving graphics, a transition, an opacity, a background, a foreground, a border, a cut-scene video or a post processing procedure.

US Pat. No. 9,247,495

POWER SAVING WI-FI TETHERING

Microsoft Technology Lice...

1. A method comprising:
monitoring, during a normal operational mode, communications by a Wi-Fi network interface of a Wi-Fi tethering device to identify
an idle interval where no data packets are exchanged between the Wi-Fi tethering device and a Wi-Fi client device using the
Wi-Fi network interface;

determining, at the Wi-Fi tethering device, that the idle interval has reached or exceeded a pre-defined amount of time;
determining, at the Wi-Fi tethering device, whether the Wi-Fi client device is in a content fetching phase or a content consuming
phase;

determining, at the Wi-Fi tethering device, a sleep duration interval based on whether the Wi-Fi client device is determined
to be in the content fetching phase or the content consuming phase; and

switching the Wi-Fi network interface of the Wi-Fi tethering device from the normal operational mode to a sleep mode for the
sleep duration interval, the Wi-Fi tethering device using less power while operating in the sleep mode than while operating
in the normal operational mode.

US Pat. No. 9,239,708

CONTEXTUALLY INTELLIGENT CODE EDITING

Microsoft Technology Lice...

1. A system comprising:
one or more processors; and
one or more computer readable media storing computer executable instructions that are executable by the one or more processors
to cause the one or more processors to perform operations including:

transmitting to a remote resource a first code editing input that is input to a local code editing environment, the remote
resource being a web server;

receiving from the remote resource and based on the first code editing input, one or more code editing options that are contextually
valid in the local code editing environment;

receiving a second code editing input as an addition to the first code editing input to the local code editing environment;
transmitting to the remote resource an indication of a difference between the first code editing input and the second code
editing input without re-transmitting the first code editing input;

receiving, from the remote resource and based on the indication of the difference between the first code editing input and
the second code editing input, one or more additional code editing options being contextually valid in the local code editing
environment;

providing an indicator associated with an additional code editing option of the one or more additional code editing options
that indicates a number of multiple different versions of the additional code editing option;

responsive to selection of the additional code editing option, initiating a display of a user interface instrumentality configured
to enable navigation between the multiple different versions of the additional code editing option;

receiving a selection of one of the multiple different versions of the additional code editing option; and
causing the selected one of the multiple different versions of the additional code editing option to be populated to the local
code editing environment.

US Pat. No. 9,208,566

SPECKLE SENSING FOR MOTION TRACKING

Microsoft Technology Lice...

1. A method of tracking 3D position of an object in a real-world environment comprising:
receiving, from at least one image capture device, a plurality of images of at least one speckle pattern from at least one
coherent light source and at least one structured light source illuminating the object;

computing an estimate of 3D position of the object using at least the plurality of images based on speckle pattern;
receiving, at a processor, information about an orientation and/or a position of the object, from at least one structured
light source;

combining the estimate of 3D position of the object with the received information.

US Pat. No. 9,348,505

DYNAMIC IMAGE PRESENTATION

Microsoft Technology Lice...

1. A method, implemented at least in part via a processing unit, comprising:
responsive to receiving a zoom indication in association with a first arrangement of images, creating a second arrangement
of images by at least one of filling an image from a second display line into a first display line if a size of the image
is not greater than an amount of display space remaining in the first display line after receiving the zoom indication or
filling the image from the first display line into the second display line if the size of the image is greater than the amount
of display space remaining in the first display line after receiving the zoom indication, the zoom indication corresponding
to a scale factor that is a non-linear function described by

where x corresponds to a combination of a first scale distance between a first finger and a second finger and a second scale
distance between the first finger and the second finger, the first scale distance and the second scale distance corresponding
to a pinch gesture.

US Pat. No. 9,176,214

PROXIMITY DETECTION FOR SHARED COMPUTING EXPERIENCES

MICROSOFT TECHNOLOGY LICE...

1. A method of using device proximity to provide a shared computing experience, comprising:
receiving, at a receiving computing device, received audio broadcast from a broadcasting computing device as a broadcast invitation;
joining a shared computing experience that provides for inter-device interaction via a non-audio communicative link with the
broadcast computing device in response to verifying the broadcast invitation based on a spatial orientation of the receiving
computing device relative to the broadcasting computing device, where the shared computing experience is not joined if the
broadcast invitation is not verified and where the non-audio communicative link is established via at least one of a wired
network connection and a Wi-Fi connection;

retrieving historical data pertaining to prior interactions between the broadcasting computing device and the receiving computing
device during the shared computing experience; and

controlling the shared computing experience based on the historical data pertaining to the prior interactions.

US Pat. No. 9,189,446

IMMUTABLE SHARABLE ZERO-COPY DATA AND STREAMING

Microsoft Technology Lice...

1. A method for sharing data between multiple computing entities, the method performed by executing computer-executable instructions
upon one or more computer processors, the method comprising:
executing computer-executable instructions upon one or more computer processors for performing:
an act of populating a buffer with data;
an act of classifying the buffer as an immutable buffer, wherein the classification protects the data populated within the
immutable buffer from changing during the lifetime of the immutable buffer, and also protects the immutable buffer from having
its physical address changed during the lifetime of the immutable buffer;

an act of granting a first view of the immutable buffer to a first computing entity; and
an act of granting a second view of the immutable buffer to a second computing entity, wherein the second view is different
than the first view.

US Pat. No. 9,277,004

PREDICTION OF NETWORK PATH QUALITY AMONG PEER NETWORKING DEVICES

Microsoft Technology Lice...

1. A system that facilitates connectivity within a peer-to-peer networking environment, comprising:
one or more processors;
one or more computer-readable storage devices with instructions stored thereon that, when executed by the one or more processors,
cause the one or more processors to perform operations comprising:

receiving, from a client, a request to connect with a host for peer-to-peer networking, the request comprising a game account
associated with the client and defining connectivity criteria with the host;

verifying the client based in part on the game account and generating a list that includes a plurality of hosts that match
the request from the client;

determining an estimation of network path quality (NPQ) by a predictor, the predictor is at least one of an Internet Protocol
(IP) history predictor, a prefix history predictor, or a geography predictor;

reducing the list by removing at least one matched host from the list based upon the estimation of the NPQ by the predictor;
determining, based on the estimation of the NPQ by the predictor, a probing technique to employ for probing for the client
and at least one other matched host in the list, wherein the probing technique comprises at least one probing operation between
the client and the at least one other matched host from the reduced list, wherein the probing technique is at least one of
the following: standard probing and limited probing; and

implementing a probing for the client and the at least one other matched host from the reduced list based on the determined
probing technique.

US Pat. No. 9,277,032

ERROR CONTROL CODING FOR NONCONTIGUOUS CHANNEL AGGREGATION

Microsoft Technology Lice...

1. In a computing environment, a method performed at least in part on at least one processor comprising:
aggregating a plurality of channels for use in communication between communication devices, the plurality of channels including
at least two channels of unequal bandwidths; and

partitioning a data stream into a plurality of partitioned data streams corresponding to the plurality of channels, the partitioning
being based upon bandwidth data corresponding to the plurality of channels, the partitioning further comprising:

puncturing the data stream with:
a first puncture vector into a first partitioned data stream corresponding to data remaining after the puncturing, the first
puncture vector being selected based upon at least part of the bandwidth data; and

a second partitioned data stream corresponding to data removed from the data stream by the puncturing; and
puncturing the second partitioned data stream with:
a second puncture vector into a third partitioned data stream corresponding to data remaining after the puncturing with the
second puncture vector; and

a fourth partitioned data stream corresponding to data removed from the second partitioned data stream by the puncturing with
the second puncture vector.

US Pat. No. 9,092,266

SCALABLE SCHEDULING FOR DISTRIBUTED DATA PROCESSING

Microsoft Technology Lice...

1. One or more computer-readable memory comprising computer-executable instructions for assigning processing resources, the
computer-executable instructions performing steps comprising:
receiving requests for the processing resources from one or more jobs, each job comprising one or more processes to be executed
by the processing resources;

generating a flow graph comprising a source, a sink, resource nodes for each of the processing resources, job nodes for each
of the one or more jobs and process nodes for each of the one or more processes;

generating at least one aggregated request from at least some of the received requests;
transmitting the at least one aggregated request;
receiving, in response to the transmitting, an assignment of at least some of the processing resources;
generating edges in the flow graph to the sink from only the resource nodes representing the assigned processing resources;
solving the flow graph; and
assigning the processing resources to the one or more jobs in accordance with the flow graph solution.

US Pat. No. 9,218,630

IDENTIFYING INFLUENTIAL USERS OF A SOCIAL NETWORKING SERVICE

Microsoft Technology Lice...

1. A method of analyzing a community of social networking service users to identify one or more influential users within the
community, the social networking service providing a platform enabling a user within the community to communicate with at
least one of a plurality of other users within the community, the method comprising:
by a computing device:
acquiring a dataset representing the community of users;
determining a contribution to a first user within the community by at least one second user of the plurality of other users
within the community, the contribution by the at least one second user being defined at least in part by the following: at
least a first affirmative step having been taken by the at least one second user with respect to repeating a communication
by the first user received by the at least one second user, wherein the communication by the first user is also received by
at least another user of the plurality of other users;

calculating an influence score for the first user based at least in part on the following: a total number of users within
the community and a number of users of the plurality of other users that have taken at least a second affirmative step with
respect to repeating the communication by the first user, the at least first affirmative step being different than the at
least second affirmative step; and

revising the dataset based at least in part on the calculated influence score.

US Pat. No. 9,264,232

CRYPTOGRAPHIC DEVICE THAT BINDS AN ADDITIONAL AUTHENTICATION FACTOR TO MULTIPLE IDENTITIES

Microsoft Technology Lice...

1. A computing system comprising:
one or more hardware processors; and
computer storage memory containing executable instructions which, when executed by the one or more hardware processors, cause
the computing system to bind a security artifact to one or more user accounts in a manner that permits the security artifact
to be used for authentication with any of several service providers for the user accounts without compromising security between
the security artifact and any of said several service providers, and wherein the computing system is configured by the executable
instructions to perform the following process:

access a first pseudonym for a security artifact comprising at least one of a cryptographic hardware device or a software
module, the first pseudonym providing an authentication factor that is reusable across accounts used at any of several different
service providers to authenticate to the different service providers;

provide the first pseudonym for the security artifact to a first service provider, the first pseudonym for the security artifact
being bound with a user account at the first service provider in order to uniquely identify the security artifact to the first
service provider over any other service provider;

access a second pseudonym, different than the first pseudonym, for the same security artifact accessed by the first pseudonym,
the second pseudonym comprising an identifier of the same security artifact to a second service provider, different than the
first service provider; and

provide the second pseudonym for the security artifact to a second service provider, the second pseudonym for the security
artifact being bound with a user account at the second service provider in order to uniquely identify the same security artifact
to the second service provider over any other service provider, the first and second pseudonyms thereby permitting use of
the same security artifact at the first and second service providers but without compromising security between the first and
second service providers.

US Pat. No. 9,218,333

CONTEXT SENSITIVE AUTO-CORRECTION

MICROSOFT TECHNOLOGY LICE...

1. An electronic device, comprising:
a display component capable of at least displaying textual characters;
a text input module that receives text provided by a user to the electronic device, and provides the received text to the
display component for display in a user interface; and

an auto-correct module configured to:
determine that the received text switches from a first language to a second language based on usage information;
based on determining that the usage information is representative of a first usage context of the electronic device, automatically
switch from a previously-selected first auto-correct dictionary corresponding to the first language to a second auto-correct
dictionary corresponding to the second language selected from a plurality of auto-correct dictionaries, and automatically
correct the displayed text according to the second auto-correct dictionary, the second language being different from the first
language; and

based on determining that the usage information is representative of a second usage context of the electronic device, automatically
switch off one or more particular auto-correct terms from the previously-selected first auto-correct dictionary, and automatically
correct the displayed text according to the previously-selected first auto-correct dictionary having the one or more particular
auto-correct terms switched off.

US Pat. No. 9,264,807

MULTICHANNEL ACOUSTIC ECHO REDUCTION

Microsoft Technology Lice...

1. A method executed by a processor of a computing device, the method comprising:
transmitting a first calibration signal to a first speaker, the first calibration signal causing the first speaker to generate
first output;

transmitting a second calibration signal to a second speaker subsequent to transmitting the first calibration signal to the
first speaker, the second signal causing the second speaker to generate second output;

receiving a first microphone signal from a first microphone, the first microphone signal corresponding to the first output
from the first speaker;

receiving a second microphone signal from the first microphone, the second microphone signal corresponding to the second output
from the second speaker;

computing a first coefficient of a first fixed filter for the first microphone based upon the first calibration signal and
the first microphone signal;

computing a second coefficient of a second fixed filter for the first microphone based upon the second calibration signal
and the second microphone signal; and

subsequent to computing the first coefficient of the first fixed filter and the second coefficient of the second fixed filter,
applying the first fixed filter and the second fixed filter to an acoustic signal captured by the first microphone.

US Pat. No. 9,098,488

TRANSLATION OF MULTILINGUAL EMBEDDED PHRASES

Microsoft Technology Lice...

1. A system that includes at least one hardware device processor, the system comprising:
a multilingual translator engine that includes:
a receiving engine configured to receive a communication object including a plurality of object words arranged in sequence;
a language determination engine configured to determine a first natural language and at least one embedded natural language
different from the first natural language associated with the communication object, based on at least one first language word
phrase associated with the first natural language and at least one embedded word phrase associated with the embedded natural
language that are included in the plurality of object words;

a translation length determination engine configured to determine a length of a candidate translation of a group of the object
words; and

an embedded phrase translator engine configured to translate, via a translating device processor, the at least one embedded
word phrase to a target natural language, based on at least one context associated with the communication object, and based
on the length of the candidate translation of the group of the object words.

US Pat. No. 9,295,016

COOPERATIVE PHASE TRACKING IN DISTRIBUTED MULTIPLE-INPUT MULTIPLE-OUTPUT SYSTEM

Microsoft Technology Lice...

1. A device comprising:
one or more processors;
memory storing executable instructions that, when executed by the one or more processors, cause the one or more processors
to perform acts comprising:

monitoring phase drifts of symbols that are sent from one or more access points of a cluster of access points; and
sending feedback related to the phase drifts of the symbols to the one or more access points of the cluster, the feedback
related to the phase drifts of the symbols being dynamically updated to maintain a phase alignment between the one or more
access points of the cluster.

US Pat. No. 9,229,696

COMMON INTERMEDIATE REPRESENTATION FOR DATA SCRIPTING LANGUAGE

Microsoft Technology Lice...

1. A computer-implemented method for defining declarative code in an intermediate machine readable representation, including:
specifying a plurality of programming constructs of a declarative programming language, wherein the declarative programming
language adheres to an order independent execution model that facilitates entering values into a data abstraction of the order
independent execution model in an order unobservable to a target repository, and wherein the specifying further includes specifying
state information about at least one programming construct of the plurality of programming constructs; and

generating a machine readable intermediate language representation of the declarative programming language, wherein data representing
the declarative programming language according to the intermediate language representation can be stored in any of a plurality
of underlying storage abstractions, and wherein the generating includes representing the state information as at least one
attached property, wherein the generating includes representing type checking data in the at least one abstract syntax tree
structure as at least one other attached property, the type checking data used to confirm validity of a particular programming
construct, wherein the generating includes versioning at least one node of a pre-existing abstract syntax tree structure.

US Pat. No. 9,219,673

CRISSCROSS CANCELLATION PROTOCOL

MICROSOFT TECHNOLOGY LICE...

1. A method performed on a computing device that includes at least one processor, memory, and a communications component,
the method comprising:
receiving, by the computing device via the communications component, a message that comprises a set of variables configured
for use in detecting a message race condition in a communications session between the computing device and a remote computing
device, the set of variables including:

a nonce state variable that comprises a value that identifies the communications session according to the computing device,
a counter state variable that comprises a value that indicates a last message sent by the computing device to the remote computing
device,

a remote nonce state variable that comprises a value that identifies the communications session according to the remote computing
device as known by the computing device, and

a remote counter state variable that comprises a value that indicates a last valid message received by the computing device
from the remote computing device.

US Pat. No. 9,207,914

EXECUTION GUARDS IN DYNAMIC PROGRAMMING

Microsoft Technology Lice...

1. A processor-implemented method for executing a machine code based on a dynamic language, including:
creating a guard as a value stored in a data structure and representative of an expected condition for a reusable portion
of the machine code with the processor;

comparing the value representative of the expected condition to an actual value encountered later during execution of a portion
of the machine code;

executing the machine code if the actual value corresponds with the value representative of the expected condition; and
invalidating the guard if the expected condition changes as a result of executing the machine code.

US Pat. No. 9,137,111

DISCOVERING, VALIDATING, AND CONFIGURING HARDWARE-INVENTORY COMPONENTS

Microsoft Technology Lice...

1. One or more computer-readable storage devices having computer-executable instructions embodied thereon that, when executed,
perform a method for discovering, configuring, and validating an inventory of hardware, the method comprising:
establishing communication from a user device to the hardware inventory, wherein the hardware inventory includes a plurality
of internal devices that are interconnected via network communication channels and out-of-band communication channels;

selecting at least one of the plurality of internal devices for conducting a discovery process thereon, wherein the discovery
process comprises:

(a) listening for a signal from an expected out-of-band port predetermined to be associated with the at least one selected
device;

(b) receiving a first network identifier via an out-of-band communication channel coupled with the expected out-of-band port;
(c) listening for a signal from an expected network port predetermined to be associated with the at least one selected device;
and

(d) receiving a second network identifier via a network communication channel coupled with the expected network port;
comparing the first network identifier that is received from the out-of-band communication channel against the second network
identifier that is received from the network communication channel in order to verify the at least one selected device is
properly interconnected;

determining that the at least one selected device is properly interconnected when the first network identifier and second
network identifiers match;

validating the interconnection of the at least one selected device; and
otherwise, determining that the at least one selected device is not properly interconnected when the first network identifier
and second network identifiers do not match; and

initiating one or more remedial measures with respect to the at least one selected device.

US Pat. No. 9,276,866

TUNING CONGESTION NOTIFICATION FOR DATA CENTER NETWORKS

Microsoft Technology Lice...

1. A system comprising:
one or more processors;
a memory coupled to the one or more processors to store:
a congestion detection module configured to:
determine a current queue length at an intermediate node of one or more data center networks;
a threshold module configured to:
set a threshold value for the current queue length by determining an upper bound and a lower bound;
a congestion notification module configured to mark a packet comprising application data, the packet having a predetermined
size with a maximum transmit unit (MTU) to indicate possible congestion in the one or more data center networks when the current
queue length exceeds the threshold value, wherein the congestion notification module comprises a de-queue marking module configured
to mark the packet when the packet is being de-queued, wherein the packet is de-queued prior to transmission of the packet;
and

a flexible initial packet size (FIPS) module configured to probe the network with a plurality of small packets comprising
the application data, the plurality of small packets having a smaller payload size than the packet having the predetermined
size.

US Pat. No. 9,229,949

EXTENSIBLE AND GENERIC FRAMEWORK FOR MANAGING RESOURCES FOR DATA WAREHOUSING LOADS

Microsoft Technology Lice...

1. A method for managing resources implemented in at least one computing device, comprising:
receiving a request for a plurality of resources from a requester;
generating a ticket for the request that indicates the plurality of resources;
assigning a default priority for the ticket based on a determination that the request does not include a priority indication,
the default priority being a priority that is greater than a low priority and less than a high priority;

for at least one resource of the plurality of resources, querying a resource provider of a plurality of resource providers
for the at least one resource to determine whether the at least one resource can be acquired;

queuing the ticket in a queue if any of the resources cannot be acquired;
instructing each resource provider to release any resources that were locked during said querying if a resource provider indicates
that a resource cannot be acquired during said querying; and

granting the ticket if all of the resources can be acquired.

US Pat. No. 9,585,189

REJECTING OR ACCEPTING A PHONE CALL USING A LAG TIME

Microsoft Technology Lice...

1. A device comprising:
a processor; and
a storage comprising a set of instructions, wherein the set of instructions, when executed by the processor, causes the device
to:

in response to a received incoming phone call, present at a user interface of the device a first option of the call and a
second option of the call;

in response to a first selection between the first option and the second option, initiate a lag time of pre-determined length
before performing the first selection; and

in response to a second selection between the first option and the second option before the lag time has ended, perform the
second selection.

US Pat. No. 9,538,189

SKIP MACROBLOCK CODING

Microsoft Technology Lice...

1. One or more computer-readable media storing computer-executable instructions for causing a computing system, when programmed
thereby, to perform operations, wherein the one or more computer-readable media are selected from the group consisting of
volatile memory, non-volatile memory, magnetic disk, CD-ROM, and DVD, the operations comprising:
encoding multiple video frames of a video sequence to produce encoded data, including determining a mode for signaling of
binary information for multiple blocks from among multiple available modes for signaling of the binary information; and

outputting the encoded data in a bitstream, wherein the bitstream includes the binary information for the multiple blocks,
and wherein:

for a first mode of the multiple available modes, the binary information is signaled at a layer higher than block layer of
bitstream syntax for the multiple blocks collectively, the binary information signaled at the layer higher than block layer
indicating that the bitstream lacks coefficient data for prediction residuals for the multiple blocks; and

for a second mode of the multiple available modes, the binary information is signaled at the block layer of bitstream syntax
as a binary value per given block of the multiple blocks, the binary value per given block indicating whether the bitstream
includes coefficient data for prediction residuals for the given block.

US Pat. No. 9,171,314

CLOUD BASED MANAGEMENT OF AN IN-STORE DEVICE EXPERIENCE

Microsoft Technology Lice...

1. A method of remotely managing a consumer experience in a retail store, the method comprising:
binding a plurality of demonstration devices to a retailer corresponding to a chain of retail stores, wherein the plurality
of demonstration devices are located in a plurality of non-virtual retail stores belonging to the chain of retail stores;

receiving demonstration device information that describes device hardware and software characteristics for each device in
a plurality of demonstration devices;

receiving a user-experience profile that specifies at least one device characteristic and a group of applications to be installed
on each device in the plurality of demonstration devices that has the at least one device characteristic, wherein the group
of applications to be installed is selected based on matching the at least one device characteristic specified by the user-experience
profile with the demonstration device information and provides a consistent consumer experience across the plurality of non-virtual
retail stores belonging to the chain of retail stores with regard to each device that has the at least one device characteristic;
and

communicating the group of applications to each device within the plurality of demonstration devices that conforms to the
user-experience profile to provide a consistent consumer experience on each device within the plurality of demonstration devices
located in the plurality of non-virtual stores.

US Pat. No. 9,552,557

VISUAL REPRESENTATION OF CHART SCALING

Microsoft Technology Lice...

1. One or more computer-readable storage media having instructions stored thereon that, responsive to execution by a computing
device, cause the computing device to perform operations comprising:
detecting a change in data values for a resource automatically;
rescaling a chart that is configured to track the data values for the resource to a different scale in response to said detecting,
said different scale being one of a preset number of scales defined for the resource, the chart comprising scale lines that
correspond to different scales; and

repositioning, in response to said rescaling, a scale mark from one scale line to a different scale line to visually represent
a transition to the different scale within a portion of the chart in which the data values for the resource are indicated
to a different position for the different scale to visually represent the different scale, the scale mark including a data
value that corresponds to the different position relative to data values of the different scale, and being positioned separate
from a border of the chart.

US Pat. No. 9,092,517

GENERATING SYNONYMS BASED ON QUERY LOG DATA

Microsoft Technology Lice...

1. A method performed by at least one computing device, the method comprising:
receiving an input information item;
identifying a set of page items that are returned when the input information item is used in a first query to at least one
search module;

identifying one or more second queries, other than the first query, that have also been submitted to the at least one search
module by users that accessed individual page items from the set of page items, wherein the one or more second queries are
identified using query log data reflecting associations between the one or more second queries and the individual page items
accessed by the users;

providing a set of initial synonym candidates that were previously submitted to the at least one search module in the one
or more second queries by the users that accessed the individual page items from the set of page items;

removing noise from the set of initial synonym candidates, when the noise is present and can be identified, to obtain a set
of filtered synonym candidates;

reducing the set of filtered synonym candidates to a set of selected synonyms that are deemed appropriate proxies for the
input information item by:

obtaining metric factor values associated with the set of filtered synonym candidates, and
applying a threshold to the metric factor values to select the set of selected synonyms from the set of filtered synonym candidates;
and

outputting synonym-expanded data that is formed based on the reducing.

US Pat. No. 9,613,261

INFERRING SPATIAL OBJECT DESCRIPTIONS FROM SPATIAL GESTURES

Microsoft Technology Lice...

1. A system comprising:
at least one device processor; and
a machine readable storage device storing executable instructions that, when executed, cause the at least one device processor
to:

receive, from one or more cameras, three-dimensional (3-D) spatial image data associated with at least one arm motion of an
actor based on free-form movements of at least one hand of the actor, based on natural gesture motions of the at least one
hand;

determine a plurality of sequential 3-D spatial representations that each include 3-D spatial map data corresponding to a
3-D posture and position of the at least one hand at sequential instances of time during the free-form movements, based on
the received 3-D spatial image data; and

generate an integrated 3-D model based on incrementally aggregating the 3-D spatial map data included in the determined sequential
3-D spatial representations and comparing a threshold time value with model time values indicating numbers of instances of
time spent by the at least one hand occupying a plurality of 3-D spatial regions during the free-form movements.

US Pat. No. 9,270,700

SECURITY PROTOCOLS FOR MOBILE OPERATOR NETWORKS

Microsoft Technology Lice...

1. A method implemented by a computer device at a media content provider, the method comprising:
establishing a mobile communication link with a mobile device via a communication service provider with which the mobile device
is registered for mobile communications, and via at least one roaming node network with which the communication service provider
has a roaming service agreement;

receiving a security policy request from the mobile device to establish a security policy for end-to-end security of the mobile
communication link between the media content provider and the mobile device for data communication security;

communicating a security policy response to the mobile device to establish the security policy for the end-to-end security
of the mobile communication link;

communicating a challenge to the mobile device via the mobile communication link that is secure based on the security policy,
the mobile communication link including the roaming node network and a mobile operator network that is managed by the communication
service provider; and

receiving the challenge back from the mobile device via the mobile operator network and the communication service provider,
the challenge including data added by the communication service provider, the added data comprising a billing identifier that
is associated with the mobile device, the billing identifier being securely received from the communication service provider
via the mobile communication link.

US Pat. No. 9,386,105

TECHNIQUES FOR DYNAMIC DOMAIN-BASED ISOLATION

MICROSOFT TECHNOLOGY LICE...

1. An apparatus, comprising:
a logic device;
a receiving component operative on the logic device to receive, at a host web server from a client, a request for a web application
hosted by the host web server at a uniform resource locator, the uniform resource locator having a domain separate from a
domain of the host web server dynamically assigned to the web application during installation of the web application wherein
the domain name includes a user-specific identifier which uniquely identifies a user and an application identifier;

an application identification component operative at the host web server to determine which hosted web application of a plurality
of hosted web applications corresponds to the requested web application on the basis of the uniform resource locator; and

a domain generator component operative on the logic device to generate and dynamically assign the uniform resource locator
to the web application during installation of the web application; and

a security component operative on the logic device to determine a set of security permissions for the web application, the
security component operative to apply the security permissions to the received request.

US Pat. No. 9,274,700

SUPPORTING DIFFERENT EVENT MODELS USING A SINGLE INPUT SOURCE

Microsoft Technology Lice...

1. A method comprising:
receiving configuration information to not recognize one or more gestures;
receiving a sequence of inputs of a first input type that collectively define a gesture;
generating individual messages associated with individual inputs of the sequence of inputs of the first input type;
mapping, on a per input basis and without waiting for resolution of the sequence of inputs to the gesture, the individual
inputs of the first input type to a second input type to generate individual messages associated with the second input type
that are different from the first input type; and

forming an interleaved message stream that includes both the individual messages associated with the first input type and
the individual messages associated with the second input type interleaved together.

US Pat. No. 9,116,550

DEVICE KICKSTAND

Microsoft Technology Lice...

1. An apparatus comprising:
a kickstand configured to be rotatably attached to a rear portion of a computing device; and
at least one hinge that attaches a portion of the kickstand to the rear portion of the computing device to enable rotation
of the kickstand relative to the computing device, the hinge including a moveable component attached to the kickstand and
that is moveable during movement of the kickstand relative to the rear portion of the computing device, the hinge having a
center of rotation that is external to the moveable component, and the hinge configured such that the center of rotation coincides
with a seam between abutting edges of the kickstand and the computing device, and a width of the seam is substantially constant
when the kickstand is moved relative to the rear portion of the computing device.

US Pat. No. 9,263,002

APPLICATION AND USER INTERFACE FRAMEWORK INTERACTION

Microsoft Technology Lice...

1. A computer program product comprising one or more computer storage media having thereon computer-executable instructions
that are structured such that, when executed by one or more processors of a computing system, cause an application to perform
a method for interfacing with a user interface framework and a graphics module to render a portion of an application surface,
the method comprising:
an act of the application requesting a ranged surface from the user interface framework, the ranged surface corresponding
to a particular range of the application surface;

an act of the application receiving the requested ranged surface from the user interface framework, the ranged surface being
a blank canvas that is not yet populated with any image data or application elements;

an act of the application instructing the graphics module to populate the ranged surface by drawing into the ranged surface;
an act of the application receiving the drawn ranged surface from the graphics module, the drawn ranged surface being populated
by image information but not yet having interactivity exposed;

an act of the application instructing the user interface framework to compose the ranged surface using the drawn ranged surface
and other information available to the user interface framework to produce a composed surface which integrates the drawn ranged
surface with the other information available to the user interface framework and has interactivity applied to at least one
element of the composed surface.

US Pat. No. 9,059,856

PROVIDING SECURITY SERVICES ON THE CLOUD

Microsoft Technology Lice...

1. In a computer networking environment that includes a cloud computing environment accessed by plurality of computing systems
and at least one publisher computer system, a computer program product comprising at least one storage device having stored
computer-executable instructions which, when executed by one or more processors perform a computer-implemented method which,
when implemented by the publisher computer system, provides secure storage for a selected software package in the cloud computing
environment, the computer-implemented method comprising acts of:
generating at the publisher computing system a hash for a selected software package;
sending from the publisher computing system a signing request that includes the hash of the selected software package, the
signing request being sent to a keying and signing service located at the cloud computing environment and the signing request
requesting that the selected software package be signed;

receiving at the publisher computing system the digitally signed hash signed with a public key from a public/private key pair
generated for the selected software package of the publisher computing system at the keying and signing service;

attaching the digitally signed hash to the selected software package at the publisher computing system;
the publisher computing system encrypting the selected software package with a symmetric key; and
sending from the publisher computing system the symmetric key to the keying and signing service at the cloud computing environment,
wherein the symmetric key is encrypted and stored at a secure data store of the cloud computing environment with an encrypted
version of the private key from said public/private key pair generated for the selected software package.

US Pat. No. 9,256,654

DYNAMIC SCHEMA CONTENT SERVER

Microsoft Technology Lice...

1. A method comprising:
automatically generating in a content server, without human intervention, a new object type described in a first XML file,
the first XML file comprising information pertaining to game software development regarding a plurality of client devices,
the automatic generating comprising:

converting the first XML file into a user type graph;
converting the user type graph into a type graph abstraction, the type graph abstraction permitting executing of two object
type generation processes in parallel, each of the two object type generation processes useable for generating the new object
type for inclusion in the game, the executing in parallel comprising:

executing a first process comprising:
generating from the type graph abstraction at least one structured query language (SQL) table and at least one procedure definition;
executing the at least one SQL table and the at least one procedure definition for generating the new object type; and
storing the new object type in a database of the content server;
executing a second process in parallel with the first process, the second process comprising generating from the type graph
abstraction, at least one client-side application programming interface (API) that allows access of the new object type stored
in the database, wherein the access is executable via a web method procedure;

automatically creating a library of information comprising the at least one client-side API; and
updating a software development kit (SDK) by inserting the library of information into the SDK.

US Pat. No. 9,256,982

MEDICAL IMAGE RENDERING

Microsoft Technology Lice...

1. A computer-implemented method comprising:
at an input receiving at least one estimated organ center obtained from a medical image, the medical image being obtained
from an imaging device, each estimated organ center having an associated organ classification label;

using a user interface to display an organ name for each estimated organ center;
at the user interface, receiving user input specifying at least one of the organ names;
arranging a visualization engine to select a transfer function according to the specified organ name;
arranging the visualization engine to select a camera location according to the estimated organ center of the specified organ
name;

arranging the visualization engine to select a clipping plane based on maximizing a surface area of a structure of interest
in a two-dimensional image, the clipping plane being a cross-section of the medical image;

using a rendering engine to render the two-dimensional image from the medical image using the selected camera location and
transfer function; and

using the user interface to display the two-dimensional image such that a foreground region associated with the specified
organ name is visualized.

US Pat. No. 9,229,227

SEE-THROUGH NEAR-EYE DISPLAY GLASSES WITH A LIGHT TRANSMISSIVE WEDGE SHAPED ILLUMINATION SYSTEM

MICROSOFT TECHNOLOGY LICE...

1. An optical assembly, comprising:
a wedge optic including an input edge, an angled surface adjacent the input edge, and an unangled surface adjacent the input
edge and opposite the angled surface; and

an LED lighting system optically coupled to the input edge;
wherein unmodulated light from the LED lighting system enters the wedge optic through the input edge;
wherein the angled surface reflects the unmodulated light out of the unangled surface to uniformly irradiate a reflective
image display to produce an image of modulated light that is reflected back through the unangled surface and the angled surface
to transfer optics.

US Pat. No. 9,116,770

RECIPE-BASED APPLICATION CONVERSION

Microsoft Technology Lice...

1. A method comprising:
obtaining an installation package associated with an application;
analyzing, by a computing device, installation of the application in a first type of system based at least in part on the
installation package;

identifying a first set of changes made to the first type of system resulting from installation of the application in the
first type of system, wherein the first set of changes includes a list of files installed, the folder or directory where the
files are written, and values of system settings;

identifying differences in manners of operation between the first type of system and a second type of system, wherein the
identifying of differences includes comparing respective rules particular to both the first type of system and the second
type of system regarding in which folders and directories files are stored, and the known values of system settings associated
with each respective type of system;

identifying, based on the first set of changes and the differences between the first type of system and the second type of
system including the differences in rules regarding in which folders and directories files are stored and differences in the
values of system settings between the first type of system and the second type of system, a second set of changes that would
be made to the second type of system should the application be installed in the second type of system;

generating a recipe for installing the application in the second type of system, the generating the recipe based at least
in part on the obtained installation package, the recipe identifying the second set of changes wherein generating the recipe
comprises:

copying the installation package,
implementing acts of modifying the locations of files identified in the installation package to locations acceptable for the
second type of system based on the differences in rules between the two types of systems, and

implementing acts of modifying the value of system settings to acceptable known values for the second type of system based
on the differences in rules between the two types of systems; and

generating a new installation package for installing the application in the second type of system by storing the recipe within
the new installation package.

US Pat. No. 9,545,030

FLEXIBLE THERMAL CONDUIT FOR AN ELECTRONIC DEVICE

Microsoft Technology Lice...

1. An electronic device comprising:
a first housing portion containing an electronic component that generates heat during operation;
a second housing portion, flexibly coupled via a hinge to the first housing portion, the second housing portion containing
a heat dissipation structure; and

a multi-layer flexible thermal conduit that passes from the first housing portion to the second housing portion, to convey
heat generated by the electronic component to the heat dissipation structure,

wherein the multi-layer flexible thermal conduit comprises a plurality of flexible thermally conductive layers,
a major surface of each layer of the plurality of flexible thermally conductive layers is adjacent to a major surface of an
adjacent layer of the plurality of flexible thermally conductive layers,

a major surface of one of the flexible thermally conductive layers is adjacent to the hinge; and
wherein the plurality of flexible thermally conductive layers are not affixed to each other in a region where the second housing
portion is flexibly coupled to the first housing portion, such that the plurality of flexible thermally conductive layers
are able to flex separately in said region.

US Pat. No. 9,218,740

ENRICHING DRIVING EXPERIENCE WITH CLOUD ASSISTANCE

Microsoft Technology Lice...

1. A system in a grid computing environment, comprising:
a plurality of servers executing a cloud service, including:
a plurality of grid servers associated with a plurality of grids, an individual grid server associated with an individual
grid corresponding to an area;

at least one server configured to receive sensed data from mobile devices associated with vehicles; and
the individual grid server configured to:
determine whether vehicles that are known to the associated individual grid server to be in or approaching the associated
individual grid are at risk of collision among vehicles in the area based on information received at the cloud service from
the mobile devices associated with the vehicles;

compensate for inaccuracies in the sensed data by combining the sensed data with at least one of information from one or more
other sensors on the mobile devices, information from one or more other vehicles, or historical information associated with
the vehicles or the mobile devices;

output alert-related data for communication to at least one of the vehicles that is at the risk of collision; and
issue an alert via at least one mobile device to at least one driver associated with the at least one of the vehicles that
is at the risk of collision, the alert comprising at least one of an audible alert, a visible alert, or a tactile alert, wherein
the at least one mobile device comprises at least one of a smartphone or a built-in vehicle device.

US Pat. No. 9,219,670

LINK-AWARE THROUGHPUT ACCELERATION PROFILES

MICROSOFT TECHNOLOGY LICE...

1. A method for enhancing data throughput from a client application, the method comprising:
determining an availability of a link associated with one of a plurality of network types;
selecting an HTTP connection retry timeout value, the HTTP connection retry timeout value being retrieved from a library of
stored parameter values and being mapped to a particular type of the plurality of network types based upon the determined
availability of a link;

selecting one or more TCP/IP timeout values, each of the TCP/IP timeout values being retrieved from the library of stored
parameter values, and each of the TCP/IP timeout values being mapped to the particular type in the plurality of network types
based upon the determined availability of a link;

propagating the selected HTTP connection retry timeout value and TCP/IP timeout value to a TCP/IP layer of a protocol stack
using an application programming interface arranged as an intermediary between the client application and the TCP/IP layer,
the application programming interface exposing the TCP/IP layer to the client application;

applying the selected HTTP and TCP/IP timeout values to data transmission over the link during client application runtime
using the client application, the applying being enabled by use of the application programming interface, and

repeating each of the recited steps when the application switches a network connection.

US Pat. No. 9,563,446

BINARY FILE GENERATION

Microsoft Technology Lice...

1. A system for generating a mapping binary file, comprising a processor to:
map a function call from a legacy binary file to a function call from a virtualized namespace binary file by merging an export
table from the legacy binary file and an export table from the virtualized namespace binary file, the virtualized namespace
binary file to load the function call based on an application programming interface name;

store the mapping of the function call from the legacy binary file to the function call from the virtualized namespace binary
file in a mapping binary file;

store, in the mapping binary file, an exception detected from the merger of the export tables; store the mapping binary file
in a storage location accessible by a loader; and

implement a precedential binary file ordering to indicate that a system binary file is to be loaded prior to the mapping binary
file in response to detecting the precedential binary file ordering.

US Pat. No. 9,239,460

CALIBRATION OF EYE LOCATION

MICROSOFT TECHNOLOGY LICE...

1. In a head-mounted display, a method of calibrating a predetermined eye location, the method comprising:
displaying a virtual marker visually alignable with a real world target at an alignment condition;
at the alignment condition, acquiring image data to determine a location of the real world target;
from the image data, determining an estimated eye location relative to a location of the head-mounted display; and
calibrating the predetermined eye location based upon the estimated eye location.

US Pat. No. 9,183,547

SYSTEM AND METHOD FOR REPLICATING OFFLINE SCHEDULING TRANSACTIONS FROM A CLIENT TO A SERVER

Microsoft Technology Lice...

1. A computer-readable storage medium that is not a propagating signal storing computer-executable instructions for controlling
a computing device to process transactions of a first application by a method comprising:
receiving by the first application a message to be sent to a first remote service via a network;
when the computing device is not currently connected to the network, storing the message at the computing device;
requesting by the first application a store-and-forward application to provide a network connection notification to the first
application after the store-and-forward application detects that the computing device is connected to the network, the store-and-forward
application being adapted to detect when the computing device is connected to the network so that the store-and-forward application
can send messages to a second remote service that is different from the first remote service; and

after receiving the network connection notification provided by the store-and-forward application,
retrieving by the first application the stored message; and
sending by the first application the retrieved message to the first remote service via the network.

US Pat. No. 9,280,545

GENERATING AND UPDATING EVENT-BASED PLAYBACK EXPERIENCES

Microsoft Technology Lice...

1. A method, comprising:
receiving instances of digital media, the instances of digital media comprising one or more of digital image data, digital
video data, or digital audio data and further including data indicating a time at which the digital media was captured and
data indicating the GPS coordinates of where the digital media was captured;

generating a group of digital media related by time and location from the received instances of digital media, the generating
being performed using the data included with the instances of digital media that indicates the time at which the digital media
was captured and the GPS coordinates of where the digital media was captured;

automatically generating playback data for presenting the group of digital media by applying one or more heuristics to the
group of digital media data, the playback data comprising data for controlling a sequential presentation of the group of digital
media, the one or more heuristics resulting in one or more images from the group of digital media having a modified display
duration or location in the sequential presentation; and

outputting the group of digital media and the playback data such that one or more recipients are able to view the presentation
of the group of digital media as controlled by the playback data.

US Pat. No. 9,585,285

HEAT DISSIPATION STRUCTURE FOR AN ELECTRONIC DEVICE

Microsoft Technology Lice...

1. An apparatus comprising:
an electronic component that generates heat during operation;
a housing that includes a heat dissipation structure to dissipate heat generated by the electronic component, the heat dissipation
structure having a hollow channel, the hollow channel having an interior surface from which heat is to be dissipated into
air external to the apparatus, the interior surface of the hollow channel defining at least a portion of an exterior surface
of the housing so as to define an air channel through the housing; and

a flexible thermal conduit having a first end coupled to the heat dissipation structure and a second end coupled to the electronic
component.

US Pat. No. 9,288,553

APPLICATION GADGETS AND ELECTRONIC PROGRAM GUIDES

Microsoft Technology Lice...

1. A client device comprising one or more modules implemented at least partially in hardware and configured to:
receive at a client device an input that involves interaction with a notification that is output in association with an electronic
program guide (EPG) that is broadcast by a network operator, the notification indicating that an application gadget is available;

responsive to the input, display one or more options by the client device that are selectable to specify another computing
device that is to receive and install the application gadget for execution on the other computing device, the one or more
options including a remote control device that is associated with the client device to initiate one or more control functions
of the client device; and

responsive to selection of the remote control device from the one or more options, initiate communication of the application
gadget for installation and display at the remote control device effective to cause a display of one or more representations
of the one or more control functions of the client device to be modified to allocate a portion of a display device associated
with the remote control device for output of the application gadget.

US Pat. No. 9,148,741

ACTION GENERATION BASED ON VOICE DATA

Microsoft Technology Lice...

1. A method for generating an action based on a conversation on a mobile device, comprising:
performing by the mobile device:
receiving audio data on the mobile device;
receiving text data on the mobile device, the text data generated in real time from the received audio data;
parsing the text data, wherein the parsing comprises searching for one or more predetermined keywords within the text data
generated in real time on the mobile device;

based on the parsed text data and the one or more predetermined keywords found during the searching, generating a list of
possible actions to be performed by one or more applications running on the mobile device; and

displaying the list of possible actions on the mobile device.

US Pat. No. 9,060,190

ITERATIVELY LOCATING A POSITION CORRESPONDING TO A DESIRED SEEK TIME

Microsoft Technology Lice...

1. A method comprising:
receiving a request to seek to a desired time within a file, the desired time corresponding to a desired position within the
file; and

iteratively estimating the desired position within the file until a time between an estimated time and the desired time is
less than a tolerance zone or until an iteration threshold is reached, wherein the iteratively estimating the desired position
comprises:

calculating a head bitrate for a portion of the file between a currently estimated position and a first previously estimated
position, where the first previously estimated position is closest to the currently estimated position and closer to a beginning
of the file than the currently estimated position; and

calculating a tail bitrate for a portion of the file between a currently estimated position and a second previously estimated
position, where the second previously estimated position is closest to the currently estimated position and closer to an end
of the file than the currently estimated position.

US Pat. No. 9,578,461

LOCATION CONTEXT, SUPPLEMENTAL INFORMATION, AND SUGGESTIONS FOR MEETING LOCATIONS

Microsoft Technology Lice...

1. A computer-implemented method comprising:
displaying a location field of a meeting item to a user, wherein the location field is represented in a graphical user interface
and configured to display a place name, the place name comprising a character string; receiving an interaction, in the location
field on the graphical user interface, with the place name displayed in the location field of the meeting item, wherein the
interaction with the place name comprises: touching of the displayed place name or clicking or moving of a mouse over the
displayed place name; and in response to receiving the place name from the interaction with the place name,

retrieving information about a location associated with the place name from a web service; and
displaying mapping information about the location, wherein the meeting item comprises a meeting item form and the location
field comprises a location input field, wherein the place name is one of at least one location suggestion for input to the
meeting item form.

US Pat. No. 9,554,356

PERSONALIZED REMINDERS

Microsoft Technology Lice...

1. A computerized system comprising:
one or more sensors configured to provide sensor data;
an events monitor configured to detect an unaddressed event based at least in part on the sensor data;
one or more processors; and
one or more computer storage media storing computer-useable instructions that, when used by the one or more processors, cause
the one or more processors to perform operations comprising:

identifying, using the events monitor, an unaddressed event based at least in part on the sensor data, the unaddressed event
being associated with a user;

determining, using the events monitor, a set of contextual information associated with the identified unaddressed event;
determining an urgency level corresponding to the unaddressed event, based on the set of contextual information;
determining an availability model for the user, based at least in part on the determined urgency level corresponding to the
unaddressed event; and

generating a set of notification content based on the urgency level, availability model, and unaddressed event, the set of
notification content for determining a notification regarding the unaddressed event.

US Pat. No. 9,288,134

SERVER-CENTRIC HIGH PERFORMANCE NETWORK ARCHITECTURE FOR MODULAR DATA CENTERS

Microsoft Technology Lice...

1. A method comprising:
under control of one or more processors configured with executable instructions:
assigning a first predetermined number of network ports to a plurality of servers of a network architecture;
arranging a plurality of switches having a second predetermined number of network ports into a predetermined number of levels;
and

connecting the plurality of switches to the plurality of servers using bi-directional links, such that individual ones of
the plurality of switches are not directly connected to another switch of the plurality of switches and individual ones of
the plurality of servers are not directly connected to another server of the plurality of servers.

US Pat. No. 9,274,825

VIRTUALIZATION GATEWAY BETWEEN VIRTUALIZED AND NON-VIRTUALIZED NETWORKS

Microsoft Technology Lice...

1. A method for controlling communication between a virtualized network and a non-virtualized entity, the method comprising:
receiving, by a host executing a hypervisor managing a virtual machine, a packet sent by the virtual machine to a customer
network address of the non-virtualized entity;

responding to receipt of the packet by the hypervisor, the hypervisor:
accesses a first mapping policy from a plurality of mapping policies that comprise mappings of host addresses to virtual machine
addresses and maintained to reflect migrations of the virtual machines, the plurality of mapping policies further comprising
a gateway mapping indicating that addresses in a customer address space map to a provider network address of a first physical
network interface of a gateway,

encapsulates the packet in an encapsulation packet based on the gateway mapping in the first mapping policy, the encapsulation
packet indicating that it was sent to the provider network address of the first physical network interface of the gateway
and indicating that it was sent from a provider network address of the host, and

transmits the encapsulation packet by the host to the gateway via a provider physical network, the gateway configured to,
based on a second mapping policy from the plurality of mapping policies, decapsulate and transmit the received packet to the
customer network address of the non-virtualized entity.

US Pat. No. 9,276,860

DISTRIBUTED DATA CENTER TECHNOLOGY

Microsoft Technology Lice...

1. A system comprising:
a plurality of data centers of a data center system configured such that any request for services corresponding to the data
center system may be satisfied by any of the plurality of data centers, the plurality of data centers including at least a
first, a second, and a third data center;

wherein the first data center is configured to reflect one or more requests corresponding to the data center system and received
by the first data center, including the first data center being configured to perform at least the following:

for at least one of the requests received by the first data center, determine that the at least one request is to be processed
by the second data center;

determine that the at least one request is to be reflected through the third data center, rather than being sent to the second
data directly; and

forward the at least one request to the third data center, for reflection by the third data center to the second data center.

US Pat. No. 9,209,987

SOCIAL MEDIA PLAYBACK

MICROSOFT TECHNOLOGY LICE...

3. A method of synchronizing playback of an audio/video media asset between a first playback device and one or more other
playback devices, including a second playback device, the method comprising:
synchronizing a first reference clock accessible by the first playback device with a second reference clock accessible by
the second playback device;

acknowledging the audio/video media asset that is to be synchronized on the first playback device and the second playback
device;

acknowledging a start point along a progress timeline of the audio/video media asset at which playback is to begin on the
first playback device and the second playback device;

acknowledging a reference time when playback is to begin on the first playback device;
creating a first playback timeline for the first playback device by temporally aligning the progress timeline to the first
reference clock so that the start point syncs with the reference time, the first playback timeline matching a second playback
timeline for the second playback device;

playing the audio/video media asset with a first video resolution from the start point with the first playback timeline on
the first playback device while the audio/video media asset is played with a second video resolution, different than the first
video resolution, from the start point with the second playback timeline on the second playback device;

while playing the audio/video media asset on the first playback device, sending participant audio communications from the
first playback device to the second playback device and/or receiving participant audio communications at the first playback
device from the second playback device, the participant audio communications including an audio chat.

US Pat. No. 9,098,304

DEVICE ENUMERATION SUPPORT METHOD FOR COMPUTING DEVICES THAT DOES NOT NATIVELY SUPPORT DEVICE ENUMERATION

Microsoft Technology Lice...

1. A method comprising:
detecting by an intermediate controller of a computing device connection events for hardware devices configured to removably
connect to a communication bus employed by the computing device that does not natively support device enumeration; and

notifying by the intermediate controller an operating system executed on a processor of the computing device of detected connection
events to enable device enumeration for hardware devices configured to use the communication bus within a device configuration
and power management system implemented by the operating system.

US Pat. No. 9,287,919

MULTI-BAND ISOLATOR ASSEMBLY

Microsoft Technology Lice...

1. Apparatus comprising:
an isolator assembly that provides isolation between two antennas in multiple non-overlapping frequency bands, the isolator
assembly including a resonating conductive isolation element and including a selection network configured to select one of
the multiple non-overlapping frequency bands for an isolation operation, wherein the length of the conductive resonating isolation
element measures less than ¼ of the wavelength of the frequency band selected for the isolation operation.

US Pat. No. 9,230,351

DATA BINDING GRAPH FOR INTERACTIVE CHART

Microsoft Technology Lice...

1. A method, implemented at a computer system that includes one or more processors, for implementing multi-view visualizations
in a computing environment, the method comprising:
accessing, by the one or more processors, a directed acyclic graph defining a data flow, the directed acyclic graph comprising:
a data source node that defines source data that flows downstream from the data source node in the directed acyclic graph;
a first derived data node positioned downstream from the data source node in the directed acyclic graph, the first derived
data node defining a first data modification operation to be performed on any data flowing from the data source node to the
first derived data node by operation of the directed acyclic graph; and

a second derived data node positioned downstream from the first derived data node in the directed acyclic graph, the second
derived data node defining a second data modification operation to be performed on any data flowing from the first derived
data node to the second derived data node by operation of the directed acyclic graph;

connecting, by the one or more processors, a first visualization to the data source node, the first visualization being configured
to visualize the source data as received from the connected data source node;

connecting, by the one or more processors, a second visualization to the first derived data node or to the second derived
data node, the second visualization being configured to visualize any data as received from the connected derived data node;

detecting, by the one or more processors, user interaction with the first visualization;
propagating, by the one or more processors, the user interaction with the first visualization to the data source node and
from the data source node through one or both of the first derived data node and the second derived data node to the second
visualization, including:

when the second visualization is connected to the first derived data node, causing the second visualization to display the
source data in accordance with the user interaction with the first visualization and in accordance with the first data modification
operation; and

when the second visualization is connected to the second derived data node, causing the second visualization to display the
source data in accordance with the user interaction with the first visualization and in accordance with both the first data
modification operation and the second data modification operation.

US Pat. No. 9,723,631

BULK FINE TIMING MEASUREMENT ALLOCATION MESSAGE

Microsoft Technology Lice...

1. A first mobile computing device, comprising:
a clock;
a memory area storing machine-executable instructions for generating a bulk fine timing measurement (BFTM) allocation message;
and

a processor configured to execute the instructions to:
identify other mobile computing devices in an area,
determine a time of departure (TOD) for the BFTM allocation message,
determine a contention-free period for the other computing devices to transmit timing measurement messages,
determine a scheduling order for the other mobile computing devices to transmit the timing measurement messages,
generate the BFTM allocation message to include the TOD, the contention-free period, and the scheduling order, and
transmit the BFTM allocation message to the other computing devices.

US Pat. No. 9,432,636

LARGE-SCALE SURFACE RECONSTRUCTION THAT IS ROBUST AGAINST TRACKING AND MAPPING ERRORS

Microsoft Technology Lice...

1. A method for reconstructing a physical space, comprising:
obtaining a plurality of images of the physical space using a camera carried by a rig while the rig moves in the physical
space through a plurality of poses;

determining an orientation and a coordinate system of each pose;
partitioning the physical space into a plurality of volumes;
for each volume of the plurality of volumes, obtaining a depth map of the physical space using a depth sensor carried by the
rig;

providing a pose graph comprising a plurality of nodes and links between the nodes, each node being associated with one of
the poses, one of the images associated with the one of the poses and one of the coordinate systems associated with the one
of the poses, and the links defining correspondences between the images and transforms between the coordinate systems;

for each volume, anchoring the volume to one of the nodes;
updating a state of the pose graph as the plurality of images are obtained, the updating comprising updating one or more of
the nodes and one or more of the links; and

reconstructing a surface in one or more of the volumes according to the state of the pose graph.

US Pat. No. 9,282,449

PEER-TO-PEER DISCOVERY

Microsoft Technology Lice...

1. A method of operating a wireless device to discover one or more other wireless devices, the method comprising:
initiating a scanning cycle of a scan phase according to a Wi-Fi Direct Protocol, the scanning cycle comprising a plurality
of intervals including an extended scan interval:

for each of the plurality of intervals of the scanning cycle:
during the extended scan interval, transmitting a probe request in each of a plurality of active-scan channels in a frequency
spectrum and listening for a probe response;

during other intervals in the plurality of intervals, transmitting at least one message on each social channel of a plurality
of social channels of the frequency spectrum at a visit time selected to provide a predetermined average time between visits
to the social channel and listening for a response to the message.

US Pat. No. 9,235,545

SINGLE WIRE CONCURRENT BI-DIRECTIONAL COMMUNICATION FOR PSU

Microsoft Technology Lice...

1. A communication system, comprising:
a first device comprising a signal recognizer connected to a first end of a control line, and a path to ground connected to
the first end of the control line, the path to ground comprising a first transistor and a first resistor with a resistance
R1A; and

a second device comprising a signal generator connected to a second end of the control line via a second resistor with a resistance
R2, the second device also comprises a receiver connected to the second end of the control line, wherein:

the signal generator is configured to generate a signal at the second end of the control line;
the signal represents a message from the second device;
the signal recognizer is configured to recognize the message from the second device from the signal;
first transistor is switchable between a conductive state and a non-conductive state responsive to the signal recognizer to
provide a modification of the signal;

when the first transistor is in the conductive state, a voltage V of the signal is divided between the first resistor and
the second resistor;

the modification of the signal represents a message from the first device; and
the receiver of the second device is configured to recognize the message from the first device from the modification of the
signal.

US Pat. No. 9,282,283

DETECTING PATTERNS TRACED ON A SCREEN OF A USER DEVICE

Microsoft Technology Lice...

1. A user terminal comprising:
a network interface;
a touchscreen configured to receive a pattern traced by a user;
a first camera configured to capture images, wherein the user terminal is configured to transmit said captured images from
the first camera to at least one further user terminal via the network interface as part of a video call;

a second camera;
a memory configured to store information relating to at least one pattern;
a detection module configured to detect, using said stored information, one of said at least one pattern traced on an area
of the touchscreen of said user terminal, to detect including, at least, determining if at least one gesture in a series of
gestures comprising the received pattern has a different motion vector than a preceding gesture in the series; and

a control module configured to, in response to the detection by the detection module, switch from the first camera to the
second camera so as to capture images using the second camera, the control module causing the said captured images from the
second camera to be transmitted via the network interface to said at least one further user device.

US Pat. No. 9,655,283

SUBMERGED DATACENTER

Microsoft Technology Lice...

1. A system comprising:
a submersible datacenter configured for operation while submerged in water, including by having electrical components of the
submersible datacenter in at least one sealed container, and the at least one sealed container incorporated into a base located
on a platform and submerged in the water;

a heat transfer subsystem including a sealed circulation pipe passing through the at least one sealed container within the
base, the sealed circulation pipe circulating dielectric fluid through the at least one sealed container housing the submersible
datacenter to sink the datacenter, equalize pressure, and transfer heat away from the submersible datacenter, and radiator
that transfers heat away from the at least one sealed container to the water outside the base; and

at least one sensor to detect a resistance of the dielectric fluid and monitor a leakage rate of the fluid.

US Pat. No. 9,697,016

SEARCH AUGMENTED MENU AND CONFIGURATION FOR COMPUTER APPLICATIONS

Microsoft Technology Lice...

1. A system, comprising:
one or more processing units; and
a plurality of components, each of which is executed by at least one of the one or more processing units, the plurality of
components comprising:

a reference component configured to access a set of metadata correlated with user interface controls for configuring user-customizable
options or preference settings of a computer application being executed;

an indexing component configured to distinguish respective subsets of the set of metadata that are associated with respective
ones of the user interface controls; and

a searching component configured to receive a set of search data input by a user of the executing computer application, compare
the set of search data with the subsets of the set of metadata, and identify a matching subset of metadata that satisfies
a condition pertaining to the search data defined by a function, the search data input being received from the user via an
interface of the computer application being executed.

US Pat. No. 9,585,291

WATER CONDENSATE CAPTURE FROM DATACENTER POWER GENERATION

Microsoft Technology Lice...

1. A system for capturing water condensate from generator exhaust, the system comprising:
a data center comprising multiple computing devices;
a generator consuming a fuel and providing power to the data center;
a condenser comprising:
vertically oriented piping, at least a portion of which is exposed to surrounding air; and
a spout positioned at a lower portion of the vertically oriented piping;
wherein the condenser is coupled to the generator such that exhaust from the generator is directed through the vertically
oriented piping of the condenser; and

wherein further the condenser facilitates heat transfer from the exhaust to the surrounding air, thereby condensing water
from the exhaust;

a water storage coupled to the spout of the condenser, thereby receiving the condensed water therefrom; and
a water conservation computing device comprising one or more computer-readable media and one or more processing units, the
one or more computer-readable media comprising computer-executable instructions, which, when executed by the one or more processing
units, cause the water conservation computing device to:

determine an anticipated water usage of the data center for a first period of time given a current processing being performed
by the data center;

determine an anticipated water generation for the first period of time from the condenser given the current processing being
performed by the data center;

select processing for offloading from the data center to one or more different data centers external to the system;
determine an updated anticipated water usage of the data center for the first period of time given an updated quantity of
processing that would be performed by the data center if the selected processing was offloaded;

determine an updated water generation for the first period of time from the condenser given the updated quantity of processing
that would be performed by the data center if the selected processing was offloaded;

repeat the selecting, the determining the updated anticipated water usage and the determining the updated anticipated water
generation until the until the updated anticipated water usage for the first period of time is less than the current amount
of water remaining in combination with the updated anticipated water generation for the first period of time; and

offload the selecting processing.

US Pat. No. 9,613,015

USER-CENTRIC SOFT KEYBOARD PREDICTIVE TECHNOLOGIES

Microsoft Technology Lice...

1. A method, comprising:
receiving first input data associated with a mobile device, wherein the first input data comprises one or more words;
automatically learning user tendencies using the first input data to generate user-specific input history data indicating
that at least one input word of the first input data was previously auto-corrected and that the auto-correction was undone;

receiving second input data from a touch screen keyboard;
analyzing the second input data and at least a portion of the user-specific input history data; and
based on the analyzing, providing one or more user-specific auto-corrections or suggestion candidates for the second input
data to the touch screen keyboard.

US Pat. No. 9,261,373

START-OF-ROUTE MAP NAVIGATION WITH SUPPRESSION OF OFF-ROUTE FEEDBACK

Microsoft Technology Lice...

1. A computer-implemented method performed on a computing device implementing a map navigation tool, the method comprising:
identifying a current location of the computing device;
determining that the current location of the computing device is within a start-of-route buffer area associated with a start
location of a route defined by the map navigation tool;

determining a movement direction of the computing device; and
while the current location of the computing device is within the start-of-route buffer area, selectively suppressing off-route
feedback based at least in part on the movement direction and the current location, the off-route feedback indicating that
the current location of the computing device is off of the route.

US Pat. No. 9,489,440

OPPORTUNISTIC, PRIORITY-BASED OBJECT SYNCHRONIZATION

Microsoft Technology Lice...

1. A method of synchronizing objects of an object set with a remote data store, the method involving a device having a processor
and comprising:
executing, by the processor, instructions that cause the device to:
identify respective objects of the object set as a high-priority object or a regular-priority object;
perform a high-priority synchronization by synchronizing the high-priority objects of the object set with the remote data
store at a high-priority synchronization interval and limiting the synchronization of the high-priority objects to a high-priority
data threshold; and

synchronize the regular-priority objects and the high-priority objects that were not synchronized during the high-priority
synchronization with the remote data store at a regular-priority synchronization interval that is longer than the high-priority
synchronization interval.

US Pat. No. 9,286,390

PRESENTATION OF RICH SEARCH RESULTS IN DELINEATED AREAS

Microsoft Technology Lice...

1. A computing device comprising:
one or more processing units;
a display device; and
one or more computer-readable storage media comprising computer-executable instructions, which, when executed by the one or
more processing units, cause the computing device to:

generate, on the display device, a defined display area for each search result in a first set of search results, the defined
display area being visually distinct from other defined display areas;

align, on the display device, the defined display areas for the first set of search results into a grid comprising at least
one column;

generate, on the display device, along a first edge, a visual hint of a second set of search results, the visual hint comprising
a portion of defined display areas for at least some search results of the second set of search results, the portion hinting
that a remaining portion of the defined display areas for the at least some search results of the second set of search results
exist, undisplayed, beyond the first edge;

generate, on the display device, wholly within at least some of the defined display areas for the first set of search results,
at least one of: a preview of information that is identified by a search result of the defined display area within which the
preview is generated and a formatting of content in accordance with a category of information that is identified by the search
result of the defined display area within which the formatting of content is performed;

detect a user input directed to the visual hint of the second set of search results;
regenerate the defined display areas for the first set of search results so as to generate, along a second edge, opposite
the first edge, a portion of defined display areas for at least some search results of the first set of search results, hinting
that a remaining portion of the defined display areas for the at least some search results of the first set of search results
exist, undisplayed, beyond the second edge; and

regenerate the portion of defined display areas for the at least some search results of the second set of search results,
the regenerating comprising generating a defined display area for each search result in the second set of search results,
the defined display areas for the search results in the second set of search results being visually distinct from all other
defined display areas.

US Pat. No. 9,282,047

BATCHING COMMUNICATION EVENTS

Microsoft Technology Lice...

1. A method, comprising:
receiving a data bag, the data bag including data packets destined to be transmitted to an external system;
attaching a timer event to the received data bag that indicates a defined period of time to retain the received data bag before
transmission;

temporarily storing the received data bag; and
overriding the timer event and upgrading a transmission mode to enable transmitting of the received data bag together with
at least one other data bag prior to expiration of the defined period based on another timer event associated with the at
least one other data bag that indicates another defined period of time that expires before the defined period of time.

US Pat. No. 9,270,974

CALIBRATION BETWEEN DEPTH AND COLOR SENSORS FOR DEPTH CAMERAS

Microsoft Technology Lice...

1. A method, comprising:
receiving an image of a scene generated by a color camera, the scene comprising a planar object, the planar object having
a known pattern;

locating, in the image, the pattern in the planar object based upon the pattern in the planar object being known;
computing a three-dimensional position and orientation of the planar object in the scene responsive to the pattern being located
in the image, the three-dimensional position and orientation of the planar object derived from the image of the scene generated
by the color camera;

receiving a depth image of the scene generated by a depth sensor, the depth image comprises pixels having depth values; and
jointly calibrating the color camera and the depth sensor based upon:
the computed three-dimensional position and orientation of the planar object; and
the depth values of the pixels in the depth image generated by the depth sensor.

US Pat. No. 9,613,209

AUGMENTING SYSTEM RESTORE WITH MALWARE DETECTION

MICROSOFT TECHNOLOGY LICE...

1. A computer-implemented method, comprising:
executing at least one system restore in a computing device, the system restore restoring a first set of resources stored
in the computing device;

analyzing a plurality of conditions to determine if malware detection is needed during system restoration, the plurality of
conditions including restoration history, system settings and infection history;

in response to determining that malware detection is needed, selecting a level of scanning from at least one of a deep scan
level or a user scan level, wherein the deep scan level is selected when at least one of the plurality of conditions exceeds
a threshold, wherein the user scan level is selected when none of the plurality of conditions exceeds a threshold; and

scanning, during the system restoration, a second set of resources that were not restored, at the selected level of scanning.

US Pat. No. 9,286,548

ACCURATE TEXT CLASSIFICATION THROUGH SELECTIVE USE OF IMAGE DATA

Microsoft Technology Lice...

1. A method for classifying search results by a search engine comprising an index of documents in a memory corresponding to
a plurality of products offered by a plurality of online shopping sites and comprising text classifiers and image classifiers,
a user interface enabling for enabling a user to browse products offerings organized according to the product taxonomy and
receiving a search query from the user and providing the user with a set of search results, and a ranking engine for ranking
the set of search results to enhance the user's experience, the method comprising:
inferring a first distribution on a set of training data using a first classifier;
inferring a second distribution on the set of training data using a second classifier;
concatenating the first distribution and the second distribution;
classifying each search result among a set of search results based on the concatenation; and
ranking the search results based at least in part on the classification.

US Pat. No. 9,743,554

HEAT DISSIPATION IN ELECTRONICS WITH A HEAT SPREADER

Microsoft Technology Lice...

1. A device comprising:
a motherboard;
a backing layer;
a battery;
a display module; and
an individual piece of thermally conductive material comprising a first surface and a second surface,
wherein a first section of the thermally conductive material is positioned between the motherboard and the backing layer such
that the first surface of the first section is adjacent to the motherboard and the second surface of the first section is
adjacent to the backing layer,

wherein a second section of the thermally conductive material is positioned between the display module and the battery of
the electronic device such that the first surface of the second section is adjacent to a back plate of the display module
and the second surface of the second section is adjacent to the battery,

wherein the first section of the thermally conductive material lies in a first plane and the second section of the thermally
conductive material lies in a second plane, separate from and parallel with the first plane, and

wherein the first section and the second section are joined by a connecting section of the thermally conductive material.

US Pat. No. 9,286,730

OPACITY FILTER FOR DISPLAY DEVICE

Microsoft Technology Lice...

1. An optical see-through head-mounted display device, comprising:
a see-through lens comprising an augmented reality display region and an opacity filter, the opacity filter comprising a plurality
of pixels, each pixel is controllable to adjust an opacity of the pixel, and the augmented reality display region extends
in a field of view between a first boundary line and second boundary line of the field of view;

at least one augmented reality emitter which emits light to an eye of a user via the augmented reality display region, the
light represents an augmented reality image having a boundary; and

at least one control circuit, the at least one control circuit is configured to cause the opacity filter to provide a region
having a shape which corresponds to a shape of the augmented reality image, to provide the region with an opacity which is
relatively high when the augmented reality image is at least a specified distance from the first boundary line and the second
boundary line, and to provide a gradual transition in the opacity to a relatively low opacity as a head of the user moves
sideward and the augmented reality image moves correspondingly toward the first boundary line, the gradual transition is based
on a distance between the first boundary line and the boundary of the augmented reality image.

US Pat. No. 9,280,433

HARDWARE DIAGNOSTICS AND SOFTWARE RECOVERY ON HEADLESS SERVER APPLIANCES

Microsoft Technology Lice...

1. A headless server appliance, comprising:
a hard disk;
a Universal Serial Bus (USB) mass storage device that is configured to access and control the hard disk, the USB mass storage
device being independent of an operating system of the headless server appliance;

a USB hub connected to the USB mass storage device and a USB port, the USB hub being independent of an operating system of
the headless server appliance; and

an actuation mechanism that when actuated enters the headless server appliance into a diagnostic mode in which the USB hub
is exposed to a client device that is coupled to the headless server appliance via the USB port, such exposure enabling the
client device to interact with the USB mass storage device independently of the operating system of the headless server appliance
for the purpose of reading data from the hard disk to the client device and writing data from the client device to the hard
disk.

US Pat. No. 9,603,282

DATACENTER AND COOLING CONTROL FAULT-TOLERANCE USING COMPUTE RESOURCES

Microsoft Technology Lice...

1. A computing device comprising: a processing unit; and one or more computer-readable media comprising computer-executable
instructions that, when executed by the processing unit, cause the processing unit to perform steps comprising:
receiving, from a first sensor, a first sensor input;
selecting, with a set of computing devices comprising at least one other computing device, a master computing device from
among the set of computing devices, the set of computing devices also comprising the computing device;

determining, if the computing device was selected as the master computing device, a control of a first infrastructure device
based at least in part on the received first sensor input;

generating, if the computing device was selected as the master computing device, control output to the first infrastructure
device to implement the determined control; and

transmitting, if the computing device was not selected as the master computing device, the received first sensor input to
one or more other computing devices of the set of computing devices;

wherein the determining the control of the first infrastructure device comprises determining to control at least one air mover
to increase a cooling provided to multiple computing devices if a resulting increase in an air mover energy consumption is
less than a resulting decrease in a computing device fan energy consumption as aggregated across the multiple computing devices,
the at least one air mover being external to each of the multiple computing devices, the increase in the cooling provided
by the at least one air mover causing a resulting decrease in the cooling provided to at least some of the multiple computing
devices from computing device fans that are internal to such multiple computing devices; and

wherein the determining the control of the first infrastructure device comprises determining to control the at least one air
mover to decrease the cooling provided to the multiple computing devices if the resulting decrease in the air mover energy
consumption is greater than the resulting increase in the computing device fan energy consumption as aggregated across the
multiple computing devices, the decrease in the cooling provided by the at least one air mover causing a resulting increase
in the cooling provided to the at least some of the multiple computing devices from computing device fans that are internal
to such multiple computing devices.

US Pat. No. 9,286,597

TRACKING CO-AUTHORING CONFLICTS USING DOCUMENT COMMENTS

MICROSOFT TECHNOLOGY LICE...

1. A method for managing co-authoring conflicts, the method comprising:
providing simultaneous co-authoring access to a document by a plurality of users;
receiving an indication to save a first change made to a content in the document by a first user;
saving the first change made to the content in the document while simultaneously receiving edits to the content by a second
user;

receiving an indication to save a second change made to the content in the document by the second user;
determining if the second change made to the content in the document conflicts with the first change made to the content in
the document; and

if a conflict is determined, saving the second change as a conflict comment associated with the content in the document and
allowing the first user and second user to continue editing the document without resolving the conflict.

US Pat. No. 9,288,053

SCHEMA SIGNING

Microsoft Technology Lice...

1. A method for verifying trust of at least one object defined in a database schema of a database before permitting access
to the at least one object, the method comprising:
verifying whether or not a digital signature associated with the at least one object defined in the database schema is valid
using a hash of the at least one object defined in the database schema calculated based upon a type of the at least one object
defined in the database schema;

determining that the at least one object defined in the database schema has been tampered with if the digital signature of
the at least one object defined in the database schema is determined to not be valid; and

to protect a software application that uses the database from malicious content, denying access to the at least one object
defined in the database schema based on a result of determination that the at least one object defined in the database schema
has been tampered with.

US Pat. No. 9,787,893

ADAPTIVE OUTPUT CORRECTION FOR DIGITAL IMAGE CAPTURE PROCESSING

Microsoft Technology Lice...

15. A method, comprising:
accessing digital image frames captured by a digital camera, each of the digital image frames having an associated control
value for a predetermined automatic image capture processing function;

determining a measure of information content change for a current digital image frame of the accessed digital image frames
relative to at least one previous digital image frame of the accessed digital image frames;

determining a measure of information content reliability with respect to the predetermined automatic image capture processing
function for the current digital image frame of the accessed digital image frames;

correcting the control value associated with the current digital image frame of the accessed digital image frames based on
the determined measure of information content change and the determined measure of information content reliability; and

outputting a final control value for the predetermined automatic image capture processing function based on corrected control
values for one or more digital image frames of the accessed digital image frames.

US Pat. No. 9,455,846

DECISION FEEDBACK EQUALIZATION

MICROSOFT TECHNOLOGY LICE...

1. A signal sampling system comprising N latching samplers, wherein
N is an integer equal to or greater than four;
each sampler of the N latching samplers includes a sample clock input to couple to a sample clock, and the sample clocks of
the N latching samplers are spaced in phase through 360 degrees;

each sampler of the N latching samplers further includes a data input having a decision logic level threshold, a plurality
of offset control inputs, a plurality of offset magnitude inputs, an un-buffered output, and a buffered output; and

each sampler of the N latching samplers further includes circuitry coupled between the inputs and outputs that causes a time
delay from an input signal transition to an output signal transition wherein,

after an offset control input changes from a first voltage to a second voltage, the decision logic level threshold changes
in a time less than one gate delay, and

after the sample clock transitions from a first logic state to a second logic state, the un-buffered output transitions within
a time substantially equal to one gate delay and the buffered output transitions within a time substantially equal to two
gate delays.

US Pat. No. 9,288,682

WHITE SPACE UTILIZATION

Microsoft Technology Lice...

1. One or more computer-readable storage media storing computer-readable instructions that when executed by a processor of
a computer cause the computer to perform a method, comprising:
supplying, via a cellular network, a location of a mobile device to a database;
obtaining, via the cellular network, from the database, a list of radio white space frequencies for the location of the mobile
device;

accessing a white space data store for information about use activity occurring on the radio white space frequencies;
selecting an individual radio white space frequency for active scanning for a radio white space network, the selecting based
on both the list from the database and the information about the use activity from the white space data store;

active scanning the individual radio white space frequency to discover a wireless access point that is providing the radio
white space network;

sending results of the active scanning for addition to the white space data store;
associating the mobile device with the discovered wireless access point to utilize the radio white space network; and,
communicating data on the radio white space network over the individual radio white space frequency rather than the cellular
network.

US Pat. No. 9,058,223

PARALLEL ENTROPY ENCODING ON GPU

Microsoft Technology Lice...

1. A method, comprising:
encoding a data with a first encoding scheme to produce an ordered set of values comprising a first value, a second value,
and a third value, the first value preceding the second value and the third value in the ordered set, the second value preceding
the third value in the ordered set;

executing a first thread on a graphics processing unit (GPU) to encode the first value with a second encoding scheme, based
on the first value and a reference value, the reference value being separate from the data and the ordered set of values;

while executing the first thread on the GPU, executing a second thread on the GPU to encode the second value with the second
encoding scheme, based on the second value and the first value;

while executing the first thread on the GPU, executing a third thread on the GPU to encode the third value with the second
encoding scheme, based on the third value and the second value; and

storing the encoded first, second, and third values in a memory location.

US Pat. No. 9,787,819

TRANSCRIPTION OF SPOKEN COMMUNICATIONS

Microsoft Technology Lice...

1. A user terminal comprising:
a microphone for capturing a portion of speech spoken by a near-end user of said user terminal;
a network interface for connecting to a communication network;
a touchscreen user interface;
a communication client application configured to:
conduct a communication session, over said communication network, between the near-end user and one or more far-end users
of one or more far-end terminals, said communication session including an estimated transcription of said portion of speech
that is capable of being sent in a message to the one or more far-end users;

obtain a plurality of alternative transcriptions for said portion of speech including an estimated probability of being correct
for each transcription of the plurality of alternative transcriptions;

implement a vetting mechanism to allow the near-end user to vet the estimated transcription via the touchscreen user interface
prior to the estimated transcription being sent in said message, the vetting mechanism including:

a first gesture received at the touchscreen user interface indicating acceptance of the estimated transcription to be included
in a predetermined role in the message; and

one or more second gestures received at the touchscreen user interface indicating rejection of the estimated transcription
from being included in said message; and

in response to receiving an indication of the one or more second gestures, select a next most probable transcription from
the plurality of alternative transcriptions according to the respective estimated probability of being correct, and present
the next most probable transcription with an option to accept or reject the next most probable transcription via the touchscreen
user interface to be sent in said message.

US Pat. No. 9,092,279

ALTERING EVENT LIFETIMES

Microsoft Technology Lice...

1. At a computer system including one or more processors and system memory, the computer system also including stream processing
module, the stream processing module configured to process events from a plurality of event streams, a method for adjusting
the lifetime of an event in one event stream based on an event in another event stream, the method comprising:
receiving a first event from a first event stream, the first event having a time stamp indicating a start time and end time
of the first event, the time from the start time to the end time representing the lifetime of the first event, the first event
stream included in the plurality of event streams;

altering the end time for the first event to extend the lifetime of the first event by a specified period of time;
receiving a second event from a second event stream, the second event having a time stamp indicating a start time of the second
event, the second event stream included in the plurality of event streams;

determining whether there is a correspondence between the first event and the second event based on a defined join condition,
wherein the join condition comprises a temporal restriction which excludes a correspondence between the first event and the
second event when the second event is entirely after the first event;

clipping the lifetime of the first event by modifying the first event to end at the start time of the second event in response
to the defined join condition indicating a correspondence between the first event and the second event and determining that
the start time of the second event is after the start time of the first event; and

determining that state can be cleaned for the first and second event streams up to a specified point in time, including:
receiving a current time increment (“CTI”) for the second event stream, the CTI for the second event stream indicating that
modifications to events prior to the start time of the second event are no longer to occur in the second event stream;

determining that the CTI for the second event stream finalizes the second event;receiving a current time increment (“CTI”) for the first event stream, the CTI for the first event stream indicating that
modifications to events prior to the start time of the second event are no longer to occur in the first event stream;
determining that events from the second event stream prior to the start time of the second event are no longer to interact
with events in the first event stream; and

cleaning state for any events prior to the start time of the second event from the first and second event streams in response
to determining that state can be cleaned from the first and second event streams.

US Pat. No. 9,262,419

SYNTAX-AWARE MANIPULATION OF MEDIA FILES IN A CONTAINER FORMAT

Microsoft Technology Lice...

1. One or more computer-readable media storing computer-executable instructions for causing a computing system programmed
thereby to perform operations comprising:
receiving a media file in a container format for a presentation that includes one or more of audio content, image content
and video content, wherein the container format is tree-structured such that the media file includes hierarchically organized
syntax elements defined according to the container format; and

performing syntax-aware manipulation of at least some of the hierarchically organized syntax elements defined according to
the container format in the media file, including verifying conformance of the media file to the container format, wherein
the verifying includes cross-verification for the at least some of the hierarchically organized syntax elements defined according
to the container format, the cross-verification including, for a given syntax element of the hierarchically organized syntax
elements defined according to the container format, checking that a given one of duration, count of frames, sample size, file
size, box size, or chunk offset is consistent between a value of the given syntax element and a value of each of one or more
other syntax elements, respectively, of the hierarchically organized syntax elements defined according to the container format.

US Pat. No. 9,336,380

APPLYING ACTIVITY ACTIONS TO FREQUENT ACTIVITIES

Microsoft Technology Lice...

1. A method of evaluating activities of users involving user-accessible resources on a device having a processor and having
access to an activity log, the method comprising:
executing, on the processor, instructions that cause the device to:
responsive to detecting an instance of an activity performed by a selected user involving at least one user-accessible resource
specified by the activity, record, in the activity log, the instance of the activity and the at least one user-accessible
resource specified by the activity;

evaluate the activity log to:
determine a frequency of instances of respective activities performed by the users with at least one user-accessible resource,
and

among the respective activities, identify a frequent activity where instances of the frequent activity in the activity log
have been performed with a frequency above a frequency threshold; and

for respective frequent activities, identify an activity action to be applied in response to the frequent activity; and
responsive to receiving a request to perform a requested activity specifying a user-accessible resource:
compare the requested activity and the user-accessible resource specified by the requested activity with the frequent activity;
and

responsive to identifying the requested activity and the user-accessible resource specified by the requested activity as the
frequent activity, perform the activity action associated with the frequent activity.

US Pat. No. 9,170,857

MANAGED EXECUTION ENVIRONMENT FOR SOFTWARE APPLICATION INTERFACING

Microsoft Technology Lice...

1. A method for controlling interactions between a host software program and a computer system by providing a framework running
within the host software program, the method performed by execution of instructions upon one or more processors of a computing
system, causing the computing system to perform the method comprising:
integrating the framework within the host software program, the host software program comprising one or more features providing
functionality within the host software program;

using the framework to interact with the one or more features, the framework comprising interface controls configured to interface
between the computer system and the host software program;

the framework identifying code in downloaded content, the identified code distinct from the one or more features of the host
software and the code being executable to provide new functionality distinct from the functionality of the host software program;

the framework loading the identified code;
the framework altering one or more of the one or more features of the host software program based on the code that is identified
in the downloaded content such that execution of the code identified in the downloaded content alters the functionality of
the one or more features in the host software program to include the new functionality provided by the downloaded code;

the framework initializing the identified code inside of the host software program; and
the framework transferring control of the initialized identified code to entry points in the framework.

US Pat. No. 9,872,379

FLEXIBLE PRINTED CIRCUIT WITH RADIO FREQUENCY CHOKE

Microsoft Technology Lice...

15. An image sensor assembly, comprising:
a flexible printed circuit including etched conductors disposed on one or more flexible substrate layers and including at
least one planar portion;

an image sensor mounted on the flexible printed circuit that is configured to generate differential clock and data signals
that are transmitted on different respective pairs of conductors;

a connector portion of the flexible printed circuit that is configured to enable the pairs of conductors to be connected to
an external system;

a first radio frequency common-mode choke connected in series with the differential pair of clock signal conductors; and
a second radio frequency common-mode choke connected in series with the differential pair of data signal conductors,
wherein the first and second radio frequency common-mode chokes are mounted on the planar portion of the flexible printed
circuit proximate to the connector portion.

US Pat. No. 9,280,417

MESSAGE STORAGE IN MEMORY BLOCKS USING CODEWORDS

Microsoft Technology Lice...

1. A method comprising:
receiving a message to store in a memory block by a computing device, wherein the memory block comprises a plurality of cells
and each cell has a value of a plurality of values;

generating a first string from the message by the computing device, wherein the first string comprises a plurality of positions,
and wherein each position corresponds to a cell of the plurality of cells and each position has a value of the plurality of
values;

determining a value of a stuck cell of the plurality of cells of the memory block by the computing device;
determining a difference between the value of the stuck cell and the value of the position of the first string corresponding
to the stuck cell by the computing device;

adding, modulo an alphabet size, the determined difference to each value of the first string to generate a second string by
the computing device; and

storing the second string in the memory block by the computing device.

US Pat. No. 9,268,757

ANNOTATION DETECTION AND ANCHORING ON INK NOTES

Microsoft Technology Lice...

1. A computer-implemented method comprising:
receiving digital ink strokes;
classifying at least some of the digital ink strokes as word digital ink strokes;
classifying at least some of the digital ink strokes as annotation digital ink strokes;
anchoring the annotation digital ink strokes to the word digital ink strokes to represent annotated words; and
breaking the annotation digital ink strokes into two separate annotations responsive to receiving a command to delete a portion
of the annotated words that are between other portions of the annotated words, each of the two separate annotations maintaining
an associated previously anchored portion of the annotation digital ink strokes associated with annotated words that were
not deleted.

US Pat. No. 9,282,121

SECURITY LANGUAGE TRANSLATIONS WITH LOGIC RESOLUTION

Microsoft Technology Lice...

1. A method comprising:
translating a fragment of a plurality of fragments of a first proof graph reflecting a logic language into a corresponding
fragment of a second proof graph reflecting a security language, wherein each fragment of the plurality of fragments forms
part of a structure of the first proof graph and includes at least two nodes and at least one directed edge;

repeating the translating for additional fragments of the plurality of fragments of the first proof graph; and
creating the second proof graph based on the translating.

US Pat. No. 9,285,589

AR GLASSES WITH EVENT AND SENSOR TRIGGERED CONTROL OF AR EYEPIECE APPLICATIONS

MICROSOFT TECHNOLOGY LICE...

1. A system, comprising:
a see-through display configured to display augmented reality images that augment a surrounding environment viewable via the
see-through display;

a processor; and
a storage device configured to hold instructions executable by the processor to:
detect a first data feed from a first network source,
control an internal application executable by the processor according to a first user-input command scheme responsive to the
first data feed being detected,

detect a second data feed from a second network source, the second data feed being different than the first data feed,
control the internal application according to a second user-input command scheme responsive to the second data feed being
detected, the first user-input command scheme being different than the second user-input command scheme.

US Pat. No. 9,287,950

CHANNEL QUALITY INDICATOR APPARATUS AND METHOD

Microsoft Technology Lice...

1. A method comprising:
forming by computing equipment a compound table including a plurality of individual channel quality indicator (CQI) tables
generated for distribution to base stations and user equipment of a wireless communication system according to a set of block
error rate (BLER) versus signal to noise ratio (SNR) curves, each table comprising a set of indices, each index corresponding
to a respective modulation and coding scheme (MCS) level and to a respective measured signal-to-noise ratio, and

for each table, the MCS levels being chosen based on expected block error rates for a respective channel statistic and/or
Multiple-Input Multiple-Output (MIMO) transmission mode.

US Pat. No. 9,288,235

CONTEXTUALLY AWARE DEVICE MANAGEMENT

MICROSOFT TECHNOLOGY LICE...

1. A method comprising:
providing identifying data, by a client device, to a service provider via a network, the identifying data being usable by
the service provider to identify the client device or functionality associated with the client device, or both;

receiving one or more contexts at the client device from the service provider via the network, the one or more contexts corresponding
to the identifying data, and each of the one or more contexts having management objects and one or more triggers configured
to cause the one or more contexts to transition to a corresponding one of a plurality of context states, the transition to
the corresponding one of the plurality of context states causing performance of one or more actions associated with the corresponding
one of the plurality of context states; and

implementing the one or more contexts locally by the client device effective to identify and perform the one or more actions
by the client device based on identification of the one or more triggers without use of network communication by the client
device.

US Pat. No. 9,152,402

AUTOMATED DEPLOYMENT AND SERVICING OF DISTRIBUTED APPLICATIONS

MICROSOFT TECHNOLOGY LICE...

1. A method implemented in a programming environment for software development or application management, the method comprising:
obtaining a hardware profile that defines a hardware configuration associated with a distributed service, the hardware profile
supplying instructions that are used for automated configuration of individual machines utilized to implement the distributed
service;

obtaining a workload profile that defines a configuration of an operating system associated with the distributed service,
the workload profile supplying instructions that are used for the automated configuration of the individual machines used
to implement the distributed service; and

using at least the hardware profile and the workload profile as a template to automate configuration of machines that are
deployed according to instructions in the template.

US Pat. No. 9,094,394

MANAGING CROSS-PREMISES RESOURCES THROUGH INTEGRATED VIEW

Microsoft Technology Lice...

1. A method executed on a computing device for managing cross-premises resources, the method comprising:
modeling at least one of a local resource and a remote resource into a single view;
displaying a single control as a common integration point to access views of the at least one of the local resource and the
remote resource, and one or more customized controls based on a user's access privileges through the single view;

managing the at least one local resource and remote resource from the single view by:
receiving user input through the single view for transmission as a message to the at least one local resource and remote resource,
attempting to transmit the message to the at least one local resource and remote resource,
determining whether a maximum number of retries has been reached for transmission of the message in response to a determination
that a timeout has been reached before receiving an acknowledgment from the at least one local resource and remote resource
following the attempted transmission of the message, and

aborting the attempted transmission of the message in response to a determination that the maximum number of retries has been
reached;

securing cross-premises messaging and signaling across the at least one local resource and remote resource; and
providing single sign on (SSO) authentication across at least a portion of the at least one local resource and remote resource.

US Pat. No. 9,256,478

SYSTEM FOR SCALABLE CONFIGURATION AND CONTEXT

MICROSOFT TECHNOLOGY LICE...

1. A method, comprising:
in a computer having a processor and a memory, wherein the memory has program instructions stored thereon that, upon execution
by the processor, cause the computer to execute a instance manager configured to manage a plurality of instances of a single
application, and wherein each of the plurality of instances is remotely located with respect to the other instances;

storing, by the instance manager, a table having a plurality of entries, each entry having at least one instance property
and value pair corresponding to each of the plurality of instances, each of the instance properties and value pairs having
been published to the table by a corresponding one of the plurality of instances during a most-recent execution of the corresponding
instance;

updating the table, by the instance manager, with an updated instance property and value pair published by a first one of
the plurality of instances in response to execution of the first instance;

receiving, at the instance manager, from a second one of the plurality of instances while the first instance is not being
executed, a request that identifies the updated instance property; and

in response to the request, providing, by the instance manager, an updated value stored in the table as corresponding to the
updated instance property to the second instance while the first instance is not being executed and without using any configuration
files external to the first instance, wherein the response appears to the second instance as if it were being provided directly
by the first instance and not by the instance manager;

wherein each instance property further comprises an expiration that defines a lifetime of the instance property, and
wherein the values of the one or more instance properties are available to other instances during the instance property lifetime.

US Pat. No. 9,563,412

STATICALLY EXTENSIBLE TYPES

MICROSOFT TECHNOLOGY LICE...

1. A method comprising:
receiving by a processor of a software development computer, program source code comprising an initial declaration for a static
type of a component in a first file;

receiving program source code comprising at least one additional declaration comprising a static type extension for the static
type of the component in a second file, where the at least one additional declaration extends capabilities of the component
at runtime;

merging the initial declaration for the static type of the component in the first file with the at least one additional declaration
for the static type of the component in the second file to create a merged static type declaration;

using the merged static type declaration for static type checking during compilation.

US Pat. No. 9,445,112

SECURE TRANSCODING OF VIDEO DATA

Microsoft Technology Lice...

1. A device configured to securely transcode video data, the device comprising:
an application region configured to:
ingress encrypted video data in a first encoded format, and
egress encrypted video data in a second encoded format, wherein the video data comprises a plurality of video data regions;
and

a secure region inaccessible from the application region, the secure region configured to:
receive the encrypted video data in the first encoded format from the application region,
decrypt the video data in the first encoded format,
transcode the video data to the second encoded format resulting in a transcoded sample, wherein the transcoded sample comprises
the video data transcoded to the second encoded format, a list comprising, for each video data region of the plurality of
video data regions, an indicator of whether that video data region is to be encrypted or unencrypted, and an index table comprising
at least one index and at least one subsample of video data comprising a header and a content,

re-encrypt the video data in the second encoded format in accordance with the list of the transcoded sample, wherein re-encrypting
the video data in the second encoded format in the secure region results in a re-encrypted sample, the re-encrypted sample
comprising at least one encrypted video data region of the plurality of video data regions, and

send the encrypted video data in the second encoded format to the application region.

US Pat. No. 9,134,798

GESTURES, INTERACTIONS, AND COMMON GROUND IN A SURFACE COMPUTING ENVIRONMENT

Microsoft Technology Lice...

1. A method performed by one or more processors that are configured with executable instructions to perform acts comprising:
receiving, by a first computing device, a gesture input from a touch-sensitive input device;
in response to determining that the gesture input comprises:
an undefined gesture that is excluded from a set of gestures stored by the first computing device, receiving a set of user
gestures from a second computing device;

in response to determining that the gesture input is included in the set of user gestures,
performing an action corresponding to the gesture input; and
in response to determining that a second gesture input received within a predetermined time period comprises a duplicate gesture,
ignoring the duplicate gesture, wherein the gesture input and the second gesture input are provided to a same software application
being executed by the first computing device.

US Pat. No. 9,300,814

NETWORK ADAPTIVE CONTENT DOWNLOAD

Microsoft Technology Lice...

1. A computer-implemented method comprising:
determining possible content downloads initiated by a computing device for background downloading;
by the computing device, assessing potential costs associated with the possible content downloads based at least on first
costs and a first exemption list for a first network and second costs and a second exemption list for a second network, the
first exemption list and the second exemption list indicating content downloads that are exempted from costs charged by the
first network and the second network, respectively;

based upon the assessing, selecting by the computing device one of the first network or the second network for background
downloading to the computing device at least a part of the possible content downloads;

executing a background downloading based upon the selection;
determining, during the background downloading, that the selected network becomes unavailable for performing the background
downloading;

in response to the determining that the selected network becomes unavailable, assessing by the computing device costs associated
with one or more available networks and costs associated with content still to be downloaded; and

ceasing content downloading based on the costs associated with the one or more available networks exceeding a threshold.

US Pat. No. 9,239,732

UNROLLING AGGREGATION OPERATIONS IN ASYNCHRONOUS PROGRAMMING CODE HAVING MULTIPLE LEVELS IN HIERARCHY

Microsoft Technology Lice...

1. A computer-based method for executing asynchronous programming code, comprising:
unrolling an aggregation operation in a portion of asynchronous programming code having multiple levels in a hierarchy, the
unrolling comprising combining first local logic code in a first level of the hierarchy associated with a first thread with
second local logic code in a second level of the hierarchy associated with a second thread, and converting the aggregation
operation into a sequential operation comprising concatenated local logic code of the aggregation operation, wherein the unrolling
effectively removes thread context switching associated with the aggregation operation and performs thread context switching
instead at an asynchronous operation in the unrolled portion of asynchronous programming code; and

responsive to detecting an operation exception thrown at the second level of the hierarchy, propagating the operation exception
up to the first level of the hierarchy, wherein call stacks of the first thread and the second thread are concatenated into
the operation exception.

US Pat. No. 10,007,586

DEFERRED SERVER RECOVERY IN COMPUTING SYSTEMS

Microsoft Technology Lice...

1. A method performed by a computing device in a computing system having a plurality of hosts interconnected by a computer network, comprising:receiving a notification of a fault from a host in the computing system, the host currently performing one or more computing tasks for one or more users;
in response to receiving the notification, determining an impact of the fault on an ability of the host to continue performing the one or more computing tasks currently performed by the host;
determining whether recovery of the fault in the received notification is deferrable on the host based on the determined impact of the fault on the ability of the host to continue performing the one or more computing tasks currently performed by the host; and
in response to determining that the fault in the received notification is deferrable,
determining whether a total number of hosts having pending recovery operations exceeds a threshold; and
in response to the total number of hosts having pending recovery operations does not exceed the threshold,
setting a time delay to perform a recovery operation on the host at a later time; and
disallowing additional assignments of computing tasks to the host.

US Pat. No. 9,288,125

APPLICATION CONTROL OF EMBEDDED WEB CONTENT EXECUTION

Microsoft Technology Lice...

1. A method comprising:
obtaining multiple instances of web content, at least one of the multiple instances of web content including a script;
displaying the multiple instances of web content embedded in an application concurrently with content of the application,
including displaying a result of execution of the script, the multiple instances of displayed web content each having a different
source;

receiving, from the application, a trigger value;
monitoring an amount of time the script has been executing against the trigger value;
providing feedback to the application regarding performance for each of the respective multiple instances of displayed web
content responsive to the trigger value being satisfied for as long as the web content is executing;

allowing the application to alter execution of the web content in response to the feedback, the allowing the application to
alter execution of the web content comprising terminating execution of a first instance of the displayed web content without
altering execution of a second instance of the displayed web content; and

ceasing to provide feedback to the application regarding performance for the first instance of web content when the first
instance of web content is no longer executing.

US Pat. No. 9,223,766

PRESERVING FORMATTING OF CONTENT SELECTION THROUGH SNIPPETS

Microsoft Technology Lice...

1. A method executed on a computing device for preserving formatting of content selection through a snippet, the method comprising:
detecting a selection of a portion of a first content;
determining a format of the selected portion;
storing the selected portion and the format as a snippet;
displaying the snippet in a navigation pane preserving the format;
navigating to a location of the selected portion within the first content in response to detecting an action activating the
snippet;

determining a related location in a second content by matching components in the selected portion stored in the snippet with
components of the second content; and

inserting the snippet into the second content at the related location to annotate the second content with the selected portion
stored in the snippet.

US Pat. No. 9,756,020

PERSISTENT UNIFORM RESOURCE LOCATORS (URLS) FOR CLIENT APPLICATIONS ACTING AS WEB SERVICES

Microsoft Technology Lice...

1. A method implemented by a client device comprising:
requesting access to a tunnel service implemented via an intermediary server including communicating a digital certificate
for a client application to the tunnel service to get a persistent URL that enables the client application to operate as a
web service through the tunnel service, the tunnel service configured to derive the same persistent URL from the digital certificate
each time the digital certificate is presented for access to the tunnel service during a validity period of the digital certificate;

responsive to requesting access, acquiring the persistent URL from the tunnel service, the persistent URL configured by the
tunnel service as a publicly addressable identifier for the client application as the web service that is derived from information
contained in the digital certificate; and

communicating as the web service with one or more endpoints through the tunnel service using the persistent URL.

US Pat. No. 9,286,396

QUERY EXPANSION AND QUERY-DOCUMENT MATCHING USING PATH-CONSTRAINED RANDOM WALKS

Microsoft Technology Lice...

1. A method comprising the following computer-executable acts:
receiving an input query;
executing path-constrained random walks over a computer-implemented labeled and directed graph based upon the input query,
wherein the labeled and directed graph comprises:

a first set of nodes that are representative of queries comprised in clickthrough data from search logs;
a second set of nodes that are representative of documents comprised in the clickthrough data from the search logs;
a third set of nodes that are representative of words from the queries and the documents; and
edges between nodes that are representative of relationships between the queries, the documents, and the words;
wherein the path-constrained random walks comprise traversals over edges of the graph between nodes, the path-constrained
random walks traverse the edges of the graph between the nodes in accordance with predefined path types, an each of the predefined
path types comprises a respective sequence of relations between the nodes in the graph for traversing as part of a corresponding
path-constrained random walk from the path-constrained random walks; and

computing a score for a relationship between a target node and a source node representative of the input query based at least
in part upon the path-constrained random walks.

US Pat. No. 9,913,409

INTRUSION DETECTION FOR SUBMERGED DATACENTERS

Microsoft Technology Lice...

1. A system comprising:
an intrusion detection system coupled to a datacenter configured for operation while submerged in water, the datacenter comprising
one or more physically separable modules, the intrusion detection system comprising one or more intrusion detection modules
configured to detect underwater intrusion attempts directed towards the datacenter while submerged in the water, the one or
more intrusion detection modules further configured to:

responsive to a detection of an intrusion into the datacenter submerged in the water, triggering an alert for network operations;
broadcasting warnings into a surrounding environment;
ceasing network traffic;
failing over to a geo-replicated copy of the datacenter; and
permanently rendering local data of the datacenter inaccessible by flooding the datacenter submerged in the water.

US Pat. No. 9,280,651

SECURELY HANDLING SERVER CERTIFICATE ERRORS IN SYNCHRONIZATION COMMUNICATION

Microsoft Technology Lice...

1. A method comprising:
performing by at least one computing device:
during communications with a true synchronization server, receiving an invalid first incoming synchronization server digital
certificate;

receiving an indication that synchronization server digital certificate invalidity is to be ignored;
saving the invalid first incoming synchronization server digital certificate via a persisted invalid synchronization server
digital certificate identifier; and

during a subsequent attempt to access the true synchronization server, communicating with an impersonating synchronization
server impersonating the true synchronization server, and receiving a second incoming synchronization server digital certificate
from the impersonating synchronization server; and

responsive to detecting that the persisted invalid synchronization server digital certificate identifier indicates that the
second incoming synchronization server digital certificate of the impersonating synchronization server does not match the
invalid first incoming synchronization server digital certificate of the true synchronization server, generating an error
condition.

US Pat. No. 9,253,615

EVENT PLANNING WITHIN SOCIAL NETWORKS

Microsoft Technology Lice...

1. A computer system, comprising:
one or more processors; and
one or more computer-readable media having stored thereon instructions that are executable by the one or more processors and
that configure the computer system to generate a map user interface corresponding to an event plan, including instructions
that configure the computer system to perform at least the following:

receive a request to invite a plurality of users within a social network to an event;
record each the plurality of users as invitees of the event;
receive, from at least one of the invitees of the event, an event plan suggestion for an event logistic comprising a suggested
geographical location of the event;

associate the suggested geographical location with the event plan;
identify a geographical location of each of a plurality of computing devices based on geographical data received from each
computing device, each of the plurality of computing devices corresponding to one of the plurality of users;

generate a map user interface, including (i) generating an event location indicator on the map user interface corresponding
to the suggested geographical location, and (ii) generating a plurality of guest location indicators on the map user interface
that each correspond to one of the plurality of geographical locations of the plurality of computing devices, including indicating
that a first one or more of the guest location indicators that are within a predetermined distance from the suggested geographical
location, and indicating that a second one or more of the guest location indicators are outside of the predetermined distance
from the suggested geographical location;

detect that a particular computing device of the plurality of computing devices that is associated with a particular second
guest location indicator had moved to a new geographical location that is within the predetermined distance from the suggested
geographical location; and

based at least on the particular computing device having moved to the new geographical location:
update the map user interface, including (i) updating the particular second guest location indicator on the map user interface
to reflect the new geographical location of the particular computing device, and (ii) indicating that the particular second
guest location indicator is now within the predetermined distance from the suggested geographical location; and

send a notification to at least one of the plurality of computing devices apart from the particular computing device, the
notification indicating that a user associated with the particular computing device has arrived at the event.

US Pat. No. 9,064,174

SIMULTANEOUS TRACKING AND TEXT RECOGNITION IN VIDEO FRAMES

Microsoft Technology Lice...

1. A system, comprising:
a text recognition component configured for recognition of text on a sequence of video frames, the text recognition component
configured to receive a selected frame of the sequence of video frames and perform text recognition processing of the selected
frame to output a selected frame result;

a tracker component configured to select a keyframe from the sequence of video frames based on stability criteria applied
to incoming frames and to establish a reference coordinate system relative to the selected keyframe, the selected frame result
mapped back to the reference coordinate system of the keyframe, the tracker component configured to apply keyframe coordinates
to subsequent video frames to enable accumulation of best results for text recognition rendering and viewing; and

a microprocessor configured to execute computer-executable instructions associated with at least one of the text recognition
component or the tracker component.

US Pat. No. 10,007,839

FALSE FACE REPRESENTATION IDENTIFICATION

MICROSOFT TECHNOLOGY LICE...

1. A method for identifying a false representation of a human face, the method comprising:receiving one or more data streams captured by one or more sensors sensing a candidate face;
sequentially detecting various spoofing attempts in a cascading plurality of stages to determine that one or more of the data streams corresponds to the false representation of the human face, wherein the cascading plurality of stages are arranged in a predetermined order of decreasing commonality of the spoofing attempts beginning with more common spoofing attempts and ending with less common spoofing attempts; and
based at least in part on determining that the one or more data streams corresponds to the false representation of the human face, outputting an indication of the false representation of the human face.

US Pat. No. 9,426,905

CONNECTION DEVICE FOR COMPUTING DEVICES

Microsoft Technology Lice...

19. An apparatus comprising a plurality of connection portions that are configured to magnetically and physically communicatively
couple a plurality of mobile computing devices having a slate form factor to each other, the plurality of connection portions
connected using a flexible hinge having one or more conductors configured to communicatively couple at least one communication
contact configured to form a communicative coupling with a respective one of the plurality of mobile computing devices with
at least one other communication contact of another one of the connections portions.

US Pat. No. 9,888,606

AUTOMATED PANEL FOR COLD AISLE CONTAINMENT

Microsoft Technology Lice...

1. An apparatus for at least partially containing a cold aisle, the apparatus comprising:
a panel housing facing the cold aisle, the panel housing comprising a panel;
extension means for extending the panel, from the housing, to an extended position; and
retraction means for retracting the panel into the housing from the extended position;
wherein the extension means comprises a pneumatic arm that is powered during a normal operation of electronic equipment abutting
the cold aisle and unpowered during other than normal operation of the electronic equipment.

US Pat. No. 9,286,139

AUTOMATIC MUTUAL EXCLUSION

Microsoft Technology Lice...

1. A computer-readable storage medium comprising executable instructions that when executed by a processor cause the processor
to effectuate operations comprising:
executing a call to a first asynchronous method comprising a first instruction and a second instruction, wherein the first
asynchronous method accesses a shared memory space which may be used by a second asynchronous method executing in parallel
to the first asynchronous method;

determining that the first instruction is not permitted to be executed in the first asynchronous method, and, in response,
placing the first instruction in a queue;

determining that the second instruction is permitted to be executed in the first asynchronous method, and, in response, executing
the second instruction;

determining whether the shared memory space has been altered by the second asynchronous method executing in parallel to the
first asynchronous method since the first asynchronous method started executing;

responsive to determining that the shared memory space has not been altered by the second asynchronous method since the first
asynchronous method started executing, committing a change made to the shared memory space by the first asynchronous method;
and

responsive to committing the change made to the shared memory space by the first asynchronous method, executing the first
instruction from the queue.

US Pat. No. 9,158,563

DYNAMIC PLUGIN(S) FOR CLOUD APPLICATION(S)

Microsoft Technology Lice...

1. A method comprising:
identifying configuration information regarding a specified application, the configuration information indicating that at
least one designated plugin selected from one or more plugins, which are stored in a location that is accessible to deployed
applications, is to be installed in response to the specified application being deployed;

causing an agent plugin, which is separate from the specified application, to run in a first deployment of the specified application,
the specified application being packaged to include the agent plugin; and

using the agent plugin to install the at least one designated plugin based on the configuration information in response to
causing the agent plugin to run in the first deployment of the specified application.

US Pat. No. 9,291,449

DETECTION OF CONFIGURATION CHANGES AMONG OPTICAL ELEMENTS OF ILLUMINATION SYSTEM

Microsoft Technology Lice...

1. An illumination system comprising:
a light source configured to generate an illumination signal;
one or more optical elements aligned to direct a portion of light of the illumination signal;
a light detector positioned to receive light directed from the one or more optical elements, wherein the light detector is
configured to generate an output signal based on the light directed from the optical element; and

control circuitry connected to monitor the output signal of the light detector, wherein the control circuitry is configured
to detect a change in a configuration position of one or more elements of the illumination system.

US Pat. No. 9,526,125

TRANSFER OF DATA-INTENSIVE CONTENT BETWEEN PORTABLE DEVICES

Microsoft Technology Lice...

1. A method for retrieving shareable content hosted by a host mobile telephone, the method executed by a client mobile telephone,
the method comprising:
when a wireless radio of the client mobile telephone is powered off, receiving:
an indication that the host mobile telephone and the client mobile telephone are estimated to be at a distance from one another
such that a wireless peer-to-peer connection is able to be established between the host mobile telephone and the client mobile
telephone; and

an identity of the shareable content hosted by the host mobile telephone;
responsive to receiving the indication and the identity of the shareable content, powering on the wireless radio of the client
mobile telephone;

responsive to powering on the wireless radio of the client mobile telephone, establishing the wireless peer-to-peer connection
with the host mobile telephone by way of the wireless radio;

transmitting a request to the host mobile telephone over the wireless peer-to-peer connection, the request identifies the
shareable content; and

receiving the shareable content from the host mobile telephone by way of the wireless peer-to-peer connection.

US Pat. No. 9,378,001

MATCHING PROGRAM SECTIONS THROUGH FEATURE EXTRACTION

Microsoft Technology Lice...

1. A method for matching program sections, comprising:
organizing, via a processor, a program into blocks based on control flow;
calculating, via the processor, a plurality of block features for each block;
comparing, via the processor, the plurality of block features for each block with other blocks and creating a list of equivalent
blocks, the equivalent blocks representing an inlined function; and

transforming, via the processor, the equivalent blocks representing the inlined function into an alternate program by replacing
each of the equivalent blocks with a call to a new function created from the equivalent blocks.

US Pat. No. 9,317,694

DIRECTED EXECUTION OF DYNAMIC PROGRAMS IN ISOLATED ENVIRONMENTS

Microsoft Technology Lice...

1. A system comprising:
a device that includes at least one processor, the device including a dynamic program validation engine comprising instructions
stored on a computer readable storage medium for execution by the at least one processor, the dynamic program validation engine
including:

an object acquisition component that obtains a test object that includes dynamic executable code;
an object transformation component that transforms at least a portion of the test object into a transformed format test object
that is configured to execute in a hosted isolated computing environment, the transforming the at least a portion of the test
object including replacing item names of referenced content items with local reference names of items that are stored locally,
after download from one or more referenced sources that are external to the hosted isolated computing environment;

a directed execution component that initiates directed execution of the transformed format test object, in the hosted isolated
computing environment; and

a vulnerability detection component that detects dynamic code vulnerabilities of the test object, based on the directed execution.

US Pat. No. 9,311,896

GLYPH RENDERING

Microsoft Technology Lice...

1. A method for rendering a glyph, comprising:
receiving the glyph and a first sub-pixel position for the glyph;
identifying a rendering quality for the glyph at a second sub-pixel position based at least upon a determined brightness value
aspect for at least a portion of the glyph to be rendered at the second sub-pixel position, a determined contrast value aspect
for the at least a portion of the glyph and a determined typographical preference aspect for the at least a portion of the
glyph;

selecting a sub-pixel position shift for the glyph based at least upon the rendering quality, the sub-pixel position shift
comprising a difference between the first sub-pixel position and the second sub-pixel position; and

rendering the glyph on a display comprising applying the sub-pixel position shift to the glyph.

US Pat. No. 9,300,494

MATCHING CLIENT DEVICE TO APPROPRIATE DATA PACKAGE

Microsoft Technology Lice...

1. A method, implemented at least in part via a processing unit, comprising:
receiving a device identification (ID) for a client device;
receiving a package decomposition set for a network service provider data package, the package decomposition set comprising
one or more ranges of client IDs associated with the network service provider data package, the network service provider data
package corresponding to a first network service provider; and

providing the network service provider data package to the client device if the client device is determined to be associated
with the first network service provider based upon at least a portion of the device ID falling within at least some of the
one or more ranges of client IDs associated with the network service provider data package.

US Pat. No. 9,279,878

LOCATING A MOBILE DEVICE

Microsoft Technology Lice...

1. A computer based method for identifying a location of a mobile device, comprising:
determining a first signal distance between a first grid space and a first access point (AP) using a first received signal
strength (RSS), the first RSS comprising an indication of mobile device signal strength received by the first AP, the determining
comprising combining the first RSS with an AP path loss function to determine the first signal distance, wherein the AP path
loss function is obtained by calibrating a base path loss function, the calibration comprising:

determining a first expected distance between the first AP and a second AP using a first AP RSS, the first AP RSS comprising
an indication of signal strength for a signal transmitted from the second AP and received by the first AP;

determining a first AP difference based at least on a combination of the first expected distance and a first known AP distance,
the first known AP distance comprising a known distance between the first AP and the second AP; and

adjusting the base path loss function based at least on the first AP difference;
comparing the first signal distance with a first grid space distance, resulting in a first grid space likelihood score, the
first grid space distance comprising a known distance between the first AP and the first grid space; and

identifying the location of the mobile device based at least on the first grid space likelihood score, at least a portion
of the method implemented at least in part via a processing unit.

US Pat. No. 9,124,669

COOPERATIVE CLIENT AND SERVER LOGGING

Microsoft Technology Lice...

1. A device comprising:
one or more modules implemented at least partially in hardware, the one or more modules configured to perform operations comprising:
communicating with at least one other device;
receiving a request from the at least one other device to initiate logging, the request indicating detection of a connection
related state in association with the communicating and specifying a level of information for the device to log information;

processing the request at the device to initiate the logging; and
sending an acknowledgement to the at least one other device, the acknowledgement acknowledging receipt of the request and
that the logging is initiated.

US Pat. No. 10,004,094

AUTHENTICATION AND PAIRING OF DEVICES USING A MACHINE READABLE CODE

Microsoft Technology Lice...

1. A client computing device comprising:a wireless communication interface;
at least one processor; and
memory storing instructions executable by the at least one processor, wherein the instructions, when executed, configure the client computing device to:
display a machine readable code (MR code);
based on an indication that a mobile computing device, that is separate from the client computing device, scanned the displayed MR code,
establish a secure communication channel with the mobile computing device by pairing the mobile computing device and the client computing device based on user authentication by a remote computing system; and
receive content associated with the remote computing system through the secure communication channel using the wireless communication interface.

US Pat. No. 9,986,667

FLEXIBLE THERMAL CONDUIT FOR AN ELECTRONIC DEVICE

Microsoft Technology Lice...

1. A head-mounted display device comprising:a visor assembly including a display assembly to cause an image to be displayed to a user, the visor assembly including an electronic component that generates heat during operation;
a head fitting assembly, flexibly coupled to the visor assembly, by which the head-mounted display device can be worn on a head of the user, the head fitting assembly including a heat dissipation structure; and
a multi-layer flexible thermal conduit that passes from the visor assembly to the head fitting assembly via a region where the head fitting assembly is flexibly coupled to the visor assembly, to convey heat generated by the electronic component to the heat dissipation structure in the head fitting assembly, the multi-layer flexible thermal conduit including a plurality of stacked, flexible, thermally conductive layers, a surface of each layer of the plurality of stacked, flexible, thermally conductive layers being adjacent to a surface of another layer of the plurality of stacked, flexible, thermally conductive layers.

US Pat. No. 9,396,257

QUERY BY HUMMING FOR RINGTONE SEARCH AND DOWNLOAD

MICROSOFT TECHNOLOGY LICE...

1. A method performed on a computing device that includes at least one processor and memory, the method comprising:
matching, by the computing device, an audio rendition to an audio recording based on alignment of pitch contours of the audio
rendition and a portion of the audio recording, and further based on similarities between pitch intervals and durations of
notes of the aligned rendition and the aligned portion, where the pitch contours each indicate any variation in pitch of a
note of the notes relative to a previous note of the notes, where the pitch intervals each indicate a frequency of the note,
and where the durations each indicate a length in time of the note; and

adding, by the computing device based on a weighting of the portion of the matched audio recording, the matched audio recording
to a selection set.

US Pat. No. 9,317,492

GROUPING WRITING REGIONS OF DIGITAL INK

Microsoft Technology Lice...

1. A system, comprising:
one or more processors; and
memory comprising instructions that when executed by at least one of the one or more processors perform a method for grouping
writing regions of digital ink, the method comprising:

applying a prune-and-clone technique to digital ink to generate pruned digital ink by deep-copying at least a first structure
and leaving at least a second structure as a shadow, wherein deep-copying the first structure includes copying ink stroke
data of the first structure, wherein leaving the second structure as a shadow includes avoiding copying ink stroke data of
the second structure, and wherein applying the prune-and-clone technique sets an upper-bound on an amount of structures entering
a parser of digital ink by excluding shadowed structures from entering the parser;

determining a first writing region of the pruned digital ink and a second writing region of the pruned digital ink; and
determining whether to group the first writing region with the second writing region.

US Pat. No. 9,225,975

OPTIMIZATION OF A MULTI-VIEW DISPLAY

Microsoft Technology Lice...

1. A system comprising:
a multi-view display device; and
logic configured to:
receive position data from at least one of an eye tracking component or a head tracking component, the position data indicating
that a right eye view for a right eye of a first person that is located in a first viewing zone is moving toward a second
viewing zone;

while the right eye view of the first person is in the first viewing zone and moving toward the second viewing zone:
determine right eye color or brightness parameters for the right eye view of the first person in the second viewing zone based
at least in part upon the position data,

determine whether there is already a left eye view for a left eye of a second person in the second viewing zone,
and
in an instance when the left eye view of the second person is already in the second viewing zone, average, blend, or smooth
the right eye color or brightness parameters for the right eye view of the first person with left eye color or brightness
parameters for the left eye view of the second person to obtain output color or brightness parameters; and

control output of the multi-view display device using the output color or brightness parameters for the second viewing zone
while the right eye view of the first person and the left eye view of the second person are concurrently in the second viewing
zone.

US Pat. No. 10,008,044

INTERACTIONS OF VIRTUAL OBJECTS WITH SURFACES

MICROSOFT TECHNOLOGY LICE...

1. A wearable augmented reality computing device, comprising:a see-through display device;
a sensor system including one or more sensors;
a logic subsystem; and
a storage subsystem comprising instructions stored thereon that are executable by the logic subsystem to
identify a surface via image data acquired with the augmented reality computing device;
detect a condition in which a virtual object can attach to the surface, the condition comprising a color of the surface; and
based at least on detecting the condition, display the virtual object as attached to the surface.

US Pat. No. 9,445,432

FINE-GRAINED CHANNEL ACCESS IN WIRELESS NETWORKS

Microsoft Technology Lice...

1. A wireless access point comprising:
at least one processing unit; and
at least one computer storage media storing computer readable instructions which, when executed by the at least one processing
unit, cause the at least one processing unit to:

detect a plurality of requests from a plurality of wireless nodes in a wireless local-area network to communicate over requested
subchannels of a wireless channel having multiple subchannels, wherein the requests are detected by:

comparing energy in subcarriers of the multiple subchannels to a threshold,
identifying individual subcarriers for which the energy exceeds the threshold, and
designating individual subchannels having the individual subcarriers for which the energy exceeds the threshold as the requested
subchannels;

assign different requested subchannels to different wireless nodes; and
broadcast individual subchannel assignments to the different wireless nodes.

US Pat. No. 9,443,332

REDRAWING RECENT CURVE SECTIONS FOR REAL-TIME SMOOTHING

Microsoft Technology Lice...

1. An automated digital ink curve smoothing method performed by a system which includes a computer-readable memory and a digital
display having a frame buffer and also includes hardware that supports parallel processing, the method comprising:
getting in the computer-readable memory a group of data points for a digital ink curve, the digital ink curve having a displayed
curve rendering;

calculating in parallel multiple data points for a new section of the curve rendering, said calculating comprising using the
hardware which supports parallel processing; and

smoothing the digital ink curve using at least some of the calculated data points, thereby obtaining a smoothed digital ink
curve which has a rendered spline that includes a portion that is visually smooth through at least two data points;

wherein a portion of a rendered spline is considered visually smooth when the portion has G1 continuity, and the smoothing is performed at least in part by overwriting a portion of frame buffer old data with frame buffer
new data from a checkpoint forward, and the frame buffer old data represented an old section of the curve rendering, and the
frame buffer new data represents the new section of the curve rendering.

US Pat. No. 9,286,037

PLATFORM FOR DISTRIBUTED APPLICATIONS

Microsoft Technology Lice...

1. At a computer system including at least one processor and a memory, in a computer networking environment including a plurality
of computing systems, a computer-implemented method for providing an application model to deploy and manage composite applications,
the method comprising:
an act of instantiating an application design interface that is configured to display composite application components and
one or more relationships between the components;

an act of accessing an application manifest that includes the components and component relationships of the application, wherein
each component includes information specifying how communication is to be conducted with the component, specifying a list
of imports and exports for the component, specifying a communication standard, and specifying a required level of performance
for communication with the component such that, at deployment and runtime, resources may be allocated at runtime to ensure
the required level of performance for communication will be met;

an act of the application design interface providing a set of canonical application patterns that allow users to configure
the components of the composite application according to a predefined pattern;

an act of displaying the composite application's components and component relationships in the instantiated visual application
design interface according to the application manifest; and

providing a set of extensions to an integrated development environment (IDE), the set of extensions including a visual modeling
environment and a set of IDE integration synchronizers to coordinate changes between the components and the application model.

US Pat. No. 9,253,473

LIGHT-FIELD DISPLAY

Microsoft Technology Lice...

1. A light-field display comprising:
a microlens array placed at a separation distance from a plurality of pixels of a display device; and
a processor communicatively coupled to the display device and adapted to:
determine a location of a first viewing aperture, wherein the first viewing aperture is sized to accommodate the size range
of a human pupil;

determine, for each microlens of the microlens array, the pixels of the display device that are visible at the first viewing
aperture through the microlens;

determine a location of a second viewing aperture; and
determine, for each microlens in the microlens array, the pixels of the display device that are visible at the second viewing
aperture through the microlens.

US Pat. No. 9,165,285

SHARED ATTACHMENTS

MICROSOFT TECHNOLOGY LICE...

1. A method comprising:
receiving a communication including an attachment addressed to one or more recipients including internal recipients and external
recipients;

retrieving recipient-specific metadata of each of the one or more recipients;
sending a provision message for provisioning a shared document workspace that includes a shared version of the attachment
accessible to the internal recipients of the one or more recipients based on the recipient-specific metadata;

generating a first modified communication directed to the internal recipients based in part on the communication, wherein
the first modified communication includes a link to the shared version of the attachment at the shared document workspace
and the attachment for the internal recipients, wherein the link to the shared version of the attachment at the shared document
workspace is defined by a message identification specific to a thread associated with the communication and selection of the
link to the shared version of the attachment at the shared document workspace operates to access the shared version of the
attachment at the shared document workspace;

releasing the first modified communication to the internal recipients including the attachment to assure that the internal
recipients who are offline still have access to the attachment and the link to the shared version of the attachment at the
shared document workspace; and

releasing the communication to the external recipients including the attachment without the link.

US Pat. No. 9,094,834

WHITE SPACE UTILIZATION

Microsoft Technology Lice...

1. A method, comprising:
measuring a signal of a potential radio white space frequency;
evaluating a function of the measured signal;
communicating output of the function to another device;
receiving, from the another device, evaluated data regarding the potential radio white space frequency; and
determining whether the potential radio white space frequency is an available radio white space frequency based on the output
and the evaluated data.

US Pat. No. 9,930,773

FLEXIBLE INTERCONNECT

MICROSOFT TECHNOLOGY LICE...

1. A flexible circuit element, comprising:a flexible insulating support structure;
a solid metal trace extending at least partially between a first connector and a second connector on the flexible insulating support structure; the solid metal trace comprising a gap in the region of the solid metal trace configured to repeatedly flex;
a liquid metal conductor disposed in contact with the solid metal trace in a region of the trace configured to repeatedly flex when installed in a device, the liquid metal conductor bridging the gap in the region of the solid metal trace; and
an encapsulate at least partially encapsulating the liquid metal conductor.

US Pat. No. 9,444,996

CAMERA TAP SWITCH

Microsoft Technology Lice...

1. A method comprising:
receiving, with a device, one or more motion inputs;
ascertaining whether the one or more motion inputs are one or more taps to a dedicated tap area of a housing of the device,
the dedicated tap area being formed from a material that is configured to produce an identifiable motion profile in order
to facilitate detection of taps to the dedicated tap area; and

responsive to the one or more motion inputs being one or more taps, activating a camera functionality that is associated with
the one or more taps.

US Pat. No. 9,350,075

BRANCHED MULTIPORT ANTENNAS

Microsoft Technology Lice...

1. An antenna system comprising:
a module including a dielectric support and a branched electrically conductive pathway formed on or in the support, the pathway
including at least three interconnected arms each having a proximal and a distal end, the proximal ends being joined together
or each connected to at least one other of the at least three interconnected arms, and the distal ends being separate from
each other and configured as terminals at different edges or corners of the module in such a way that a plurality of modules
can be connected together, a terminal of one module being connected to a terminal of another module.

US Pat. No. 9,563,369

FINE-GRAINED BANDWIDTH PROVISIONING IN A MEMORY CONTROLLER

MICROSOFT TECHNOLOGY LICE...

1. A memory controller, configured to:
receive memory requests from a plurality of masters via a bus fabric;
determine a priority level assigned with each of the plurality of masters;
calculate a bandwidth cost of a request based on information about a last issued request, the information about the last issued
request being received from a memory device;

determine an amount of memory data bus bandwidth consumed by each master per request on a memory data bus;
apply a quality of service (QoS) logic to compute a schedule for the memory requests based on a priority class assigned to
each master, the bandwidth cost of each request based on the information about the last issued request, and an amount of memory
data bus bandwidth consumed by each master per request, the memory data bus bandwidth consumed by each master per request
being calculated based on information about a last issued request; and

based upon the schedule,
convert the memory requests to memory commands;
send the memory commands to at least one memory device via a memory command bus; and
receive a response from the memory device via the memory data bus.

US Pat. No. 9,298,345

BLOCK VIEW FOR GEOGRAPHIC NAVIGATION

Microsoft Technology Lice...

1. A computer-implemented method comprising:
causing, with a computing device, a block view of a geographic location to be displayed as part of a user interface, the block
view displaying a first side of a travel route through the geographic location;

receiving, with the computing device, an indication of navigation within the block view;
causing, responsive to receiving the indication of navigation within the block view, a first bubble view to be displayed at
an end of the block view that corresponds to a direction of the navigation within the block view, the first bubble view displaying
the first side of the travel route and a second side of the travel route from a perspective of a traveler along the travel
route in the direction of the navigation within the block view;

causing, with the computing device and responsive to the navigation within the block view, navigation within the first bubble
view in the direction of the navigation within the block view;

receiving an indication of a navigation within the block view in a different direction;
causing, responsive to the indication of the navigation within the block view in the different direction, the first bubble
view to be removed from the user interface; and

causing, responsive to the indication of the navigation within the block view in the different direction, a second bubble
view to be displayed at another end of the block view, the second bubble view displaying one or more other geographic areas
that are adjacent to the geographic location displayed in the block view and in the different direction.

US Pat. No. 9,253,126

TRUSTED E-MAIL COMMUNICATION IN A MULTI-TENANT ENVIRONMENT

MICROSOFT TECHNOLOGY LICE...

1. A method for providing trusted e-mail communication comprising:
establishing a trust relationship with a multi-tenant e-mail provider;
identifying a trusted client tenant of the multi-tenant e-mail provider from which attribution data is requested;
receiving an e-mail message identifying an originator, wherein the multi-tenant e-mail provider performed a domain ownership
validation of the trusted client tenant and verified a header associated with the message to correctly identify the originator;

determining whether the e-mail message includes attribution data provided by the multi-tenant e-mail provider to identify
the originator of the e-mail message as the trusted sender; and

in response to determining that the e-mail message includes the attribution data provided by the multi-tenant e-mail-provider
to identify the originator as the trusted client tenant, applying an e-mail handling rule associated with e-mail messages
received from the trusted sender.

US Pat. No. 9,189,252

CONTEXT-BASED DEVICE ACTION PREDICTION

Microsoft Technology Lice...

1. A method comprising:
obtaining one or more historical contextual values from one or more contextors; the one or more historical contextual values
corresponding to historical instances where a device action was previously initiated by a particular user input provided to
a mobile computing device;

training a decision engine to learn a decision rule to automatically perform the device action on the mobile computing device,
the decision engine being trained using one or more historical contextual values corresponding to the historical instances
where the user provided the particular input to the mobile computing device that initiated the device action;

evaluating one or more current contextual values using the decision rule and determining that the one or more current contextual
values trigger the device action; and

in response to the device action being triggered by the one or more current contextual values and in the absence of the particular
user input, causing the mobile computing device to automatically perform the device action that was previously initiated by
the particular user input.

US Pat. No. 9,092,298

PACKAGING CONTENT UPDATES

Microsoft Technology Lice...

1. A computer-implemented method comprising:
receiving, via a network interface, user input from a plurality of computing devices on which respective instances of a program
execute, the user input identifying natural language content of the program to update and defining content updates of user-defined
natural language content that is configured to replace the identified natural language content;

storing, in a data store, the user input identifying natural language content of the program to update and defining the content
updates of user-defined natural language content;

determining which of the content updates stored in the data store correspond with the identified natural language content
to update;

assembling one or more content updates that correspond with the identified natural language content into a package that is
suitable for transmission over the network; and

transmitting, via the network interface, the package of content updates to another computing device on which another instance
of the program executes effective to cause the program executing on the other computing device to implement the one or more
content updates effective to replace the identified natural language content with the user-defined natural language content.

US Pat. No. 9,955,501

SCHEDULING ENHANCEMENT IN WIRELESS COMMUNICATION

MICROSOFT TECHNOLOGY LICE...

1. A method of wireless communication, comprising:generating a scheduling grant including a power control parameter and a first indicator, the first indicator indicating multiple carriers to be scheduled with the scheduling grant, the first indicator comprising at least one of:
a bitmap indicating the multiple scheduled carriers, a length of the bitmap being based at least in part on a maximum number of the multiple carriers allowed to be scheduled; or
an index indicating one of multiple scheduled carrier patterns, the indicated scheduled carrier pattern indicating a combination of multiple carriers to be scheduled with the scheduling grant;
transmitting the scheduling grant to a user equipment in one or more unlicensed bands as a single grant for the combination of multiple carriers; and
transmitting data to the user equipment on the multiple carriers according to the power control parameter included in the scheduling grant, the transmitting the data in the one or more unlicensed bands.

US Pat. No. 9,596,692

MANAGING WIRELESS RESOURCES

Microsoft Technology Lice...

1. A system, comprising:
at least one processor; and
at least one processor-readable storage medium storing instructions for execution by the at least one processor, the instructions
executable to:

receive a request for a data session;
determine, responsive to the request, whether sufficient Walsh code resources and sufficient power resources are available
to serve the data session; and

allocate available Walsh code resources and power resources to the data session responsive to determining that sufficient
resources are available;

allocate pre-empted Walsh code resources and power resources to the data session responsive to determining that insufficient
resources are available, the pre-empted Walsh code resources and power resources made available by pre-emption of a lower
priority data session that does not have a real-time requirement, the lower priority data session selected for pre-emption
from a plurality of lower priority data sessions based at least in part on a quality of service priority indicator of the
lower priority data session; and

refuse the request for the data session upon determining that pre-empting the lower priority data session would not make sufficient
resources available for the data session.

US Pat. No. 9,596,643

PROVIDING A USER INTERFACE EXPERIENCE BASED ON INFERRED VEHICLE STATE

Microsoft Technology Lice...

1. A computer implemented method, comprising:
determining that a mobile device is in a vehicle based upon at least one of mobile device-provided input information provided
by the mobile device or vehicle-provided input information provided by the vehicle;

automatically switching the mobile device from a handheld mode to a vehicle mode based upon the at least one of the mobile
device-provided input information or the vehicle-provided input information;

evaluating the at least one of the mobile device-provided input information or the vehicle-provided input information to select
a current vehicle state of the vehicle having a corresponding level of driving complexity, the current vehicle state being
selected from a plurality of predetermined vehicle states associated with different levels of driving complexity; and,

generating a user interface experience for a user who is operating the vehicle based at least in part on the corresponding
level of driving complexity of the current vehicle state, wherein the user interface experience imposes attention-related
demands on the user and wherein the user interface experience replaces at least some input commands with other input commands
that are associated with the corresponding level of driving complexity of the current vehicle state.

US Pat. No. 9,374,331

TIME-MANAGED ELECTRONIC MAIL MESSAGES

Microsoft Technology Lice...

1. A computing system having one or more processors and one or more computer storage devices stored thereon multiple instructions
that when executed by the one or more processors, causing the one or more processors to perform a method comprising:
receiving an email and placing a first copy of the received email in a first folder maintained on the computing system, the
received email having an associated value of expiration, wherein the value represents a time period for which the first copy
of the email is maintained in the first folder prior to deletion;

transmitting a second copy of the email to be displayed in a second folder appearing on a client device, the second folder
being synchronized with the first folder;

determining (i) if the time period corresponding to the value of expiration is lapsed and (ii) if the second copy of the email
is still displayed in the second folder appearing on the client device; and

in response to determining (i) that the time period corresponding to the value of expiration has lapsed and (ii) that the
second copy of the email is still displayed in the second folder appearing on the client device, automatically deleting the
first copy of the email from the first folder.

US Pat. No. 9,354,852

SATISFYING APPLICATION DEPENDENCIES

Microsoft Technology Lice...

1. A computer-implemented method comprising performing computer-implemented operations for:
receiving a request to deploy an application at a client device to make the application available for execution at the client
device;

determining whether each of one or more dependencies requisite for deploying the application is present at the client device;
upon determining that each of the one or more dependencies requisite for deploying the application is not present, configuring
the client device such that the dependencies are present and deploying the application at the client device;

upon deploying the application at the client device, intercepting an application programming interface (API) call from the
application, the API call requesting access to a resource;

selecting a copy of the resource to which the API call is to be redirected; and redirecting the API call to the resource stored
at a private location.

US Pat. No. 9,134,129

NAVIGATION DEVICE FOR DEAD RECKONING

MICROSOFT TECHNOLOGY LICE...

1. A navigation device, comprising:
a processor configured to:
track a path of the navigation device based on a first signal received by the navigation device; and
calculate a calculated position of the navigation device based on a second signal different from the first signal; and
a graphical user interface configured to display a calculated position graphical element representing the calculated position
determined based on the second signal and display a tracked position graphical element representing the path of the navigation
device determined based on the first signal, the tracked position graphical element and the calculated position graphical
element being distinguishable in appearance.

US Pat. No. 9,894,810

MODULARIZATION OF DATA CENTER FUNCTIONS

Microsoft Technology Lice...

1. A data center comprising:
a component that supplies electrical power, data connectivity, and cooling media, and that exposes a plurality of interfaces
that are configured for connecting one or more function modules to said component;

a plurality of server modules that are connected to the component through the interfaces, each of said server modules comprising
one or more racks of servers, each of said server modules receiving said electric power, said data connectivity, and said
cooling media through one of the plurality of interfaces through which said individual server modules is connected to said
component; and

one or more of said function modules, each of the function modules implementing a function that provides a capability to the
data center, each of the function modules being connected to the data center by: (a) being attached to one of said server
modules; or (b) being attached to another one of the function modules; or (c) being attached to said component, said one or
more function modules including one or more first function modules and one or more second function modules, each of said first
function modules comprising electrical wires configured to carry said electrical power, data fiber configured to carry said
data connectivity, and conduits configured to carry said cooling media, said component being composed of said one or more
first function modules, said component being extensible to accommodate an additional number of said second function modules
by addition of one of said one or more of first function modules, and being reducible to accommodate a fewer number of said
second function modules by removal of said one of said one or more first function modules.

US Pat. No. 9,286,368

LINKING FRAMEWORK FOR INFORMATION TECHNOLOGY MANAGEMENT

MICROSOFT TECHNOLOGY LICE...

1. A computing device comprising:
at least one processor;
memory coupled to the at least one processor;
an inbound workflow implemented at least in part by the at least one processor and via which at least one import connector
is configured as described by a configuration document;

an outbound workflow implemented at least in part by the at least one processor and via which an export connector is configured
as described by the configuration document;

the at least one import connector configured to import, as defined by the configuration document, data;
the export connector configured to retrieve, as defined by the configuration document, the imported data;
at least one transform module of the export connector configured to transform, as defined by the configuration document, the
retrieved data from formats of the imported data to a format associated with a target;

a join module of the export connector configured to join, as defined by the configuration document, the transformed data;
and

a conflict module of the export connector configured to perform, as defined by the configuration document, conflict resolution
on the joined data, where the conflict resolution comprises reconciling any conflicts between the data imported by each of
the at least one import connector, and where the conflict-resolved data can be traced back to a source.

US Pat. No. 9,311,225

DMA CHANNELS

Microsoft Technology Lice...

1. In a computing environment comprising one or more processors and a physical memory, a method of limiting an amount of data
that is copied when communicating between an application and a hardware device, the method comprising:
an application writing data to a physical memory using an application view of the physical memory;
mapping the data in the physical memory to a hardware driver view, usable by a hardware driver, without copying the data to
a different physical storage location; and

mapping the data in the physical memory to a hardware accessible view accessible by a hardware device without copying the
data to a different physical storage location,

wherein the physical memory comprises a mapped chunk of memory holding a plurality of control messages at different offsets
of the mapped memory for communicating with the hardware device, and wherein mapping the data to the hardware accessible view
comprises communicating to the hardware device an offset in the mapped chunk of memory corresponding to each control message,
enabling the hardware device to retrieve each control message from the mapped chunk of memory.

US Pat. No. 9,223,745

FLEXIBLE DATABASE AND ITERATIVE SPATIAL SEARCH PROCESS

Microsoft Technology Lice...

1. A method for iterative spatial searching comprising:
providing, at a host server, a user interface for spatial searching;
receiving a first user input, at the host server via the user interface, defining a first search specification;
generating an XML string encapsulating the search specification and communicating the XML string to a database server via
an interface service running on the host server;

receiving the XML string at the database server;
passing the XML string as a parameter to a stored procedure to generate a temporary table for each term in the search specification,
wherein the stored procedure parses the XML string to perform the search;

performing a search of the database server by comparing each temporary table with a pre-existing table stored in the database
server to identify any datasets satisfying the input query, the pre-existing table comprising a plurality of spatial data
classified according to one or more vocabularies which are system-defined or user-defined;

returning results comprising the identified datasets and attributes associated with each identified dataset
receiving, at the host server, the results generated by the database server in response to the XML string;
displaying the results to the user in the user interface;
receiving a second user input, at the host server via the user interface, selecting one or more attributes associated with
an identified dataset, the second user input iteratively refining the first search specification based on the first search
result;

generating a second XML string encapsulating a second search specification, the second search specification comprising the
selected one or more attributes, and communicating the second XML string to the database server via the interface service

receiving, at the database server, a second input query comprising the second XML string;
parsing the second XML string using a stored procedure to generate one or more temporary tables;
performing a search of the database server by comparing each temporary table with a pre-existing table stored in the database
server to identify any datasets satisfying the second input query; and

returning a second set of results comprising the identified datasets and attributes associated with each identified dataset
wherein the second set of results are not a subset of the first search.

US Pat. No. 9,104,628

ARRAY OBJECT CONCURRENCY IN STM

Microsoft Technology Lice...

17. A system to create a number of transactional locks corresponding to an array object, the number depending on a size of
the array object, the system comprising:
one or more processors; and
a compiler, implemented using at least one of the one or more processors, configured to access source code with a first software
transactional memory (STM) transaction that includes an access to the array object, the compiler further configured to compile
the source code to include an invocation of an STM array object primitive corresponding to the access in the first STM transaction,
the STM array object primitive configured to create either a single transactional lock or an array of transactional locks
corresponding to the array object depending on the size of the array object, the STM array object configured to create the
single transactional lock corresponding to the array object if the size of the array object is less than a size threshold,
the STM array object configured to create the array of transactional locks corresponding to the array object if the size of
the array object is greater than the size threshold in response to a determination that the array of transactional locks has
not been created for the array object to permit concurrent access to portions of the array object.

US Pat. No. 9,069,393

COMPUTER MOUSE SLEEVE

MICROSOFT TECHNOLOGY LICE...

1. A flexible sleeve for a device that is moveable between a curved configuration and a flat configuration, the flexible sleeve
comprising:
a first flexible sheet of a first hardness, the first flexible sheet having a first perimeter including a first lip edge and
a first pocket edge;

a second flexible sheet of a second hardness, different than the first hardness, the second flexible sheet having a second
perimeter including a second lip edge and a second pocket edge, the second pocket edge joined to the first pocket edge, and
the second lip edge free from the first lip edge so that the first flexible sheet and the second flexible sheet collectively
form a pocket having a mouth defined by the first lip edge and the second lip edge;

a connector joined to the mouth and configured to mate the mouth to a head of the device while the pocket substantially covers
a tail of the device.

US Pat. No. 9,357,402

GUARD BAND USAGE FOR WIRELESS DATA TRANSMISSION

Microsoft Technology Lice...

1. A system comprising:
one or more processors; and
one or more computer-readable storage media storing computer-executable instructions that are executable by the one or more
processors to perform operations including:

receiving identifiers for guard bands in a region and an indication as to whether there is service deployment in a licensed
band adjacent to a guard band in the region;

utilizing the guard band for wireless data transmission; and
determining whether to monitor for signal activity in the licensed band adjacent to the guard band based on whether there
is service deployment in the licensed band, such that in an event that signal activity is detected in the licensed band, usage
of the guard band for the wireless data transmission is adjusted.

US Pat. No. 9,264,324

PROVIDING SERVER PERFORMANCE DECISION SUPPORT

MICROSOFT TECHNOLOGY LICE...

1. A method executed in a computing device to provide server performance decision support, the method comprising:
monitoring transaction data of a server;
capturing a sample of the transaction data of the server according to a predetermined scheme;
analyzing the sample to determine performance metrics for the server by:
employing a star schema utilizing key dimensions to analyze the sample, wherein the key dimensions include one or more of:
objects of the performance metrics, counters of the performance metrics, and instances of the performance metrics; and

applying lowered responsiveness parameters to the performance metrics for the server in response to a determination that the
server has a mission critical role; and

presenting the performance metrics in a data structure.

US Pat. No. 9,152,403

VIRTUAL SOFTWARE APPLICATION DEPLOYMENT CONFIGURATIONS

Microsoft Technology Lice...

1. A computer-implemented method comprising:
deploying, by at least one processor, a virtual application package to instantiate a software application, wherein the virtual
application package is a package for the software application, and wherein the software application has one or more configuration
items; and

applying, by at least one processor, a deployment configuration comprising one or more settings for the one or more configuration
items,

wherein the deploying the virtual application package and the applying the deployment configuration are interleaved, with
a first portion of the virtual application package being deployed as a first deployed portion of the software application
and the deployment configuration being applied in the first deployed portion of the software application, followed by a second
portion of the virtual application package being deployed as a second deployed portion of the software application and the
deployment configuration being applied in the second deployed portion of the software application, and wherein the first portion
of the virtual application package is different from the second portion of the virtual application package.

US Pat. No. 9,094,837

TRANSMITTING DATA IN A WIRELESS WHITE SPACE NETWORK

MICROSOFT TECHNOLOGY LICE...

1. A computer-implemented method for transmitting data over a wireless network using white spaces, the method comprising:
determining one or more white space transmission channels for communicating with a plurality of mobile client devices, based
on a quality of the white space transmission channels, a channel switching overhead associated with serving the mobile client
devices on the white space transmission channels, and whether the mobile client devices are moving on a vehicle; and

communicating with the mobile client devices via a first white space transmission channel or a second white space transmission
channel, the first white space transmission channel being a very high frequency (VHF) channel used to transmit data when the
mobile client devices are in motion on the vehicle, the second white space transmission channel being an ultra-high frequency
(UHF) channel used to transmit data when the mobile client devices are not in motion on the vehicle.

US Pat. No. 9,952,106

INPUT DEVICE SENSOR CONFIGURATION

Microsoft Technology Lice...

1. An input device comprising:a sensor substrate having pressure sensor nodes and capacitive sensor nodes configured to detect proximity of an object that contacts the input device, the pressure sensor nodes interspersed with the capacitive sensor nodes, the pressure sensor nodes configured to conserve power in a non-operational state prior to being placed in an operational state responsive to the capacitive sensor nodes detecting the proximity of the object; and
a flexible contact layer spaced apart from the sensor substrate, the flexible contact layer configured to flex and contact the sensor substrate responsive to pressure applied by the object to initiate an input to a computing device.

US Pat. No. 9,553,732

CERTIFICATE EVALUATION FOR CERTIFICATE AUTHORITY REPUTATION ADVISING

Microsoft Technology Lice...

1. A method of advising client devices of a certificate authority trust level of a certificate authority on a server device
having a processor on behalf of a client set, the method comprising:
executing on the processor instructions that cause the server device to:
receive, from a first client device of the client set, a certificate issued by the certificate authority for a domain accessed
by the first client device and transmitted by the domain to the first client device to authenticate a resource of the domain
to the first client device, and forwarded by the first client device to the server device;

based at least on evaluating the certificate and detecting a suspicious indicator of the certificate, reduce the certificate
authority trust level of the certificate authority in a certificate authority trust set;

based at least on failing to detect the suspicious indicator of the certificate, maintain the certificate authority trust
level of the certificate authority in the certificate authority trust set; and

distribute the certificate authority trust set to the client set including the first client device and a second client device.

US Pat. No. 9,258,382

USER-SPECIFIC ROAMING SETTINGS

Microsoft Technology Lice...

1. A computing apparatus comprising:
one or more computer readable storage media;
a processing system operatively coupled to the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media for providing a roaming settings service that,
when executed by the processing system, direct the processing system to at least:

receive an update to roaming settings specific to a user indicative of at least an interaction of the user with a content
item while engaged with an instance of an application program provisioned according to a local installation model that hosts
the content item;

receive a request for the roaming settings specific to the user initiated by an instance of the application program provisioned
according to a hosted application model that hosts the content item; and

in response to the request, retrieve updated roaming settings that reflect the update to the roaming settings indicative of
at least the interaction of the user with the content item while engaged with the instance of the application program provisioned
according to the local installation model and transfer the updated roaming settings for delivery to the instance of the application
program provisioned according to the hosted application model.

US Pat. No. 9,123,159

INTERACTIVE GEO-POSITIONING OF IMAGERY

Microsoft Technology Lice...

1. A computer-implemented calibration system, comprising:
a visualization component for presenting an overlay of image data and model data in a single view for an image registration
process, the image data and model data being presented as semi-transparent layers, the image data being a selected one of
frames of video data presented in a frame format;

an interactive component for directly manipulating model points of the model data to corresponding image points on the image
data during the image registration process, the interactive component allowing manipulation of the model data so that the
model data overlies the image data or manipulation of the image data such that the image data overlies the model data; and

an interpolation component that applies an interpolation process to multiple skipped frames between selected ones of the frames,
when the system is used for more than one image registration process and non-adjacent ones of the frames are selected as respective
image data for the image registration processes, the interpolation process being based on registration results of the selected
frames.

US Pat. No. 9,104,434

PROPERTY ACCESSES IN DYNAMICALLY TYPED PROGRAMMING LANGUAGES

Microsoft Technology Lice...

1. A system for generation and execution of machine code for property accesses in a dynamically typed programming language,
the system comprising:
at least one processor;
a memory in operable communication with the processor; and
at least one of the following:
(a) a direct access code generator which emits a direct access code for a property access to access a property of an object,
the object having a type, the direct access code being emitted when the following conditions are satisfied: types identified
in a polymorphic inline cache corresponding to the property access are equivalent, and a type set retrieved from the polymorphic
inline cache matches a type set that is associated with the object's type in a compiler value table;

(b) a generated direct access code for a property access to access a property of an object, the property access belonging
to a sequence of property accesses, the object having a type and a memory region, and wherein the direct access code upon
execution accesses a value of the property located at a hard-coded offset in the object's memory region, and accesses the
value without requiring a further type check after a comparison type check determines that the object's type matches an entry
in an equivalent type cache which is associated with the sequence of property accesses; or

(c) a property equivalence record which includes one entry for each property access in a sequence of property accesses that
is guarded by a single type check.

US Pat. No. 9,215,139

SYSTEM AND METHOD FOR UTILIZING ENVIRONMENT INFORMATION IN UPNP AUDIO/VIDEO

Microsoft Technology Lice...

1. A method, comprising:
forming a UPnP first device such that the UPnP first device is operable to receive an environment variable associated with
a UPnP environment;

forming the UPnP first device such that the UPnP first device is further operable to select, in response to receiving the
environment variable, a profile associated with the received environment variable; and

forming the UPnP first device such that the UPnP first device is further operable to initiate presentation of media on a second
device in the UPnP environment associated with the selected profile.

US Pat. No. 9,207,993

DYNAMIC APPLICATION PLACEMENT BASED ON COST AND AVAILABILITY OF ENERGY IN DATACENTERS

Microsoft Technology Lice...

10. A power control system comprising:
a processor and a storage device;
a data collector stored on the storage device and executable by the processor, the data collector configured to collect computing
parameters related to a plurality of datacenter servers, the computing parameters reflecting availability of computing elements;

a simulator stored on the storage device and executable by the processor, the simulator configured to:
collect historical parameters and realtime energy parameters of the datacenter servers reflecting availability of renewable
and non-renewable energy sources and dynamic variations in energy prices, and

calculate data points relating to the historical parameters and the realtime energy parameters for designated time intervals;
a data processing engine stored on the storage device and executable by the processor, the data processing engine configured
to correlate the computing parameters and the data points for the designated time intervals from the data collector and the
simulator to produce correlated data related to the designated time intervals;

a decision component stored on the storage device and executable by the processor, the decision component configured to receive
the correlated data from the data processing engine and to make decisions based on a framework including a hosting site model,
an application instance model, and a location energy model, the decisions related to power state changes of the hosting sites
associated with the designated time intervals; and

a power state actuator stored on the storage device and executable by the processor, the power state actuator configured to
receive the decisions from the decision component and to manage power state changes associated with the received decisions
within the designated time intervals.

US Pat. No. 9,110,763

HIGHLIGHTING CHANGES ON COMPUTER DIAGRAMS

Microsoft Technology Lice...

1. A computer-implemented method, comprising:
displaying on a computer display an initial version of a diagram having one or more initial visual design elements, the initial
version of the diagram being defined by a set of initial diagram data;

making multiple changes to the initial version of the diagram to produce a modified version of the diagram having one or more
modified visual design elements, the modified version of the diagram being defined by a set of modified diagram data;

tracking the multiple changes to produce change tracking information;
storing the change tracking information, the stored change tracking information comprising additional information beyond the
initial diagram data and the modified diagram data, and the stored change tracking information representing the multiple changes
at one time; and

processing the change tracking information to automatically highlight at least a portion of the one or more modified visual
design elements in a display of the diagram, the processing of the change tracking information to automatically highlight
the at least a portion of the one or more modified visual design elements comprising automatically filtering the change tracking
information to filter out at least one of the changes to keep results of the at least one of the changes from being automatically
highlighted in the display of the diagram, with at least one of the modified visual design elements resulting from the at
least one of the changes being shown in the display of the diagram.