US Pat. No. 9,325,778

WIRELESS DATA PRIVACY MAINTAINED THROUGH A SOCIAL NETWORK

Facebook, Inc., Menlo Pa...

1. A method, comprising:
by one or more servers of a system providing an online service, sending a token to a first client computing device associated
with a first user of the online service, the token being generated by the servers based at least in part on a user identifier
of the first user;

by the servers, receiving the token from a second client computing device associated with a second user of the online service,
the token being sent to the second client computing device from the first client computing device through a wireless connection;

by the servers, verifying the token based at least in part on the user identifier of the first user and a least number of
edges traversed in a social graph from a first node corresponding to the first user to a second node corresponding to the
second user;

by the servers, determining data accessible to the second user in an event that the token is verified, wherein said determining
includes determining a list of nodes in the social graph for access to the second user, the list of nodes representing connections
common to both the first node and the second node; and

by the servers, sending to the second client computing device at least some of the data accessible to the second user.

US Pat. No. 9,504,158

METAL-FREE MONOLITHIC EPITAXIAL GRAPHENE-ON-DIAMOND PWB

Facebook, Inc., Menlo Pa...

1. An apparatus comprising:
a circuit board made of polycrystalline diamond; and
a substantially hollow tube formed within the circuit board, the tube terminating at one or more surfaces of the circuit board,
the tube comprising a layer of graphene that is operable to permit the tube to conduct electrical current.

US Pat. No. 9,047,361

TRACKING USAGE OF A MEDIA ASSET

FACEBOOK, INC., Menlo Pa...

9. A method comprising:
determining, using at least one processor, information regarding usage of a digital media file by a first user that receives
the digital media file, the information being integrated within the digital media file, wherein the digital media file comprises
a media content portion and a media history portion;

storing the information in a database;
receiving, from a second user associated with the first user, a request for the information regarding usage of the digital
media file; and

providing, to the second user, access to the information.

US Pat. No. 9,158,707

STATISTICAL CACHE PROMOTION

Facebook, Inc., Menlo Pa...

1. A system for storing data in a cache, comprising:
a processor configured to:
determine that a data record is not stored in a cache;
generate a first random value using a threshold value;
determine whether to store the data record in the cache based at least in part on the generated first random value;
generate a second random value using the threshold value; and
determine whether to store the data record in the cache based at least in part on the generated second random value; and
a memory coupled to the processor and configured to provide the processor with instructions.

US Pat. No. 9,408,329

SERVER DEVICE COOLING SYSTEM

FACEBOOK, INC., Menlo Pa...

1. A server device, comprising:
an elongated chassis having a first end and a second end;
one or more fans positioned within the elongated chassis to draw air in an initial direction from the first end and towards
the second end, the initial direction corresponding to a flow direction of the one or more fans;

a radiator block having a first end and a second end, the radiator block being oriented substantially parallel to the flow
direction of the one or more fans, the radiator block comprising a plurality of air passageways through which the air passes,
the plurality of air passageways being orientated substantially orthogonal to the initial direction;

a first baffle in contact with the first end of the radiator block to re-direct air from the initial direction through the
plurality of air passageways in a direction orthogonal to the initial direction;

a second baffle in contact with the radiator block to re-direct air passing through the plurality of air passageways back
to the initial direction and towards the second end of the elongated chassis;

one or more cold plates; and
one or more liquid tubes that couple the one or more cold plates to the radiator block.

US Pat. No. 9,317,265

OPTIMIZING INTERMEDIATE REPRESENTATION OF SCRIPT CODE FOR ATOMIC EXECUTION

Facebook, Inc., Menlo Pa...

1. A method, comprising:
generating, at a computer in a computer system, an intermediate representation of a script code, the intermediate representation
having intermediate code representing the script code;

identifying, at the computer, a unit of intermediate code, the unit of intermediate code including (i) a checkpoint that evaluates
to a first value or a second value and (ii) the intermediate code associated with the checkpoint, the intermediate code associated
with the checkpoint including:

a first set of code associated with a variable on which the checkpoint is operating, the first set of code causing the variable
to evaluate to the first value or the second value and executing prior to execution of the checkpoint, and

a second set of code that is dependent on a value of the variable; and
regenerating, by the computer and in the intermediate representation, the unit of intermediate code as a transaction, the
regenerating as a transaction including:

causing, upon execution of the intermediate representation, to abort execution of the unit of intermediate code when the checkpoint
evaluates to the second value, and

causing, upon abortion of the execution of the unit of intermediate code, a current state of execution of the intermediate
representation to revert to a state that existed before the beginning of execution of the unit of intermediate code.

US Pat. No. 9,135,555

ENHANCED PREDICTIVE INPUT UTILIZING A TYPEAHEAD PROCESS

Facebook, Inc., Menlo Pa...

1. A method comprising:
retrieving, from one or more data stores, information associated with one or more nodes, a node comprising a user node or
a concept node, each node being connected by edges to other nodes of a social graph;

detecting that a first user is entering an input term, the first user being associated with a first user node of the social
graph;

providing predictive typeahead results as the first user enters the input term, the predictive typeahead results being based
on the input term, each predictive typeahead result corresponding to at least one node of the social graph, each predictive
typeahead result including at least one image associated with one of the at least one node.

US Pat. No. 9,485,772

TECHNIQUES FOR PEER-TO-PEER NETWORK SHARING

FACEBOOK, INC., Menlo Pa...

1. A computer-implemented method, comprising:
transmitting an offer from a first mobile device to a second mobile device, the offer comprising a request for the second
mobile device to act as a proxy for the first mobile device for the performance of network services and an amount of sharing
credits to be transferred from a first account to a second account with a sharing authority when the network services are
performed, the first account associated with the first mobile device, the second account associated with the second mobile
device;

receiving an offer acceptance from the second mobile device;
receiving configuration information; and
configuring the first mobile device to use the second mobile device as a network proxy using the configuration information.

US Pat. No. 9,196,060

TEXTURE REPOSITORY FOR IMAGE PROCESSING APPLICATIONS

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
storing a plurality of canvases in a data store, each canvas having a resolution and associated with a texture identifier
associated with a texture to be applied to an image by an image manipulation application, wherein the canvas is invariant
with respect to image content of the image to which the texture is applied;

receiving a request for a canvas from the image manipulation application that is configured to apply the requested canvas
to alter one or more images, the request specifying a target texture identifier and a target resolution for the requested
canvas;

determining whether the requested canvas exists among the stored plurality of canvases;
if the requested canvas exists among the stored plurality of canvases, providing the requested canvas to the image manipulation
application;

if the requested canvas does not exist among the stored plurality of canvases, generating a canvas, the generating comprising
at least one of:

transforming an existing canvas from the stored plurality of canvases, the existing canvas associated with a texture identifier
matching the target texture identifier, the transforming including resizing the existing canvas to the target resolution,
and

executing a procedural generation function associated with the target texture identifier to procedurally generate a canvas
at the target resolution; and

providing the generated canvas to the image manipulation application.

US Pat. No. 9,177,206

AUTOMATIC PHOTO ALBUM CREATION BASED ON SOCIAL INFORMATION

Facebook, Inc., Menlo Pa...

1. A method comprising:
storing user profiles for each of a plurality of users of a social networking system;
storing information for each of a plurality of objects in the social networking system;
storing a plurality of connections between each of the plurality of the users and the other users or objects in the social
networking system;

accessing a plurality of images provided by a posting user of the plurality of users;
receiving a request to access an album, the album comprising a set of images selected from the plurality of images;
identifying one or more tagged objects in the images in the album, where a tagged object is an object of the plurality of
objects in the social networking system;

computing a score for one or more of the plurality of images, where the score for an image is based at least in part on an
association between information from a user profile of the posting user and the one or more tagged objects in the image;

selecting a subset of the plurality of images based on the computed scores, wherein one or more of the computed scores are
adjusted to select a diverse subset of images that include a diversity of tagged objects across the one or more of the plurality
of images; and

sending for display to the viewing user an album, the album comprising the selected subset of the plurality of images.

US Pat. No. 9,161,303

DUAL MODE WIRELESS COMMUNICATIONS DEVICE

Facebook, Inc., Menlo Pa...

1. A wireless communications device comprising:
a battery configured to provide power to operate the wireless communications device in a first mode of operation;
an RF interface configured to:
receive an RF signal; and
generate operating power for direct use by the wireless communications device from the RF signal in a second mode of operation;
and

a processing section comprising one or more processors;
wherein the wireless communications device is configured to:
operate on battery power in the first mode of operation;
detect available RF power;
enter the second mode of operation from the first mode of operation, wherein, during the second mode of operation, the generated
operating power is used for operation of the device; and

detect a fill state of a memory and, based on the fill state, change the processing section from the second mode to the first
mode and conduct data transfer with the memory.

US Pat. No. 9,131,381

MOBILE DEVICE AUTO WIPE

Facebook, Inc., Menlo Pa...

1. A method comprising:
by a mobile computing device, providing on a display of the mobile computing device a visual cue to a user to prompt the user
to perform an incorrect touch gesture;

by the mobile computing device, automatically determining an occurrence of a security event associated with the mobile computing
device, wherein the security event comprises the user performing the incorrect touch gesture to unlock the mobile computing
device; and

by the mobile computing device, automatically erasing all software and data on the mobile computing device.

US Pat. No. 9,069,449

METHODS OF GRANTING PERMISSION TO ANNOTATE DIGITAL ITEMS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
providing co-users associated with a user of a communications system access to digital items associated with the user of the
communication system;

receiving a first annotation for a specific digital item from a specific first co-user;
identifying a first indication from the user of whether the specific first co-user is to be granted permission to annotate
the specific digital item;

if the first indication from the user grants the specific first co-user permission to associate annotations with the specific
digital item, posting the first annotation with the specific digital item such that the first annotation is available to the
co-users when accessing the specific digital item; and

if the first indication from the user denies the specific first co-user permission to associate annotations with the specific
digital item, allowing only the user to access the first annotation.

US Pat. No. 9,606,717

CONTENT COMPOSER

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
creating and presenting a first content item on a user interface (UI) of an electronic device for editing by a first user;
presenting a plurality of icons respectively representing a plurality of content types;
in response to the first user selecting a specific icon representing a specific content type, presenting a plurality of second
content items of the specific content type in an icon-series portion concurrently with the first content item and the plurality
of icons on the UI, wherein the icon-series portion is presented by gradually sliding the icon-series portion into view until
the plurality of second content items are displayed on the UI;

in response to the first user selecting a specific second content item,
visually displaying dragging of the second content item from a position in the icon-series portion and then dropping of the
second content item to a predetermined position on the UI to represent the second content item being incorporated into the
first content item, the predetermined position being associated with the first content item and separate from the position
associated with the plurality of second content items, and

removing the icon-series portion comprising the plurality of second content items from display on the UI; and
adjusting the second content item to a final size at the predetermined position on the UI based on the specific content type
of the specific second item.

US Pat. No. 9,208,189

DISTRIBUTED REQUEST PROCESSING

Facebook, Inc., Menlo Pa...

1. A system for processing a request, comprising:
a communication interface configured to receive a request associated with an associated identifier; and
a processor configured to:
select among a group of request handlers a selected request handler to process the request, wherein the selection of the selected
request handler is based at least in part on the associated identifier; and

process the request using an included identifier included in the request,
wherein processing the request includes using a local version of a data associated with the included identifier and stored
in a storage managed by the selected request handler,

processing the request includes determining a hash value using at least the included identifier and using the hash value to
obtain the local version of the data,

the local version of the data has been updated using a centralized version of the data,
the centralized version of the data has been determined using processing performed at least by a plurality of request handlers
included in the group of request handlers, and

the centralized version of the data has been determined using processing performed at least by the selected request handler.

US Pat. No. 9,201,904

SHARING TELEVISION AND VIDEO PROGRAMMING THROUGH SOCIAL NETWORKING

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computer systems of a social-networking system, identifying a first user viewing video content on a first display
device;

by one or more computer systems of the social-networking system, identifying the video content being viewed on the first display
device by the first user;

by one or more computer systems of the social-networking system, determining a second display device associated with the first
user;

by one or more computer systems of the social-networking system, accessing chat messages from second users, wherein the chat
messages are associated with the video content;

by one or more computer systems of the social-networking system, applying an automatic filter to the chat messages to identify
those that are of particular relevance to the first user; and

by one or more computer systems of the social-networking system, sending one or more instructions to the second display device
to display the chat messages, as filtered, to the first user;

wherein a chat message that is of particular interest to the first user, as identified according to the automatic filter:
is associated with a second user who is a friend of the first user as determined from a social graph of the social-networking
system;

is associated with a second user who has a level of affinity with the first user that is at or above a particular affinity
threshold, as determined from a social graph of the social-networking system;

has received a number of endorsements from second users that is at or above a particular endorsement threshold; or
has received a number of replies from second users that is at or above a particular reply threshold.

US Pat. No. 9,055,050

USER AUTHENTICATION OF APPLICATIONS ON THIRD-PARTY DEVICES VIA USER DEVICES

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving, at a first computing device, an access token from a second computing device, the access token being generated by
the second computing device for a specific software application executing on a specific computing device;

storing, by the first computing device, the access token;
receiving, at the first computing device, a request for the access token from a software application executing on a third
computing device;

verifying, by the first computing device, whether the software application is the same as the specific software application
and the third computing device is the same as the specific computing device for which the access token is generated; and

sending, by the first computing device, the access token to the third computing device only when the software application
is the same as the specific software application and the third computing device is the same as the specific computing device
for which the access token is generated.

US Pat. No. 9,361,659

SYSTEMS AND METHODS FOR OPTIMIZING ORDER OF IMAGE TRANSFORMATIONS

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
applying, by a computer system, one or more ordering cost functions to each possible transformation ordering of a plurality
of image transformations of a user-selected transformation ordering, each ordering cost function comprising a plurality of
transformation cost functions, and each transformation cost function being associated with an image transformation and based
on a per-pixel cost value;

determining, by the computer system, computing costs for each of the one or more applied ordering cost functions; and
selecting, by the computer system, an optimal transformation ordering of the plurality of image transformations based on the
determined computing costs.

US Pat. No. 9,070,363

SPEECH TRANSLATION WITH BACK-CHANNELING CUES

Facebook, Inc., Menlo Pa...

1. A method of translating speech from a first language to a second language, the method comprising:
recognizing speech by a speaker;
identifying the speech by the speaker as being in the first language;
initiating a translation of the speech in the first language, by a speech translation system, into the second language;
recognizing, by the speech translation system, one or more prosodic cues in the speech in the first language, one or more
of the prosodic cues being of a specific type of prosodic cue;

responsive to recognizing the prosodic cues, producing a back-channel cue corresponding to the specific type of prosodic cue;
providing, by the speech translation system, the produced back-channel cue to the speaker, the back-channel cue comprising
an audible confirmation that initiation of the translation of the speech in the first language has occurred; and

determining a translation result in the second language.

US Pat. No. 9,164,924

SOFTWARE CRYPTOPROCESSOR

FACEBOOK, INC., Menlo Pa...

1. A method for securing information stored by a computer, the computer having a processor and a main memory, the processor
having a core with cache memory for storing instructions for execution by the core, the method comprising:
loading an agent into the processor and storing the agent into the cache memory so that the agent is resident in the cache
memory; and

under control of the core executing instructions of the agent:
upon detecting transmission of encrypted content from the main memory to the cache memory,
retrieving the encrypted content from the cache memory;
decrypting the encrypted content; and
storing the decrypted content into the cache memory;
when the decrypted content is to be evicted from the cache memory to the main memory,
retrieving the decrypted content from cache memory;
encrypting the decrypted content as newly encrypted content;
storing the newly encrypted content into the cache memory so that the encrypted content, rather than the decrypted content,
is evicted;

computing a validation value for the newly encrypted content; and
associating the newly encrypted content with the validation value for detecting a change to the newly encrypted content that
is stored in the main memory;

wherein, after the newly encrypted content is transmitted from the main memory to the cache memory and prior to decrypting
the newly encrypted content, the validation value for the newly encrypted content is re-computed and the re-computed validation
value is compared to the validation value associated with the newly encrypted content to detect changes to the newly encrypted
content.

US Pat. No. 9,130,997

UPDATING SYSTEM BEHAVIOR DYNAMICALLY USING FEATURE EXPRESSIONS AND FEATURE LOOPS

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
maintaining, in an online system, a set of feature loops, wherein a feature loop comprises an expression capable of being
processed by a computer processor to map a set of input values to an output value, the expression evaluating to a value describing
one or more entities in the online system, wherein evaluating the feature loop comprises aggregating values of the expression
across a plurality of user actions;

receiving information describing a modification to the set of feature loops, wherein the modification to the set of feature
loops is performed while the online system is executing;

responsive to the set of feature loops being modified, evaluating feature loops of the set of modified feature loops for a
subsequent user action; and

responding to the subsequent user action based on the values of feature loops from the set of modified feature loops.

US Pat. No. 9,510,191

AUTHORIZATION OF NETWORK ADDRESS TRACKING

FACEBOOK, INC., Menlo Pa...

1. A computer-implemented method for providing user tracking authorization, comprising:
detecting, by a mobile device, a signal from a kiosk, the mobile device associated with a unique identifier;
extracting, by the mobile device, a verification from the signal from the kiosk, wherein the verification is associated with
a kiosk identifier, wherein the kiosk identifier includes a rotating key identifier and a local identifier;

determining, by the mobile device, that the kiosk is authentic using the verification; and
transmitting, by the mobile device, an authorization to track the unique identifier, wherein the authorization is determined
at least based on the kiosk identifier.

US Pat. No. 9,367,625

SEARCH QUERY INTERACTIONS ON ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising:
accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges
between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to a first user associated with an online social network; and
a plurality of second nodes that each correspond to a concept or a second user associated with the online social network;
receiving from the first user a structured query comprising references to one or more selected nodes from the plurality of
nodes and one or more selected edges from the plurality of edges;

generating a query command based on the structured query, wherein the query command comprises an inner query constraint and
an outer query constraint;

identifying a first set of nodes matching the inner query constraint and at least in part matching the outer query constraint;
identifying a second set of nodes matching the outer query constraint; and
generating one or more search results based on the first and second sets of nodes, wherein each search result corresponds
to a node of the plurality of nodes.

US Pat. No. 9,148,068

BACKUP POWER SYSTEM FOR RACK-MOUNTED EQUIPMENT

Facebook, Inc., Menlo Pa...

1. A power supply system comprising:
an input from three-phase alternating current (AC) power grid lines;
an output for supplying electrical power to rack-mounted computing equipment;
a main power circuit including a power factor correction (PFC) module and a PFC bulk capacitor coupled to the output, wherein
the main power circuit is configured to draw power from one or more of the three-phase power grid lines; and

a bypass power circuit including a rectifier and a shelf bulk capacitor coupled in parallel to the PFC bulk capacitor, wherein
the bypass power circuit is configured to draw power from each of the power grid lines, and rectify the three-phase AC current
from the power grid lines to produce a rectified output across the shelf bulk capacitor,

wherein the main power circuit is configured to provide electrical power to the output during normal operation, and the bypass
power circuit is configured to provide electrical power to the output during bypass operation upon failure of the PFC module.

US Pat. No. 9,407,592

ENABLING MAPPING IDENTIFICATION OF ONLINE IDENTITIES BETWEEN DIFFERENT MESSAGING SERVICES

FACEBOOK, INC., Menlo Pa...

1. A method computer-implemented method for identifying identities in a message service, the method comprising:
identifying, using at least one processor, a first messaging service list for a first messaging service, the first messaging
service list being associated with a user and including user identities for other users of the first messaging service;

identifying a mapping of user identities associated with the first messaging service to user identities associated with a
second messaging service, the second messaging service being different from the first messaging service;

determining user identities for the second messaging service that correspond to entries in the first messaging service list
based, at least in part, on the mapping;

registering a user of the first messaging service with the second messaging service; and
populating a second messaging service list for the user with at least one of the identified user identities for the second
messaging service that mapped to an entry in the first messaging service list.

US Pat. No. 9,122,381

SHARING ANNOTATIONS OF DIGITAL ITEMS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving, at one or more servers, a request from a user of a social network to navigate to a collection of digital items
associated with a co-user of the social network;

providing to the user, by the one or more servers, a graphical user interface comprising digital items posted to the social
network by the co-user;

receiving, at the one or more servers, a comment from the user to add to the collection of digital items associated with the
co-user;

determining whether the user is on a friend list of the co-user;
identifying permissions set by the co-user granting access to the digital items posted to the social network by the co-user;
and

posting the comment from the user to the collection of digital items associated with the co-user based on the user being on
the friend list of the co-user and the user being granted access to the digital items by the permissions set by the co-user.

US Pat. No. 9,491,251

TRANSMISSION OF NOTIFICATIONS TO MULTIPLE DEVICES ASSOCIATED WITH A USER

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
generating a notification associated with a user;
identifying a plurality of user devices eligible to receive the notification, each user device associated with the user and
configured to provide an acknowledgment responsive to the user interacting with the notification;

selecting a user device from the plurality of user devices based at least in part on a profile comprising a frequency with
which user interactions are received from user devices in the plurality of user devices;

transmitting the notification to the selected user device;
identifying a set of acknowledgment times received from the selected user device for previous messages sent to the selected
user device;

determining, for the selected user device, a percentile of the acknowledgment times based on a drop-off point in the distribution
of the set of acknowledgment times of the selected user device;

determining a percentile acknowledgement time corresponding to the determined percentile of the acknowledgment times;
determining an acknowledgment delay period based on the percentile acknowledgement time;
responsive to an acknowledgment not being received within the acknowledgement delay period:
selecting an additional user device based at least in part on the profile;
removing the selected user device from the plurality of user devices eligible to receive the notification; and
transmitting the notification to the selected additional user device.

US Pat. No. 9,369,983

STATISTICS FOR CONTINUOUS LOCATION TRACKING

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing devices, receiving, from each of a plurality of mobile computing devices associated with a plurality
of users, a plurality of data sets that each comprise data identifying:

the user that the data set corresponds to;
one or more locations where the user was or is at;
an acceleration or speed associated with the user, and
for each of the locations, a corresponding time when the user was or is at the location;
by one or more computing devices, for a first user from the plurality of users, identifying one or more second users of the
plurality of users, wherein:

each of the second users have a social-networking connection with the first user; and
a data set corresponding to each of the second users and a data set corresponding to the first user share:
one or more previous common locations; and
for each of the previous common locations, a common time when both the second user and the first user were at the common location;
by one or more computing devices, generating one or more statistics based at least in part on the data sets corresponding
to the second users, wherein the statistics represent behavioral patterns of the second users, and one or more of the behavioral
patterns comprises an inferred activity of the second users based at least in part on the accelerations or the speeds;

by one or more computing devices, generating a recommendation for a current time for the first user based at least in part
on one or more of the statistics, wherein:

the recommendation comprises one or more activities at a particular location where at least one of the second users is located
at the current time;

the recommendation corresponds to the inferred activity of the second users; and
the first user is not associated with the one or more activities at the particular location; and
by one or more computing devices, sending the recommendation to the first user.

US Pat. No. 9,319,472

FACILITATING GENERATION OF USER CONTENT FOR AGGREGATED STORY UNITS

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
receiving, from a viewing user of a social networking system, a request for stories describing one or more actions of one
or more users of the social networking system;

identifying one or more users of the social networking system connected to the viewing user;
obtaining interaction data describing one or more actions performed by the one or more users connected to the viewing user
on one or more objects associated with the social networking system;

generating an aggregated story unit from the interaction data, the aggregated story unit including two or more content items
associated with a common characteristic and identifying a plurality of actions performed by the one or more users connected
to the viewing user;

determining, based on one more input selection policies, whether to include in the aggregated story unit:
(1) an input element associated with a collection of all of the content items included in the aggregated story unit, or
(2) an input element associated with each individual content item included in the aggregated story unit,
wherein an input selection policy is based at least in part on prior user interactions with other aggregated story units including
other content items associated with the same common characteristic as the content items included in the aggregated story unit;
and

providing, for display to the viewing user, the aggregated story unit with one or more input elements based on the determining.

US Pat. No. 9,413,812

MANAGING INFORMATION ABOUT RELATIONSHIPS IN A SOCIAL NETWORK VIA A SOCIAL TIMELINE

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
maintaining in a computer system a plurality of relationships among a plurality of users of a social networking system;
receiving information at a social networking system about a plurality of events that pertain to the users of the social networking
system;

generating a social timeline, the social timeline comprising a visual representation for a subset of the plurality of the
events associated with a subject user of the social networking system;

sending the social timeline for display to a viewing user of the plurality of users of the social networking system;
receiving from the viewing user a request to add a new event to the social timeline;
editing the social timeline, based on the request, to include the new event; and
sending the edited social timeline for display to the viewing user.

US Pat. No. 9,344,338

FACILITATING FILE TRANSFERS USING AN ICON

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
providing a stand-alone graphical object that represents a first user of a communications program that facilitates communications
across a network, the stand-alone graphical object being configured to allow a user to perform an action otherwise available
through an interface of the communications program regardless of whether the interface of the communications program is running
when an operation corresponding to the action is performed via the stand-alone graphical object;

detecting, using at least one processor, that a second user has positioned a first icon representing a file to be transferred
from the second user to the first user of the communications program on or near the stand-alone graphical object; and

sending the file represented by the first icon to the first user of the communications program regardless of whether the interface
of the communications program is running.

US Pat. No. 9,298,295

GESTURES FOR AUTO-CORRECT

Facebook, Inc., Menlo Pa...

1. A method comprising:
in response to a user entering a string of one or more characters on a computing device, displaying the string on a display
of the computing device and determining a plurality of auto-suggestion for the string;

displaying all or a portion of exactly one of the auto-suggestion on the display with the string, wherein the displayed auto-suggestion
is located substantially adjacent to the string and wherein no other auto-suggestion of the plurality of auto-suggestions
is displayed simultaneously;

in response to a swipe touch gesture on the display detected over a region defined by the displayed auto-suggestion, causing
the displayed auto-suggestion to disappear;

determining a second one of the auto-suggestions for the string; and
displaying all or a portion of the second auto-suggestion on the display with the string.

US Pat. No. 9,264,466

DISPLAYING NEWS TICKER CONTENT IN A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A method comprising:
monitoring actions associated with users connected to a target user in a social networking system;
responsive to identifying a first action associated with a first user connected to the target user, updating a news ticker
interface in real time to display the first action and the associated first user as a story within the news ticker interface,
the news ticker interface displaying a plurality of stories; and

responsive to receiving a selection of a displayed story from a user within the news ticker interface:
displaying a story interface containing additional information related to the context of the selected story;
identifying a second action of a second user connected to the first user associated with the selected story; and
displaying information related to the second action in the story interface.

US Pat. No. 9,177,072

SOCIAL CACHE

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving, in a networking platform system, a data item generated by a posting user of the networking platform system;
determining, by the networking platform system, a popularity score associated with the posting user, wherein determining the
popularity score includes:

computing a friend interest value and a mutual-friend interest value, the friend interest value computed as an average number
of interest indicators, received from multiple users having a social network connection to the posting user in a social network
of the posting user, for past data items of the posting user, the mutual-friend interest value computed as the average number
of interest indicators received from a subgroup of users connected within corresponding social networks of one another in
addition to being connected within the social network of the posting user;

determining an interest probability based on the friend interest value and the mutual-friend interest value; and
computing the popularity score based on the interest probability;
determining, by the networking platform system, a queue location for the data item based on the popularity score, the queue
location being a location in a cache queue of the networking platform system; and

inserting the data item into the cache queue at the determined queue location.

US Pat. No. 9,262,044

METHODS, SYSTEMS, AND USER INTERFACES FOR PROMPTING SOCIAL VIDEO CONTENT INTERACTION

FACEBOOK, INC., Menlo Pa...

1. A method, comprising:
responsive to a performance of a video asset reaching a first interaction point where a representation of a person, place,
or thing (PPT) is included in an audio track of the video asset or depicted in a video track of the asset, causing a first
interaction user interface (UI) prompt to be presented to a first user of a social networking system using a display, the
first interaction UI prompt comprising a first interaction UI element allowing the first user to provide a first input that
is related to the PPT;

receiving the first input that is related to the PPT based on the first user utilizing the first interaction UI element of
the first interaction UI prompt;

responsive to a second performance of the video asset reaching the first interaction point, causing a second interaction UI
prompt to be presented to a second user of the social networking system using a second display of a second user device, the
second interaction UI prompt comprising a second interaction UI element allowing the second user to provide a second input
that is related to the PPT;

receiving the second input that is related to the PPT based on the second user utilizing the second interaction UI element
of the second interaction UI prompt; and

causing a post to be presented to one or more other users of the social networking system in response to the first and second
inputs, wherein the post references both of the first and second users and the PPT based upon an aggregation of the first
and second inputs.

US Pat. No. 9,363,223

OPTIMIZING MESSAGES TO USERS OF A SOCIAL NETWORK USING A MESSAGE THAT INCLUDES A USER'S PERFORMANCE OF A DESIRED ACTIVITY ASSOCIATED WITH A LINK INCLUDED IN THE MESSAGE

Facebook, Inc., Menlo Pa...

1. A method comprising:
logging one or more user activities associated with a user of an online system, the user activities including the user's responses
to one or more messages sent to the user, time that the user is active on the online system, and a type of activity performed
by the user on the online system;

generating at least one message to send to the user when the logged activities indicate that the user's last engagement with
the online system occurred more than a predetermined time interval ago, the at least one message including a link associated
with a desired activity;

applying attributes of the one or more messages sent to the user and the logged activities to a message response prediction
model for the user, the message response prediction model determining a prediction of whether the user's response to receiving
the at least one message will include the user's performance of the desired activity associated with the link included in
the at least one message; and

determining whether to send the generated message based on the prediction, the message being sent when the prediction indicates
more than a threshold likelihood of the user's response including the user's performance of the desired activity.

US Pat. No. 9,280,511

SHARING DIGITAL ITEMS

FACEBOOK, INC., Menlo Pa...

1. A method, comprising:
receiving, from a user, a plurality of digital items to share with co-users;
accessing, from one or more computer-readable storage devices, a first list of one or more co-users selected by the user,
the first list identifying a first set of co-users granted permission, by the user, to view the plurality of digital items
received from the user;

receiving an annotation of a digital item of the plurality of digital items from a first co-user on the first list;
adding the annotation of the digital item to a comment list associated with the digital item, the comment list comprising
annotations of the digital item;

accessing a second list of one or more co-users designated by the first co-user, the second list comprising at least one co-user
not on the first list;

identifying an access control permission associated with the digital item set by the user;
if the access control permission is activated, providing the user, the first set of co-users on the first list, and the at
least one co-user on the second list not on the first list, access to the digital item and the comment list associated with
the digital item; and

if the access control permission is not activated, providing the user and the first set of co-users on the first list access
to the digital item and the comment list associated with the digital item while preventing the at least one co-user on the
second list not on the first list access to the digital item and the comment list associated with the digital item.

US Pat. No. 9,165,069

RANKING VIDEOS FOR A USER

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing devices, determining a plurality of videos a user may watch;
by one or more computing devices, for each of the videos:
determining a coefficient value for each of a plurality of coefficient factors comprising:
a number of others users currently watching the video that are connected to the user within a social-networking system;
a number of users, regardless of connection to the user within the social-networking system, that are currently watching the
video;

an immediacy of the video; and
a current value to an entity of the user watching the video; and
calculating a video coefficient based on the coefficient values of each of the plurality of coefficient factors;
by one or more computing devices, ranking the videos based on their video coefficients; and
by one or more computing devices, providing the ranking of the videos for presentation to the user.

US Pat. No. 9,391,934

CAPTURING AND SENDING MULTIMEDIA AS ELECTRONIC MESSAGES

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
providing, to a touch screen display of a computing device, a messaging graphical user interface comprising a communication
thread comprising a plurality of electronic messages exchanged between a user and one or more co-users;

detecting, by at least one processor of the computing device, a selection of a camera viewfinder input control;
providing a camera viewfinder that provides a live data stream from a camera of the computing device in the messaging graphical
user interface in response to the detection of the selection of the camera viewfinder input control;

detecting, by the at least one processor of the computing device, a first type of user interaction with the camera viewfinder;
and

in response to the detected first type of user interaction, capturing, by the camera of the computing device, a multimedia
content item and sending, by the computing device, the captured multimedia content item as an electronic message.

US Pat. No. 9,298,835

SOCIAL STATIC RANKING FOR SEARCH

Facebook, Inc., Menlo Pa...

1. A method comprising, by one or more computing devices:
receiving, from a client device of a first user, a query from the first user;
searching a social graph to identify one or more nodes of the social graph that are relevant to the query;
obtaining a static rank for each identified node, wherein the static rank is based at least in part on a number of edges of
a particular edge type that are connected to the node in the graph or attributes of edges connected to the node in the graph
and based at least in part on a value for each node assigned to one of a plurality of search indices, wherein the value is
calculated based at least in part on one or more factors, wherein the factors comprise a number of edges of a particular edge
type that are connected to the node in the graph or attributes of edges connected to the node in the graph, and wherein the
value comprises a combination of sub-values, each sub-value being calculated for one of a plurality of edge types connected
to the node; and

sending to the client device of the first user for display, a search-results page responsive to the received query, the search-results
page comprising reference to one or more nodes having a static rank greater than a threshold rank.

US Pat. No. 9,286,378

SYSTEM AND METHODS FOR URL ENTITY EXTRACTION

Facebook, Inc., Menlo Pa...

1. A distributed computer system implemented method comprising:
extracting, by a computer system, identifiers from URLs, each of the identifiers identifying an entity associated with a URL
from among the URLs;

classifying the extracted identifiers of the URLs as parent identifiers and child identifiers;
designating, by the computer system, a sequence of identifiers as attributable for a URL from among the URLs by:
(1) determining whether any of one or more child identifiers of a parent identifier of the URLs account for more than a threshold
percentage of traffic flowing from the computer system to an entity associated with the parent identifier,

(2) responsive to a negative determination, designating a sequence of identifiers including the parent identifier as attributable,
and

(3) responsive to a positive determination, designating a sequence of identifiers including the one or more child identifiers
as attributable; and

attributing responsibility for each of the URLs to the entity associated with one of the designated attributable sequences
of the URL.

US Pat. No. 9,361,344

SYSTEM AND METHOD FOR DISTRIBUTED DATABASE QUERY ENGINES

FACEBOOK, INC., Menlo Pa...

1. A system, comprising:
a gateway server configured to generate a plurality of partial queries from a database query for a database containing data
stored in a distributed storage cluster that has a plurality of data nodes, and to construct a query result based on a plurality
of intermediate results; and

a plurality of worker nodes, the worker nodes being separate from the data nodes, wherein each worker node of the plurality
of worker nodes is configured to process a respective partial query of the plurality of partial queries by scanning data related
to the respective partial query and stored on at least one data node of the distributed storage cluster, and wherein each
worker node of the plurality of worker nodes is further configured to generate an intermediate result of the plurality of
intermediate results that is stored in a memory of that worker node;

wherein the gateway server is further configured to identify a straggling worker node and further divide a partial query that
is assigned to the straggling worker node into a plurality of subordinate partial queries and assign the plurality of subordinate
partial queries to some of the plurality of worker nodes, and wherein the partial query is divided into the subordinate partial
queries based on quantity and location information of input file blocks of the query.

US Pat. No. 9,307,051

SELECTING CONFIGURATIONS FOR PRESENTATION OF STORY UNITS TO SOCIAL NETWORKING SYSTEM USERS

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
using a computer hardware processor to perform steps comprising:
presenting one or more story units having a particular type to a plurality of users of a social networking system in an initial
configuration, wherein a story unit includes one or more stories describing actions performed by a user of the social networking
system and having a common characteristic, wherein the actions described by the one or more stories in a story unit are defined
by an external system connected to the social networking system;

presenting one or more story units having the particular type to an additional plurality of users of the social networking
system in an alternative configuration, the alternative configuration being different from the initial configuration;

capturing different types of interactions by more than one distinct user of the plurality of users of the social networking
system with the one or more story units presented in the initial configuration;

capturing different types of interactions by the additional plurality of users of the social networking system with the one
or more story units presented in the alternative configuration;

associating weights with different types of interactions performed by the plurality of users of the social networking system
with the one or more story units presented in the initial configuration;

generating an interaction score for the initial configuration based on a number for each of the different types of interactions
performed by the plurality of users and the associated weights;

associating weights with different types of interactions performed by the additional plurality of users of the social networking
system with the one or more story units presented in the alternative configuration;

generating an interaction score for the alternative configuration based on a number for each of the different types of interactions
performed by the additional plurality of users and the associated weights;

selecting a default configuration based at least in part on the interaction score for the initial configuration and the interaction
score for the alternative configuration; and

presenting a story unit having the particular type to a viewing user in the selected default configuration.

US Pat. No. 9,298,827

MEDIA RECORDER

Facebook, Inc., Menlo Pa...

1. A system comprising:
an API server configured to receive requests to record media retrieved from websites, the requests being received from remote
clients of the API server;

a plurality of recorders each configured to record a received request to record media retrieved from websites that includes
a specified type of media using a virtualized browser environment disposed on the respective recorder; and

a recording queue manager configured to:
determine whether a first recorder of the plurality of recorders is available to process the received request to record media
retrieved from websites,

responsive to a determination that the first recorder is unavailable to process the received request to record media retrieved
from websites, determine a request type of the received request, the request type of the received request associated with
a type of content associated with the request, and

assign requests to record media retrieved from websites to a second recorder, the second recorder configured to process requests
to record media retrieved from websites having a type that matches the determined type of the received request.

US Pat. No. 9,471,692

SEARCH QUERY INTERACTIONS ON ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving, from a client system of a first user of an online social network, a structured query comprising references to one
or more selected objects associated with the online social network;

generating a query command based on the structured query, wherein the query command comprises an inner query constraint and
an outer query constraint;

identifying a first set of objects matching the inner query constraint and at least in part matching the outer query constraint;
identifying a second set of objects matching the outer query constraint; and
generating one or more search results based on the first and second sets of objects, wherein each search result corresponds
to an object of the plurality of objects.

US Pat. No. 9,360,996

INTELLIGENTLY ENABLED MENU CHOICES BASED ON ONLINE PRESENCE STATE IN ADDRESS BOOK

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
detecting, within a first user interface area of a first communication system, a selection of a contact within the first communication
system by a user of the first communication system;

determining, by at least one processor, whether the contact is on a list of contacts of the user with a second communication
system stored on a server by:

identifying a screen name from an e-mail address corresponding to the contact in the first communication system; and
utilizing the screen name from the e-mail address corresponding to the contact in the first communication system to identify
a screen name corresponding to the contact in the second communication system;

enabling one or more menu options based upon whether the contact is on the list of contacts of the user with the second communication
system, wherein the enabled one or more menu options when the contact is on the list of contacts of the user with the second
communication system are different from the enabled one or more menu options when the contact is not on the list of contacts
of the user with the second communication system; and

presenting to the user, within a second user interface area, the enabled one or more menu options that are based upon whether
the contact is on the list of contacts of the user with the second communication system.

US Pat. No. 9,299,230

MODULAR EXOSKELETAL FORCE FEEDBACK CONTROLLER

Facebook, Inc., Menlo Pa...

1. A force feedback controller comprising:
a wrist module, said wrist module including a first limb attachment configured to couple said force feedback controller to
the user's arm; and

a grip module coupled to said wrist module, said grip module being moveable in a first and second direction relative to said
wrist module, said first direction being substantially perpendicular to said second direction, said grip module including:

a linear slide mechanism having a grip attachment, said grip attachment constrained to linear motion in a third direction
substantially perpendicular to at least one of said first and second directions, and wherein said grip attachment is configured
to couple a grip to said grip module.

US Pat. No. 9,363,147

INDICATING STATUS USING A STANDALONE ICON

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
providing a graphical object independent of an interface of a communications program that represents a component of the communications
program, the component comprising one or more of: a contact of a user of the communications program, one or more files of
the user for transferring to one or more contacts of the user, or one or more files of contacts of the user for transferring
to the user, wherein:

the communications program facilitates exchanges of communications between users across a network, and
the graphical object allows the user to perform an action otherwise available through the interface of communications program
regardless of whether the interface of the communications program is running when an operation corresponding to the action
is performed;

determining, by at least one processor, a status of the component of the communications program; and
updating, regardless of whether the interface of the communications program is running, a visual representation of the graphical
object to convey the status of the component of the communications program.

US Pat. No. 9,258,604

COMMERCIAL DETECTION BASED ON AUDIO FINGERPRINTING

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
receiving an audio signal including a plurality of frames, each frame representing a portion of the audio signal, the audio
signal associated with a media stream on a broadcast channel;

generating a probe audio fingerprint based on one or more of the plurality of frames;
comparing the probe audio fingerprint with one or more reference audio fingerprints from a plurality of reference audio fingerprints,
a reference audio fingerprint of the plurality of reference audio fingerprints representing a set of acoustic features of
an audio signal associated with commercial content;

determining whether the probe audio fingerprint matches a reference audio fingerprint of the plurality of reference audio
fingerprints based on comparison of the probe audio fingerprint and the reference audio fingerprint; and

responsive to a match between the probe audio fingerprint and the reference audio fingerprint of the plurality of reference
audio fingerprints:

determining whether an audio fingerprint associated with a media stream broadcast over a channel of a plurality of other broadcast
channels matches the reference audio fingerprint: and

determining that the media stream associated with the probe audio fingerprint has commercial content in response to the number
of matches between the audio fingerprints associated with the plurality of other broadcast channels and the reference audio
fingerprint exceeding a predetermined threshold.

US Pat. No. 9,369,891

SENSING PROXIMITY UTILIZING A WIRELESS RADIO SUBSYSTEM

Facebook, Inc., Menlo Pa...

1. A method comprising:
by an RF transceiver of a wireless communications device associated with a first user of an online social-networking system,
transmitting an RF reference signal to each antenna of a plurality of antennas coupled to the transceiver, wherein:

a social graph associated with the social-networking system comprises a plurality of nodes and a plurality of edges connecting
the nodes, each of the nodes representing a user or a concept, and each edge between two nodes representing a single degree
of separation between the two nodes; and

the first user is represented by a first user node in the social graph;
by a processor of the wireless communications device, determining, for each antenna of the plurality of antennas, at least
one characteristic of the RF reference signal reflected back from the antenna;

by the processor of the wireless communications device, characterizing, based on the at least one determined characteristic,
at least one aspect of an environment around the device to determine that an object is approaching the device; and

by the processor of the wireless communications device, retrieving from the online social-networking system, based on determining
that the object is approaching the device, information associated with the first user.

US Pat. No. 9,313,046

PRESENTING DYNAMIC LOCATION OF A USER

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
providing a display of a group of co-users of a communications system, the co-users being associated with a user of the communications
system;

detecting, by at least one processor, a user selection of a co-user from the group of co-users; and
in response to detecting the user selection of the co-user, providing a display of recent online locations and associated
geographic locations of a mobile device of the selected co-user used to access the recent online locations.

US Pat. No. 9,264,463

METHOD AND SYSTEM OF MANAGING EPHEMERAL POST IN A SOCIAL NETWORKING SYSTEM

FACEBOOK, INC., Menlo Pa...

1. A computer-implemented method comprising:
receiving, from a first user of a social network, a request to post an ephemeral post;
posting the ephemeral post to the social network on behalf of the first user;
monitoring for an occurrence of a first threshold event;
allowing the ephemeral post to be accessible to a plurality of viewers other than the first user when the first threshold
event has not occurred, wherein the ephemeral post includes an indication of its ephemeral nature to the plurality of viewers;
and

blocking the ephemeral post from being accessible by the plurality of viewers other than the first user when the first threshold
event has occurred, wherein the first threshold event is a plurality of user interactions with the ephemeral post since the
posting.

US Pat. No. 9,183,573

ÜBERFEED

Facebook, Inc., Menlo Pa...

1. A method comprising:
collecting, by one or more computing devices, a plurality of information items of a plurality of types relevant to a user,
wherein:

the information items are collected from at least one social-networking system and at least one third-party system; and
the user is a member of the at least one social-networking system;
determining, by one or more computing devices, a relevance value for each of the information items, wherein the relevance
value is based at least in part on:

how close a time associated with the information item is to a current time; and
how close a node representing the information item is to a node representing the user in a graph associated with the social-networking
system, the graph representing information contained in the social-networking system;

classifying, by one or more computing devices, one or more of the information items as being non-deterministic based at least
in part on each of the non-deterministic information items having a relevance value that decreases with time;

classifying, by one or more computing devices, one or more other ones of the information items as being deterministic based
at least in part on each of the deterministic information items having a relevance value that remains substantially constant
over time;

sending, by one or more computing devices, one or more push notifications to one or more client devices associated with the
user, the push notifications comprising one or more of the non-deterministic information items sent in an order of their respective
relevance values; and

storing, by one or more computing devices, the deterministic information items for later retrieval by the user.

US Pat. No. 9,280,534

GENERATING A SOCIAL GLOSSARY

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computer servers associated with a social-networking system, determining that a textual term is not associated
with a known meaning, wherein the textual term is related to one or more users of the social-networking system, the user being
associated with a user node in a social graph of the social-networking system, the social graph comprising:

a plurality of nodes, the plurality of nodes comprising user nodes and concept nodes, wherein each user node corresponds to
a user of the social-networking system; and

a plurality of edges, wherein one or more edges connect two nodes, the one or more edges representing a relationship between
the two nodes;

by the one or more computer servers, determining that the textual term should be added to a social glossary;
by the one or more computer servers, adding the textual term to the social glossary;
by the one or more computer servers, adding to the social graph a new element representing the textual term, wherein the new
element comprises:

a new concept node, wherein the textual term is a noun,
a new edge, wherein the textual term is a verb, or
a new attribute for the user node, wherein the textual term is an adjective; and
by the one or more computer servers, providing information related to one or more textual terms in the social glossary.

US Pat. No. 9,367,628

OBJECT RECOMMENDATION BASED UPON SIMILARITY DISTANCES

FACEBOOK, INC., Menlo Pa...

1. A computer-implemented method comprising:
receiving a candidate object with which a user can interact within a network service;
determining, for each of a first plurality of objects with which the user has had a positive interaction, a first value representing
a commonality between the candidate object and each of the first plurality of objects;

determining, for each of a second plurality of objects with which a user has had a negative interaction, a second value representing
a commonality between the candidate object and each of the second plurality of objects;

determining an aggregate positive distance using a plurality of the first values, wherein the aggregate positive distance
is determined by dividing a sum or average of the plurality of the first values by a first outlier value, the first outlier
value corresponding to an object with which the user has had a positive interaction and having less in common with the candidate
object than each of the first plurality of objects;

determining an aggregate negative distance using a plurality of the second values, wherein the aggregate negative distance
is determined by dividing a sum or average of the plurality of the second values by a second outlier value, the second outlier
value corresponding to an object with which the user has had a negative interaction and having less in common with the candidate
object than each of the second plurality of objects; and

recommending the candidate object to the user in response to determining from a difference between the aggregate positive
distance and the aggregate negative distance that the candidate object is more in common with objects with which a user has
had a positive interaction than objects with which a user has had a negative interaction.

US Pat. No. 9,276,960

POLICY PARTIAL RESULTS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving a policy comprising at least two rules with an order indicated among the at least two rules;
receiving reduction parameters that specify a minimum amount of savings that a reduced rule policy should achieve, wherein
the reduction parameters comprise one or more of:

an indication of a cost savings, as a value, that the reduced rule policy should achieve,
an indication of a cost savings, as a percentage of a calculated initial cost of the policy, that the reduced rule policy
should achieve,

an indication of a cost savings amount that should be achieved by removing a selected rule, as a function of an amount of
increased likelihood of false allow or false deny resulting from removing the selected rule, that qualifies the selected rule
for removal, or

any combination thereof;
selecting, as a candidate rule set, one or more rules of the at least two rules, wherein the candidate rule set is removable
from the policy;

determining a cascade rule set, wherein each rule of the cascade rule set is rendered duplicative by removal of:
the at least one rule of the candidate rule set, and/or
at least one rule of the cascade rule set,
wherein a combination of the candidate rule set and the cascade rule set are removable from the policy;
combining, into a result set, the candidate rule set and the cascade rule set; and
providing an indication of the rules in the result set,
wherein a subsequent evaluation of the policy uses a reduced rule version of the policy that excludes the indicated rules
of the result set.

US Pat. No. 9,177,347

GROUP RECOMMENDATIONS BASED ON ANSWERED QUESTIONS IN A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A method comprising:
identifying a target user of a social networking system;
accessing a user profile in the social networking system including information about the target user;
presenting one or more questions retrieved from the social networking system to the target user, the one or more questions
for identifying subject matter associated with the target user, the subject matter comprising at least one of an interest
of the target user, an association of the target user, a characteristic of the target user, or an affiliation of the target
user;

receiving at least one answer to a question from the target user;
determining subject matter associated with the received at least one answer;
identifying one or more groups maintained by the social networking system associated with the determined subject matter, the
identified one or more groups each comprising a plurality of group members each associated with the determined subject matter;
and

presenting the identified one or more groups to the target user.

US Pat. No. 9,274,766

TREATMENT OF LAYER TREE AS VIDEO

Facebook, Inc., Menlo Pa...

1. A method comprising:
by a computing device, rendering, as a first frame of a video in a video compression format, a graphical user interface (GUI)
of a software application on the computing device based on a multi-layered-tree representation of the GUI;

by the computing device, modifying the multi-layered-tree representation of the GUI in response to an input or output event
associated with one or more content items of the GUI, wherein the modifying comprises modifying a transformation of a structural
layer of the multi-layered-tree representation, wherein the structural layer contains a content layer that represents the
content items;

calculating a placement of each of the content items in the content layer by traversing a multi-layer tree from the root layer
to the content layer and by multiplying a transformation of the content layer by the modified transformation of the structural
layer; and

by the computing device, rendering, as a second frame of the video in the video compression format, the GUI based on the multi-layered-tree
representation of the GUI as modified.

US Pat. No. 9,264,392

DYNAMIC TAGGING RECOMMENDATION

Facebook, Inc., Menlo Pa...

1. A method, by one or more computing devices, comprising:
receiving, at a computing device, a message including a multimedia file, the message sent by a computing device of a first
user;

determining a location of the first user;
accessing a data store to retrieve a set of social contacts associated with the first user;
accessing spatio-temporal information for one or more social contacts identified in the set of social contacts;
prior to conducting a face matching procedure based on the multimedia file, ranking the set of social contacts based on spatio-temporal
proximity to the location of the first user; and

sending identifiers corresponding to the one or more top ranked social contacts in the set of social contacts to the computing
device of the first user.

US Pat. No. 9,264,258

PRESENCE AND GEOGRAPHIC LOCATION NOTIFICATION BASED ON A SETTING

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
maintaining settings for disseminating information associated with a user to one or more other users, the maintained settings
including one or more settings that prevent users associated with the one or more settings from receiving notification information
associated with the user;

receiving notification information associated with the user;
detecting delivery of a message from the user to another user of the one or more users;
identifying at least one setting from the one or more settings that prevents the another user from receiving the notification
information;

in response to detecting delivery of the message from the user to the another user of the one or more users, overriding the
at least one setting that prevents the another user from receiving the notification information; and

disseminating the received notification information to the another user in accordance with the override of the at least one
setting that prevents the another user from receiving the notification information.

US Pat. No. 9,177,346

FACILITATING INTERACTION AMONG USERS OF A SOCIAL NETWORK

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing systems, receiving an indication of a first user action by a first user;
by one or more computing systems, when the indication is received:
analyzing content of the first user action;
determining a topic of the first user action based at least in part on the analysis;
determining whether the topic is trending;
determining whether the first user has indicated a preference to exclude posts associated with the topic or a category associated
with the topic; and

in response to a determining that the topic is trending and there is no indication of the preference, then:
notifying the first user that the topic is trending;
identifying a second user action by a second user that relates to the topic;
determining whether the first user has indicated a preference to exclude posts associated with the second user; and
in response to a determining that there is no indication of the preference, sending to the first user information associated
with the second user action with a graphical user interface (GUI) element configured to enable the first user to interact
with the second user action.

US Pat. No. 9,131,019

PROMPTING SOCIAL NETWORKING SYSTEM USERS TO PROVIDE ADDITIONAL USER PROFILE INFORMATION

Facebook, Inc., Menlo Pa...

1. A method comprising:
presenting a plurality of questions requesting information items associated with data describing characteristics of a user
of a social networking system;

logging, in a database, a plurality of responses from the user to the plurality of questions;
maintaining a profile for the user, the profile including one or more information items associated with data describing characteristics
of the user and a set of unknown information items not associated with data;

obtaining a plurality of questions associated with one or more information items from the set of unknown information items;
determining, for each of the plurality of questions associated with the one or more information items from the set of unknown
information items, a response probability based at least in part on one or a combination of questions previously presented
to the user and the logged plurality of responses from the user, the response probability indicating a likelihood of receiving
a response to a question when presented;

determining a data acquisition value for each of a plurality of the unknown information items in the set of unknown information
items, the data acquisition value of an unknown information item based at least in part on a value to the social networking
system of associating data with the unknown information item and the determined response probability;

selecting an unknown information item from the set of unknown information items based at least in part on the data acquisition
values; and

selecting a question associated with the selected unknown information item for presentation to the user based at least in
part on the response probabilities of one or more questions associated with the selected unknown information item.

US Pat. No. 9,723,759

COOLING SERVERS IN A DATA CENTER USING FANS EXTERNAL TO SERVERS

Facebook, Inc., Menlo Pa...

1. A data center system comprising:
a partition arranged between a cold aisle on a first side of the partition and a hot aisle on a second side of the partition;
a plurality of servers arranged in the partition so that each server has an input opening positioned on the first side of
the partition in communication with the cold aisle and an output opening on the second side of the partition in communication
with the hot aisle, wherein the partition is arranged so that an airflow path of least resistance from the cold aisle to the
hot aisle is through the servers, wherein one or more of the plurality of servers further includes a fan internal to the server
and an internal fan control system, the internal fan configured to remain off until the internal fan control system identifies
an air pressure difference between the input opening and the output opening exceeding a threshold difference;

an air supply unit, located external to the plurality of servers, configured to pressurize the cold aisle relative to the
hot aisle, so that air flows from the cold aisle to the hot aisle through the servers.

US Pat. No. 9,405,722

METHOD AND APPARATUS FOR FORM FILLING

FACEBOOK, INC., Menlo Pa...

1. A method, comprising:
detecting, by a first application, that a second application has loaded a form, wherein the form comprises one or more fields;
accessing, by the first application, user data for a first user stored by the first application, the user data comprising
one or more data values;

based on tracked information indicating values entered by a set of one or more other users into the one or more fields of
the form, identifying, by at least one processor, a correspondence between the one or more fields of the form loaded by the
second application and the one or more data values of the user data for the first user stored by the first application, wherein
the set of one or more other users does not include the first user; and

completing the identified one or more fields of the form loaded by the second application with the corresponding one or more
data values of the user data for the first user stored by the first application and identified based on the tracked information
indicating values entered by the one or more other users into the one or more fields of the form.

US Pat. No. 9,367,568

AGGREGATING TAGS IN IMAGES

Facebook, Inc., Menlo Pa...

1. A method comprising, by a client system of a first user associated with an online social network:
receiving, at the client system from a social-networking system of the online social network, an image associated with the
online social network, wherein the image comprises a plurality of tags corresponding to a plurality of users associated with
the online social network, respectively, and wherein each tag is associated with a particular location within the image;

generating, by the client system, an aggregated tag for two or more of the plurality of tags based on a distance of the locations
of the tags to each other, wherein tags associated with locations within a threshold distance of each other are aggregated
with the aggregated tag;

accessing, from the social-networking system, a social-graph affinity for each user associated with the aggregated tag;
rendering, by the client system, the image with a tag-label for the aggregated tag, wherein the tag-label comprises a name
of the user having the strongest social-graph affinity with respect to the first user and a counter indicating a number of
users corresponding to the aggregated tag; and

providing, to a display of the client system, the rendered image for presentation to the first user.

US Pat. No. 9,361,278

OVERLAYING PHOTOGRAPHS WITH TEXT ON A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving information about a story in a social networking system, the story comprising a plurality of images and text associated
with the plurality of images, wherein the plurality of images are part of a photographic album;

determining a plurality of configurations, wherein each configuration of the plurality of configurations comprises the plurality
of images arranged in a different order;

combining the text with each configuration of the plurality of configurations and computing a respective readability score
for that combination, the readability score indicating a measure of a likelihood of a user of the social networking system
is able to read the text when overlaid onto the respective configuration and the readability score is based at least in part
on one or more attributes of the plurality of images, one or more attributes of the text, or any combination thereof;

comparing the readability scores with a threshold value;
selecting the configuration having the highest readability score;
generating the story including the text and the selected configuration based on the comparison, wherein if the readability
score for the selected configuration of the plurality of images equals or exceeds the threshold value, the text is overlaid
onto an area of the selected configuration, and if the readability score for the selected configuration is less than the threshold
value, the text is positioned adjacent to the selected configuration of the plurality of images; and

sending the story for display to a client device associated with the user.

US Pat. No. 9,275,101

SEARCH QUERIES WITH PREVIEWS OF SEARCH RESULTS ON ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising, by a computing device:
accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges
between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to a first user associated with an online social network; and
a plurality of second nodes that each correspond to a concept or a second user associated with the online social network;
generating a plurality of structured queries that each comprise references to one or more nodes of the plurality of nodes
and one or more edges of the plurality of edges;

generating one or more search results corresponding to at least one of the structure queries; and
sending one or more of the structured queries for display on a page currently accessed by the first user, at least one of
the structured queries being displayed with a preview of one or more of the search results corresponding to the structured
query.

US Pat. No. 9,286,575

ADAPTIVE RANKING OF NEWS FEED IN SOCIAL NETWORKING SYSTEMS

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
determining, by a computer, a plurality of demographic groups of users of a social networking system, the determining comprising,
for each demographic group of users, selecting as plurality of users based on demographic characteristics of the users;

for each demographic group of users, generating a model configured to rank news feed stories for presentation to users from
the demographic group, the model configured to receive as input, one or more user attributes describing a viewing user and
ranking newsfeed stories for the viewing user based on the one or more user attributes, the generating of the model comprising:

selecting a set of features for the demographic group based on the characteristics of the users of the demographic group;
training the model the training utilizing training sets obtained from the demographic group of users, the model comprising
the selected set of features;

identifying stories for presentation to a user belonging to a demographic group;
providing one or more attributes describing the user as input to the model; and
ranking the stories identified for presentation to the user using the model and sending the stories for presentation to the
user based on the ranking.

US Pat. No. 9,264,335

ADAPTIVE PACKAGING OF NETWORK RESOURCES

Facebook, Inc., Menlo Pa...

1. A method comprising:
accessing, by one or more computer servers, a first data store comprising a log of requests transmitted by a plurality of
remote hosts, each request corresponding to one or more resources of a plurality of resources;

analyzing, by the computer servers, the requests and one or more attributes of the resources using a cost function, wherein
a first component of the cost function is directed to a performance improvement achieved by grouping one or more of the resources
for transmission to one or more remote hosts and a second component is directed to a performance inefficiency caused by the
grouping the one or more of the resources;

identifying, by the computer servers, one or more groupings of the resources to be included in a package of resources; and
transmitting the package of resources in a single response to a request corresponding to at least one of the resources in
the package.

US Pat. No. 9,292,884

NETWORK-AWARE PRODUCT ROLLOUT IN ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising, by one or more processors associated with one or more computing devices:
accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges
between two of the nodes representing a single degree of separation between them, the plurality of nodes corresponding to
a plurality of users associated with an online social network, respectively;

identifying a plurality of non-overlapping clusters in the social graph using graph clustering, each cluster comprising a
discrete set of nodes from the plurality of nodes;

providing a treatment to at least a first set of users and a second set of users, the first and second sets of users corresponding
to a first set of clusters and a second set of clusters of the plurality of clusters, respectively, the first set of clusters
being discrete from the second set of clusters; and

determining, for each of at least the first and second sets of users, a treatment effect of the treatment on the users of
the set of users based on a network exposure to the treatment for each user, wherein, for each respective cluster, the network
exposure of the nodes in the cluster is absolute k-neighborhood exposure, absolute k-core exposure, fractional q-neighborhood
exposure, or fractional q-core exposure.

US Pat. No. 9,807,901

MULTIPLE GRAPHICS PROCESSING UNIT PLATFORM

Facebook, Inc., Menlo Pa...

1. A multiple graphics processing unit (multi-GPU) platform, comprising:
a cubby chassis including one or more partitions defining a plurality of sled positions;
at least one multi-GPU sled located in a corresponding one of the plurality of sled positions, the multi-GPU sled comprising:
a sled chassis having a sidewall and a bottom wall, wherein the sled chassis has an open top and an open side opposite the
sidewall;

a vertically oriented side-plane printed circuit board (PCB) mounted to the sidewall;
a plurality of dividers attached to the bottom wall and oriented substantially perpendicular to the side-plane PCB;
one or more GPU cards connected to the side-plane PCB and supported by a pair of the plurality of dividers, the one or more
GPU cards comprising:

a GPU PCB having a first side facing the bottom wall and an outward facing second side; and
one or more GPU components coupled to the second side of the GPU PCB; and
a cover coupled to the horizontal bottom wall and configured to enclose the open side of the sled chassis.

US Pat. No. 9,385,987

CONTROLLING NOTIFICATION BASED ON POWER EXPENSE AND SOCIAL FACTORS

Facebook, Inc., Menlo Pa...

1. A method comprising, by one or more computing devices of a social-networking system:
receiving, from a mobile device of a first user, an indication of a radio-network state of the mobile device of the first
user;

identifying a plurality of messages to be sent to the mobile device of the first user from one or more mobile devices each
associated with second user, each of the plurality of messages having a message size;

determining, for each message of the plurality of messages,
a transmit cost of the message based at least in part on the radio-network state of the mobile device of the first user and
the message size of the message, and

a value of the message;
determining a priority score for each message of the plurality of messages based at least in part on the transmit cost and
the value of each of the messages; and

transmitting at least one message of the plurality of messages to the mobile device of the first user based at least in part
on the priority score associated with the message.

US Pat. No. 9,407,711

SYSTEMS AND METHODS FOR RECEIVING AND PROCESSING DETECTED EVENTS

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
receiving, by a computer system, a bit array from a device, wherein each bit value in the bit array indicates whether a user
interacted with a website by performing an event;

receiving, by the computer system, time information associated with the bit array, the information indicating a start time
at which a first bit value in the bit array was determined, wherein each subsequent bit value in the bit array is determined
at a predetermined time increment after the start time; and

determining, by the computing system, a time interval that identifies an amount of time that the user interacted with the
website based at least in part on the time information and the bit array.

US Pat. No. 9,261,367

HUMAN-LIKE GLOBAL POSITIONING SYSTEM (GPS) DIRECTIONS

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more processors of a computing device, receiving a request for a route from a first geolocation to a second geolocation;
by one or more processors of the computing device, calculating the route from the first geolocation to the second geolocation;
by one or more processors of the computing device, accessing a social graph comprising a plurality of nodes and a plurality
of edges connecting the nodes, and each node corresponding to an object associated with a social network, wherein a geolocation
associated with a user corresponds to a particular node of the social graph;

by one or more processors of the computing device, identifying one or more logged paths of the user that coincide with at
least a portion of the route, wherein one or more of the logged paths comprise the geolocation associated with the user;

by one or more processors of the computing device, updating one or more navigation instructions for the route based on the
identified logged paths of the user; and

by one or more processors of the computing device, displaying the updated navigation instructions on a display of a client
device of the user.

US Pat. No. 9,117,249

SELECTIVELY PROVIDING CONTENT ON A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A method, comprising:
storing a view state for a user of a social networking system, the view state including a first order of a plurality of news
feed stories previously presented to the user in a user interface;

receiving a request for new news feed stories from the user;
obtaining the requested new news feed stories for the user;
responsive to determining that the plurality of previously presented news feed stories have been consumed by the user, providing
the new news feed stories in a user interface for display to the user;

updating the view state for the user with a second order of a plurality of news feed stories presented to the user in the
user interface, the plurality of presented news feed stories including the new news feed stories and the plurality of news
feed stories previously presented to the user; and

responsive to determining that the plurality of previously presented news feed stories have not been consumed by the user,
providing a link in the user interface to indicate that the new news feed stories have been generated.

US Pat. No. 9,110,889

METHODS AND SYSTEMS FOR GENERATION OF FLEXIBLE SENTENCES IN A SOCIAL NETWORKING SYSTEM

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
providing a developer interface to define a flexible sentence syntax based on an edge configuration;
generating one or more edge tokens on the developer interface for a developer to choose a first property expression of a specific
edge in the flexible sentence syntax;

providing a tense option on the developer interface for the developer to select one or more tenses of the specific edge in
the flexible sentence syntax; and

based on the specific edge, generating a plurality of relevant flexible sentences for the developer to determine the flexible
sentence syntax.

US Pat. No. 9,253,136

ELECTRONIC MESSAGE DELIVERY BASED ON PRESENCE INFORMATION

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving a setting associated with an intended recipient defining a concurrent delivery mechanism that is designated to receive
all electronic messages;

identifying that the intended recipient is a recipient of an electronic message;
identifying a user-defined delivery precedence for a plurality of delivery mechanisms;
determining, using at least one processor, presence information associated with a delivery mechanism with a highest precedence;
based on the intended recipient being present on the delivery mechanism with the highest precedence, concurrently sending
the electronic message to the intended recipient via the delivery mechanism with the highest precedence and via the concurrent
delivery mechanism;

based on the intended recipient not being present on the delivery mechanism with the highest precedence, determining presence
information associated with a delivery mechanism with a second highest precedence;

based on the intended recipient being present on the delivery mechanism with the second highest precedence, concurrently sending
the electronic message to the intended recipient via the delivery mechanism with the second highest precedence and via the
concurrent delivery mechanism; and

based on the intended recipient not being present on the delivery mechanism with the second highest precedence, sending the
electronic message via the concurrent delivery mechanism.

US Pat. No. 10,067,561

DISPLAY VISIBILITY BASED ON EYE CONVERGENCE

Facebook, Inc., Menlo Pa...

1. A method comprising:determining cornea center locations and pupil center locations for two eyes of a user using image data of the two eyes;
determining an optical axis for each of the two eyes of the user based on the cornea center locations and the pupil center locations;
determining a first three-dimensional (3D) point of regard of the user based on the optical axes for the two eyes of the user at a first time;
displaying a virtual object on a display of an augmented reality headset;
responsive to a determination that the first 3D point of regard of the user matches a position associated with the virtual object, the position having a different depth than a depth associated with the display of the augmented reality headset, adjusting a transparency of the display in a manner that increases visibility of the virtual object by increasing an opacity of the display at a rate of increase;
determining a second 3D point of regard of the user based on the optical axes for the two eyes of the user at a second time after the first time; and
responsive to a determination that the second 3D point of regard of the user does not match the position associated with the virtual object, adjusting a transparency of the display in a manner that decreases visibility of the virtual object by decreasing the opacity of the display at a rate of decrease, the rate of decrease being faster than the rate of increase.

US Pat. No. 9,854,697

MODULAR NETWORK SWITCHES, ASSOCIATED STRUCTURES, AND ASSOCIATED METHODS OF MANUFACTURE AND USE

Facebook, Inc., Menlo Pa...

1. A computer system comprising:
a cabinet having a plurality of side walls defining an internal volume;
a plurality of first circuit boards operably positioned parallel to each other in a first portion of the internal volume,
wherein each of the first circuit boards includes a first connector positioned proximate an aft edge portion thereof; and

a plurality of second circuit boards operably positioned parallel to each other in a second portion of the internal volume,
wherein the plurality of second circuit boards are positioned in edgewise, nonparallel orientation relative to the plurality
of first circuit boards, wherein each of the second circuit boards includes a second connector positioned proximate a forward
edge portion thereof, and wherein each of the second connectors is directly mated to a corresponding first connector to electrically
connect each of the first circuit boards to a corresponding second circuit board;

a plurality of third circuit boards positioned parallel to each other in the first portion of the internal volume,
wherein the cabinet includes a front side toward one end of the side walls and a back side toward an opposite end of the side
walls,

wherein the front side of the cabinet includes a plurality of first openings that removably contain the first circuit boards,
whereby individual first circuit boards can be removed from the cabinet and replaced while the other of the first circuit
boards remain in situ, and

wherein the front side of the cabinet further includes a plurality of second openings that removably contain the third circuit
boards, whereby individual third circuit boards can be removed from the cabinet and replaced while other of the third circuit
boards remain in situ.

US Pat. No. 9,918,397

OPEN CHASSIS AND SERVER MODULE INCORPORATING THE SAME

Facebook, Inc., Menlo Pa...

1. A modular chassis configurable for use with a server module, comprising:
an end frame having opposed lower corner portions;
first and second beams spaced apart from each other and each having a proximal end portion connected to a respective lower
corner portion of the end frame, the first and second beams being configured to receive and retain server components;

first and second upper beams, each having a proximal end portion connected to a respective upper corner portion of the end
frame;

a cross-member extending between distal end portions of the first and second beams; and
a plurality of spaced apart stanchions each attached to one of the first and second beams, wherein each of the plurality of
spaced apart stanchions terminates between the first and second beams and the first and second upper beams, and wherein selected
ones of the plurality of stanchions include a keyhole mounting pin configured to mate with a corresponding keyhole slot of
a printed circuit board;

wherein the first and second beams, the cross-member, and the stanchions being interconnected to define an open interior area
configured to provide substantially open access to the server components.

US Pat. No. 10,033,685

SOCIAL NETWORK SITE RECOMMENDER SYSTEM AND METHOD

Facebook, Inc., Menlo Pa...

1. A method comprising:by one or more computing devices, analyzing one or more pieces of content of a content page to identify one or more topics associated with the content page;
by the one or more computing devices, identifying a set of related content pages, the related content pages including content related to the one or more topics;
by the one or more computing devices, analyzing a set of links in the set of related content pages to identify a set of proposed links; and
by the one or more computing devices, sending one or more of the proposed links for addition to the content page in association with the one or more pieces of content, respectively.

US Pat. No. 9,356,890

ENHANCED BUDDY LIST USING MOBILE DEVICE IDENTIFIERS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
providing, using at least one processor, a list of potential message recipients to a sender, the list comprising one or more
identifiers for at least one of the potential message recipients on a first communication system, wherein the first communication
system uses a first communication protocol;

sending an electronic message to a selected recipient via the first communication system, the electronic message including
a first identifier associated with the selected recipient within the first communication system;

receiving an electronic reply message from the selected recipient sent via a second communication system, wherein the second
communication system uses a second communication protocol, and wherein the electronic reply message includes a second identifier
associated with the selected recipient within the second communication system, the second identifier being different than
the first identifier;

converting the electronic reply message from a text message protocol associated with the second communication system to an
Internet-based message protocol associated with the first communication system; and

providing, using the at least one processor, the electronic reply message to the sender via the first communication system
after replacing the second identifier with the first identifier.

US Pat. No. 9,325,731

IDENTIFICATION OF AND COUNTERMEASURES AGAINST FORGED WEBSITES

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
receiving a page included in a website at a client device associated with a user, the page having executable scripting code
that, when executed by a processor, determines whether a network domain from which the page was served is a domain authorized
to serve the page, the determining based at least in part on comparing the network domain from which the page was served with
the domain authorized to serve the page;

responsive to execution of the executable scripting code determining the network domain from which the page was served is
not a domain authorized to serve the page, the executable scripting code providing an identification of the domain from which
the page was served to an authorized server associated with the domain authorized to serve the page; and

responsive to execution of the executable scripting code determining the network domain from which the page was served is
not a domain authorized to serve the page, executing countermeasure code included in the page that, when executed by the processor
of the client device, modifies operation of the page to prevent phishing of user credentials.

US Pat. No. 9,047,847

DISPLAYING CLUSTERS OF MEDIA ITEMS ON A MAP USING REPRESENTATIVE MEDIA ITEMS

Facebook, Inc., Menlo Pa...

1. A method of displaying media items on a map, comprising:
obtaining a plurality of media items;
selecting a first representative media item that defines a first region, wherein the first region is defined based at least
in part on a pixel location associated with the selected first representative media item;

determining, using one or more computer processors, a first set of media items that belong to the first region;
selecting a second representative media item, wherein the second representative media item does not belong to the first region,
and the second representative media item defines a second region, wherein the second region is defined based at least in part
on a pixel location associated with the selected second representative media item;

determining a second set of media items that belong to the second region; and
displaying on the map the first set of media items that belong to the first region and the second set of media items that
belong to the second region, including displaying the first representative media item on the map at a first location corresponding
to the first region, and displaying the second representative media item on the map at a second location corresponding to
the second region.

US Pat. No. 9,299,110

PERIODIC AMBIENT WAVEFORM ANALYSIS FOR DYNAMIC DEVICE CONFIGURATION

Facebook, Inc., Menlo Pa...

1. A method comprising:
by a computing system, generating a waveform fingerprint based on captured ambient audio data;
by the computing system, calculating a self-determined location of the computing system;
by the computing system, sending the generated waveform fingerprint and the self-determined location to a server;
by the computing system, receiving instructions from the server to adjust one or more device settings of the computing system,
the instructions based at least in part on identifying one or more audio fingerprints that match the generated waveform fingerprint
and correlating metadata of one or more of the identified audio fingerprints to refine the self-determined location of the
computing system; and

by the computing system, adjusting one or more of the device settings of the computing system in accordance with the received
instructions.

US Pat. No. 9,538,683

CIRCUIT BOARD EJECTOR SYSTEM

Facebook, Inc., Menlo Pa...

1. A circuit board ejector for installing or ejecting a circuit board from a chassis, the circuit board ejector comprising:
a hub rotatably mountable to a chassis;
a plurality of ejector teeth extending from the hub; and
a lever coupled to the hub by a plurality of gears;
wherein the plurality of ejector tooth teeth are mateable with a circuit board housed in the chassis, whereby movement of
the lever causes the teeth to move the circuit board, wherein the at least one ejector tooth is mateable with at least one
notch formed along an edge of the circuit board, whereby movement of the lever causes the tooth to move the circuit board.

US Pat. No. 9,401,956

SYSTEMS AND METHODS FOR PERFORMING GROUP ACTIONS BASED ON MACHINE-READABLE CODES

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
obtaining, by a computing system, data describing a machine-readable code that references a group, the data being provided
by a computing device of a user;

identifying, by the computing system, the group based at least in part on the machine-readable code;
determining, by the computing system, that the user satisfies one or more criteria that needs to be satisfied before the user
is permitted to become a member of the group; and

associating, by the computing system, the user with the group, wherein, upon becoming a member of the group, the user is permitted
to perform one or more actions with respect to other members of the group.

US Pat. No. 9,363,237

SECURE DATA EXCHANGE BETWEEN DATA PROCESSING SYSTEMS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
intercepting, by a proxy server over a network, a data request from a first computing device that is directed to a web server;
modifying the data request to include user profile information;
sending the modified data request to the web server;
sending information to the web server for controlling a manner for how data sent to the web server is cached in the web server;
receiving, by the proxy server, a response from the web server, wherein the response to the proxy server includes information
for controlling a manner for how data received from the web server is cached in the proxy server;

caching the data received from the web server in the proxy server; and
sending at least a portion of the cached data from the proxy server to the first computing device.

US Pat. No. 9,998,969

PORTABLE PLATFORM FOR NETWORKED COMPUTING

Facebook, Inc., Menlo Pa...

1. A portable computing device comprising:a processor;
a plurality of radios; and
a memory coupled to the processor comprising instructions executable by the processor, the processor being operable when executing the instructions to:
pair, by at least one of the radios, the portable computing device with one or more devices associated with a first user of the portable computing device;
monitor, by one or more of the radios, a signal for a connection established with a first communication network, wherein the portable computing device has previously connected to the first communication network, and
wherein the first communication network was selected based at least in part on social-graph information representing a social-networking relationship between the first user of the portable computing device and a second user associated with the first communication network;
determine that the signal for the first communication network has dropped below a threshold level of quality; and
based on the determination, enable an access point mode to provide connectivity using a second communication network for at least one of the paired devices through the portable computing device, wherein in the access point mode, the portable computing device provides network connectivity for the paired devices to the second communication network,
wherein the instructions to enable the access point mode comprise instructions to facilitate a soft handoff for the at least one of the paired devices from one communication network to another communication network.

US Pat. No. 9,298,433

OPTIMIZING INTERMEDIATE REPRESENTATION OF SCRIPT CODE FOR FAST PATH EXECUTION

Facebook, Inc., Menlo Pa...

1. A method, comprising:
generating, by a computer, an intermediate representation of a script code from the script code, the script code expressed
in a computer programming language;

identifying, by the computer, a checkpoint in the intermediate representation, the checkpoint being a condition that evaluates
to at least a first value or a second value, and wherein generation of the intermediate representation following the checkpoint
is dependent on a value of the checkpoint, the checkpoint including a first intermediate representation for decrementing a
reference count of an object;

regenerating, by the computer, the checkpoint as a labeled checkpoint in a revised intermediate representation, the labeled
checkpoint including a label referencing a first portion of the intermediate representation to which execution of the script
code is to be transferred when the labeled checkpoint evaluates to the second value, wherein the first portion is separate
from a main path of execution represented by an executable control region, the regenerating including regenerating the first
intermediate representation to include the label, the label identifying the portion of the intermediate representation to
which the execution of the script code is to be transferred when the reference count evaluates to zero; and

regenerating the intermediate representation such that a second portion of the intermediate representation following the labeled
checkpoint is in the main path of execution in which the labeled checkpoint evaluates to the first value.

US Pat. No. 9,292,172

IMAGE EDITING METHOD, IMAGE EDITING DEVICE, AND COMPUTER READABLE MEDIUM FOR STORING IMAGE EDITING PROGRAM

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
selecting, by a computer system, an image from a set of images, wherein the image is editable by a first user and a second
user;

maintaining, by the computer system, attribute information about the first user and the second user;
providing, by the computer system, based on the attribute information, a first permission to allow the first user to edit
a first content area of the image and a second permission to allow the second user to edit a second content area of the image;
and

identifying a second image to be editable by the first user based on a time associated with the image and a time associated
with the second image falling within a difference range.

US Pat. No. 9,300,741

CONTENT SURFACING BASED ON GEO-SOCIAL FACTORS

Facebook, Inc., Menlo Pa...

1. A method comprising, by one or more processors of a social-networking system:
accessing, by one or more of the processors, social-networking information of a user from a data store of the social-networking
system;

receiving, from a client system of the user, a location associated with the user; and
calculating, by one or more of the processors, a novelty score of the location for the user, wherein the novelty score is
inversely related to an estimate of a familiarity of the user with the location, the estimated familiarity being based on
the accessed social-networking information of the user.

US Pat. No. 9,251,468

INFERRING USER PROFILE ATTRIBUTES FROM SOCIAL INFORMATION

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
selecting a user from a plurality of users of a social networking system, each user of the plurality of users being associated
with a user profile comprising a set of user profile attributes, wherein the social networking system configures a user interface
for a user to provide value for each user provided attribute and stores each user provided value as a user profile attribute;

identifying, by a computer, one or more of a set of users who are connected to the selected user in the social networking
system;

inferring, by the computer, a value of a first user profile attribute of the user profile, the first user profile attribute
storing a first type of information for the selected user, the first user profile attribute inferred based on values of a
second user profile attribute of the user profiles of the one or more of the set of users connected to the selected user in
the social networking system, the second user profile attribute storing a second type of information distinct from the first
type of information;

storing the inferred value of the user profile attributes in association with the user profile of the selected user;
determining relevant information for the selected user based on the inferred value of the first user provided attribute of
the user profile; and

sending the relevant information to the selected user.

US Pat. No. 9,471,943

USER-SPECIFIED DISTRIBUTION OF STORIES DESCRIBING USER ACTIONS IN A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A method comprising:
providing a sponsored story unit to one or more client devices for initial presentation to one or more users of the social
networking system connected to an acting user of the social networking system, the sponsored story unit including descriptions
of a first action and a second action associated with the acting user;

responsive to the initial presentation of the sponsored story unit to the one or more users of the social networking system,
providing instructions to a client device associated with the acting user that cause the client device to present a notification
to the acting user, the notification including information describing the presented sponsored story unit including the descriptions
of the first and the second action associated with the acting user and including one or more settings for preventing inclusion
of the first action associated with the acting user in one or more sponsored story units, wherein the one or more settings
at least identify an action prevented from inclusion in the one or more sponsored story units based on the identity of a promoting
user that provided the one or more sponsored story units;

receiving one or more selected settings included in the notification from the client device associated with the acting user,
the selected settings identifying the first action to be prevented from inclusion in the one or more sponsored story units;

storing the one or more selected settings in a user profile associated with the acting user and maintained by the social networking
system; and

modifying the sponsored story unit for presentation based on the one or more selected settings, the modified sponsored story
unit not including a description of the first action.

US Pat. No. 9,329,961

TESTING DEVELOPMENT USING REAL-TIME TRAFFIC

Facebook, Inc., Menlo Pa...

1. A method for testing a test component, comprising:
receiving at the test component, an input communication that has been forked from an input communication intended for a deployed
component, wherein the test component and the deployed component are different components and the input communication intended
for the deployed component has been forked including by allowing a copy of the input communication intended for the deployed
component to arrive at the test component;

using a processor to process at least a portion of the received input communication; and
using a result of the processing to at least in part determine a test result of the test component.

US Pat. No. 9,301,016

SHARING TELEVISION AND VIDEO PROGRAMMING THROUGH SOCIAL NETWORKING

Facebook, Inc., Menlo Pa...

1. A method comprising, by one or more computing systems:
receiving at a social-networking system from a video-content-provider system a request comprising a user identifier associated
with a user of the social-networking system;

querying a social graph of the social-networking system for stories generated by one or more connections of the user on the
social-networking system, the social graph comprising a plurality of nodes and edges connecting the nodes, the nodes comprising
user nodes that are each associated with a particular user of the social-networking system, wherein edges between the user
nodes identify relationships between the users of the social-networking system;

sending one or more of the stories from the social-networking system for use in connection with a service provided to the
user by the video-content provider;

receiving, at the social-networking system from the video-content provider, an indication that the user has selected a user
interface element to post a new story on the social-networking system that indicates that the user is currently watching particular
content, the user interface element being displayed along with the particular content being watched;

creating, by the social-networking system, a new edge in the social graph between a user node associated with the user and
a content node associated with the particular content that the user is currently watching;

receiving, at the social-networking system from the video-content provider, an indication that the user has selected an option
to passively share what the user watches in the future without any further explicit action from the user; and

automatically posting, by the social-networking system after receiving the indication that the user has selected the option
to passively share what the user watches in the future, new stories on the social-networking system as the user watches new
content, each new story comprising an indication of the particular new content being watched by the user, wherein the new
stories are automatically posted on the social-networking system only if the user has continuously watched the new content
longer than a predetermined amount of time.

US Pat. No. 9,230,265

MANAGING TARGETING OF ADVERTISEMENTS BASED ON USER ASSOCIATIONS WITH SOCIAL NETWORKING OBJECTS

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
storing, by a social networking computer system, an object associated with an entity;
storing, by the social networking computer system, a set of connections between the object and one or more users of the social
networking computer system;

receiving, from the entity, a competitive block list associated with the object, the competitive block list including one
or more advertisers whom the entity identified as ones to be prevented from targeting advertisements to users based on the
users having connections to the object associated with the entity;

receiving an advertisement associated with an advertiser other than the entity;
determining, by the social networking computer system, whether the advertisement is associated with targeting criteria specifying
users connected to the object;

responsive to determining the advertisement is associated with targeting criteria specifying users connected to the object,
retrieving the competitive block list associated with the object;

preventing, by the social networking computer system, use of the targeting criteria specifying users connected to the object
if the advertiser is included on the competitive block list associated with the object; and

determining, by the social networking computer system, that the targeting criteria specifying users connected to the object
are valid if the advertiser is not included on the competitive block list associated with the object.

US Pat. No. 9,219,644

AUTOMATED CONFIGURATION OF NEW RACKS AND OTHER COMPUTING ASSETS IN A DATA CENTER

Facebook, Inc., Menlo Pa...

1. A method comprising:
scanning each server rack within a data center to request virtual locations associated with the server rack from the server
rack, the scanning comprising:

sending a message to each of a plurality of racks in the data center;
receiving a set of responses to the messages, each response indicative of a virtual location of a corresponding rack;
identifying a physical server rack associated with a physical location and with a plurality of virtual locations based on
the scanning; and

responsive to identifying the server rack:
determining the physical location of the identified server rack based on a virtual location associated with the identified
server rack; and

reporting an error condition indicating that the identified server rack is associated with a plurality of virtual locations.

US Pat. No. 9,356,902

STRUCTURING NOTIFICATIONS OF EVENTS TO USERS IN A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving a request for an invitation to an event;
generating, by the social networking system, an event page that includes content associated with the event and user responses
to invitations to the event;

communicating an invitation to the event to one or more users of a social networking system invited to the event;
receiving a response to the invitation to the event from a plurality of responding users included in the one or more users
of the social networking system invited to the event;

determining a set of uncommitted users from which the social networking system has not received a response to the invitation
to the event;

determining an affinity between each of the plurality of responding users and at least one uncommitted user of the set of
uncommitted users;

selecting a set of responding users from the plurality of responding users based on the determined affinities, wherein selecting
the set of responding users from the plurality of responding users comprises:

ranking affinities between each of the plurality of responding users and the at least one uncommitted user, wherein the affinities
between each user in the set of responding users and the at least one uncommitted user are based at least in part on historical
activity of the at least one uncommitted user with different users in the set of responding users, and

selecting one or more responding users from the plurality of responding users having a highest affinity of the ranked affinities;
and

communicating, via the event page, to the at least one uncommitted user a notification identifying the response to the invitation
to the event received from at least one user from the set of responding users.

US Pat. No. 9,298,890

PREVENTING UNAUTHORIZED ACCOUNT ACCESS USING COMPROMISED LOGIN CREDENTIALS

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
receiving a list of login credentials for a plurality of users, the list comprising a plurality of user account identifiers,
each user account identifier being associated with a password, the login credentials on the list being known to have been
compromised due to the list of login credentials having been obtained by a malicious party;

receiving first login information submitted from a client device in connection with an attempt to login to an online system,
the login information including a submitted user account identifier and a submitted password;

determining whether the received first login information matches login credentials on the list of known compromised login
credentials;

responsive to the received first login information matching any of the known compromised login credentials on the list,
identifying a source location from which the first login information was received, and
determining that the source location may be suspicious since the first login information is on the list, however the attempt
to login could be a valid attempt by a valid user who is an owner of the first login information;

receiving second login information submitted from a client device in connection with an attempt to login to an online system,
the second login information being different from the first login information;

responsive to the received second login information matching any of the login credentials on the list of known compromised
login credentials,

identifying a source location from which the second login information was received,
determining that the source location from which the second login information was received is the same as the source location
from which the first login information was received,

based on the determination, requiring a security challenge associated with the attempt to login to the online system with
the second login information, and

based on a failure to meet the security challenge, denying the attempt to login to the online system with the second login
information; and

denying login for each subsequent login attempt from the same source location, including denying login attempts with login
information that is not on the list of known compromised login credentials.

US Pat. No. 9,268,857

SUGGESTING SEARCH RESULTS TO USERS BEFORE RECEIVING ANY SEARCH QUERY FROM THE USERS

Facebook, Inc., Menlo Pa...

1. A method comprising, by one or more processors associated with a social-networking system of an online social network:
receiving, from a client device of a user, an indication of the user accessing a search tool at the client device of the user,
the indication being received before the user inputs any search query or portion thereof to the search tool, wherein the user
is a member of the online social network;

in response to receiving the indication of the user accessing the search tool, compiling for presentation to the user a set
of search results based on information known about the user stored by the social-networking system, the search results being
compiled before the user inputs any search query or portion thereof to the search tool, each search result being associated
with one or more call-to-action elements applicable to the search result, each call-to-action element being a user-interface
element that prompts an action from the user to initiate a particular function or process related to the search result via
the social-networking system; and

sending, to the client device of the user, the set of search results with the call-to-action elements for presentation to
the user, wherein the call-to-action elements are presented to the user in proximity to their corresponding search results.

US Pat. No. 9,999,096

WIRELESS AD-HOC SOCIAL NETWORKING

FACEBOOK, INC., Menlo Pa...

1. A method comprising:discovering, by one or more processors of a first wireless device, a plurality of wireless devices in an ad-hoc network of wireless devices;
identifying, by the one or more processors, a social interest characteristic associated with the first wireless device;
identifying, by the one or more processors, wireless devices of the plurality of wireless devices that are within a predefined number of hops from the first wireless device; and
enabling communications to be exchanged between the first wireless device and the wireless devices that share, the social interest characteristic with the first wireless device within the predefined number of hops from the first wireless device by identifying a communications pathway from the first wireless device to each of the wireless devices that shares, the social interest characteristic with the first wireless device within the predefined number of hops from the first wireless device, each communications pathway being through one or more of the plurality of wireless devices in the ad-hoc network of wireless devices.

US Pat. No. 9,471,516

TECHNIQUES FOR TRANSMITTING A COMMAND TO CONTROL A PERIPHERAL DEVICE THROUGH AN AUDIO PORT

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving, at a processor circuit for a computing device, a command originating from an application, the command to update
a display of a peripheral device coupled to the computing device via an interconnect having an audio jack coupled with an
audio port of the computing device;

generating analog signals that include the command and a clock signal, the analog signals configured to be converted into
a serial output signal by the interconnect; and

transmitting the analog signals through the audio port coupled with the audio jack.

US Pat. No. 9,448,962

USER EXPERIENCE/USER INTERFACE BASED ON INTERACTION HISTORY

Facebook, Inc., Menlo Pa...

1. A method comprising:
by a computing device, accessing a base user experience (UX) of a social-networking system comprising a user interface (UI)
corresponding to one or more features of the social-networking system;

by the computing device, computationally determining one or more user categories based at least in part on information associated
with previous interactions by a plurality of users with the social-networking system;

by the computing device, classifying a particular user into one or more of the user categories based at least in part on the
interactions of the particular user with the social-networking system, wherein the classification comprises applying a machine-learning
algorithm to the interactions of the particular user, and wherein the machine-learning algorithm is trained using the previous
interactions by the plurality of users;

by the computing device, determining, relative to the base UX, one or more modifications comprising an addition of one or
more graphical elements of the UI for display to the particular user, one or more of the graphical elements comprising a guided
tour illustrating one or more of the features of the UI, the modifications being configured to personalize the UI individually
to the particular user based at least in part on the computational determination of one or more of the user categories applicable
to the particular user;

by the computing device, assigning a value to a particular functionality based at least in part on an objective of a computing
system comprising the computing device;

by the computing device, selecting one or more of the graphical elements corresponding to the particular functionality with
a highest value relative to the objective;

by the computing device, applying the modifications to the UI; and
by the computing device, providing the UI as modified for display to the particular user.

US Pat. No. 9,391,971

AUTHORIZATION AND AUTHENTICATION BASED ON AN INDIVIDUAL'S SOCIAL NETWORK

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving, at a service provider, a request from a first user to access content on the service provider, the request identifying
a user identifier (ID) of the first user;

transmitting, to a social networking system that is external to the service provider, a request to determine whether the first
user is authorized to access content on the service provider based on a gray list comprising user IDs of the users who are
not authorized to access content on the service provider, wherein the gray list is based on a black list; and

permitting, at the service provider, the content to be accessed by the first user if an indication is received from the social
networking system that the first user is authorized to access the content based on the gray list.

US Pat. No. 9,342,321

SYSTEM AND METHOD FOR CROSS-PLATFORM APPLICATIONS ON A WIRELESS PHONE

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving, at a mobile device, an application, the application comprising:
at least one display area for display on the mobile device, and
one or more rendering instructions for the at least one display area, the one or more rendering instructions comprising a
first virtual position tag specifying a generic display position of a first display element relative to a generic display
area and a second virtual position tag specifying a generic display position of a second display element relative to the generic
display position of the first display element specified by the first virtual position tag, wherein the generic display position
is device independent;

determining, by at least one processor, at least one hardware display parameter of the mobile device;
determining a specific position for the first display element based on the first virtual position tag and the at least one
hardware display parameter;

determining a specific position for the second display element based on the second virtual position tag and the determined
specific position for the first display element; and

generating a display layout for the at least one display area that includes the first display element in the specific position
for the first display element and the second display element in the specific position for the second display element.

US Pat. No. 9,305,003

RELATIONSHIP CONFIRMATION IN AN ONLINE SOCIAL NETWORK

Facebook, Inc., Menlo Pa...

1. A computer-implemented method, comprising:
receiving, from a client device of a first user of an online social network, a request to invite a second user to join the
online social network, the request comprising a user identifier of the second user, wherein the second user is not a member
of the online social network;

generating, by the one or more computer systems, an invitation based on the request, wherein the invitation comprises a mini-profile
of the first user, wherein the mini-profile is a user-specified subset of a full version of a user profile of the first user,
the user-specified subset being based on a visibility setting of the first user defining one or more elements of the user
profile of the first user viewable by other users;

sending, to a client device of a second user of the online social network, the invitation for display to the second user,
wherein the mini-profile of the first user is provided for display to the second user; and

responsive to the second user accepting the invitation to join the online social network, sending a prompt to the client device
of the second user for display, the prompt allowing the second user to confirm the relationship between the first user and
the second user within the online social network, wherein a relationship database of the online social network is updated
with the relationship between the first and second users in response to the confirming of the relationship via the prompt.

US Pat. No. 9,306,927

SINGLE LOGIN PROCEDURE FOR ACCESSING SOCIAL NETWORK INFORMATION ACROSS MULTIPLE EXTERNAL SYSTEMS

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
maintaining a single login status associated with a user account for a user of a social networking system;
receiving a plurality of requests for social network information, wherein each request originates from an external system
outside of the social networking system, and the social network information is maintained by the social networking system
and is associated with the user account of the social networking system; and

determining whether a user account of the external system is linked to the user account of the social networking system, and
determining the single login status of the user account of the social networking system, and responsive to determining the
single login status and whether the user accounts are linked:

if the single login status indicates that the user account of the social networking system is not logged in, requiring authentication
information for the user account of the social networking system before providing social network information and responsive
to receiving information indicative of successful authentication, updating the single login status to indicate that the user
account of the social networking system is logged in, or

if the single login status indicates that the user account of the social networking system is logged in and the user accounts
are linked, responding to each request by providing the social network information to the external system and providing access
to the external system from another external system.

US Pat. No. 9,622,373

HIGH VOLTAGE DIRECT CURRENT POWER SYSTEM FOR DATA CENTERS

Facebook, Inc., Menlo Pa...

5. A shelf adapted to fit in a server rack, comprising:
an external power connector adapted to access high voltage direct current (HVDC) power from a power rail pair traversing or
crossing shelves in the server rack;

a power distribution board electrically coupled to the external power connector;
a step down direct current to direct current (DC-DC) converter electrically coupled to the power distribution board and adapted
to convert the HVDC power to a lower DC voltage usable by information technology (IT) load; and

an IT power connector electrically coupled to the power distribution board and adapted to provide the lower DC voltage to
an IT device in the shelf.

US Pat. No. 9,342,831

FACILITATING SAME DAY PAYMENT TRANSACTIONS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving, at one or more servers from a first client device associated with a user, a payment message from the user directed
to a co-user, the payment message including a payment amount associated with a payment transaction between the user and the
co-user;

sending, by the one or more servers, the payment message to a second client device associated with the co-user;
sending, by the one or more servers to a payment network, a charge request against a payment credential of the user for the
payment amount of the payment message; and

sending, by the one or more servers in response to the payment message, a push-to-debit request to the payment network to
credit funds for the payment amount of the payment message to a debit card of the co-user as an unreferenced refund to the
debit card of the co-user, the push-to-debit request being formatted for same day processing.

US Pat. No. 9,276,894

RESOURCE MANAGEMENT OF SOCIAL NETWORK APPLICATIONS

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
observing interactions by each of a plurality of user of an online system, wherein the observed interactions are indicative
of an affinity of the users towards an application of a plurality of applications;

categorizing users into a plurality of groups based on patterns of user interactions in each group;
determining, by the online system, a group affinity score for the application for each of the plurality of groups based on
interactions of the users of the group;

determining, by the online system, an affinity score for the application as a weighted aggregate of the group affinity scores
for the application;

determining, by the online system, an allocation of a channel resource for the application based on the affinity score, the
allocation specifying a threshold usage of the channel resource by the application; and

limiting a rate at which the application is allowed to send messages via the channel resource, wherein the rate is limited
to the threshold usage of the channel resource specified by the allocation.

US Pat. No. 9,246,961

COMMUNICATION USER INTERFACE SYSTEMS AND METHODS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
presenting a graphical user interface comprising a composition area for composing an electronic communication, and a tray
area comprising a graphical element associated with a content item;

detecting, using at least one processor, a user interaction with the graphical element associated with the content item;
in response to the user interaction, presenting a preview of the content item in the composition area,
wherein the graphical user interface further comprises a plurality of modes, each mode being associated with a particular
type of content item,

wherein at least one of the plurality of modes is a text mode, a contacts mode, a places mode, or a camera mode;
detecting a second user interaction; and
in response to detecting the second user interaction, navigating from a first mode of the plurality of modes to a second mode
of the plurality of modes,

wherein the graphical user interface further comprises a menu area, wherein the menu area includes a plurality of menu items
corresponding to the plurality of modes.

US Pat. No. 10,015,903

HIGH POWER SAFETY SLED

Facebook, Inc., Menlo Pa...

1. A device platform, comprising:a power tray, comprising:
a tray chassis having a tray sidewall and a tray bottom wall;
a pair of conductors extending along at least a portion of the tray chassis; and
a conductor cover moveable between a first position where the pair of conductors are covered and a second position where the pair of conductors are exposed;
a power supply connected to the pair of conductors; and
a device sled moveably positioned on the power tray and moveable relative to the pair of conductors between an unpowered position where the conductor cover is in the first position and a powered position where the conductor cover is in the second position, the device sled comprising:
a sled chassis having a chassis sidewall and a chassis bottom wall;
a chassis panel mounted to the sled chassis; and
two or more conductive elements mounted on the chassis panel and positioned for sliding contact with the pair of conductors when the device sled is in the powered position.

US Pat. No. 9,119,027

SHARING OF LOCATION-BASED CONTENT ITEM IN SOCIAL NETWORKING SERVICE

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving location information for a communication device of a first user of a social networking service;
determining a list of distinct locations where a first user is likely to be located based on the received location information
and a user profile of the first user;

sending the list of distinct locations to the communication device;
receiving selection of a location from the list from the communication device by the first user to indicate the location of
the first user;

retrieving additional information about the selected location of the first user from a service distinct from the social networking
service, the additional information comprising flight information or vehicle information;

determining an updated location of the first user based on the selected location and the additional information obtained from
a service distinct from the social networking service, the updated location distinct from the selected location and representing
a location of the first user after the first user was at the selected location; and

making the updated location available to a second user.

US Pat. No. 9,110,953

FILTERING CONTENT IN A SOCIAL NETWORKING SERVICE

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving by a social networking service a plurality of content items from users of the social networking service;
receiving, from the users of the social networking service, user profile attributes comprising descriptive information about
each user;

automatically creating, by a processor, groups relevant to a user according to one or more rules, the groups comprising users
of the social networking service having one or more common user profile attributes in common with the user;

providing one or more of the content items for presentation to the user in a user interface,
wherein the user interface comprises:
a content feed that includes a subset of the content items provided by other users,
a highlights feed that includes a subset of content items selected by the social networking service as a function of affinity
scores between the user and other users of the social networking service associated with content items included in the highlights
feed, and

one or more selectable filters generated by the social networking service for the user, each filter specifying one or more
of the automatically created groups of users;

receiving, from the user, a selection of a filter of the one or more selectable filters, the selected filter associated with
one or more groups of users; and

responsive to the selection of the filter, sending for presentation to the user in the user interface updated subsets of content
items for the content feed and the highlights feed, the updated subsets including only those content items received from the
users in the one or more groups of users associated with the selected filter.

US Pat. No. 9,507,718

INTELLIGENT CACHING

Facebook, Inc., Menlo Pa...

1. A method comprising:
generating, at a computer system and in response to receiving a specified query from a client, a first read request for obtaining
a result of the specified query from a storage system;

extracting, from a plurality of candidate queries and at the computer system, a plurality of features of the candidate queries,
wherein the features are characteristics of a query;

correlating the features of each of the candidate queries to identify a usage pattern of the features, the correlating including:
identifying a specified feature of the features based on a derived value of the specified feature, the derived value being
derived from an actual value of the specified feature, the actual value and the specified feature specified in one or more
of the candidate queries;

predicting, based on the usage pattern of the features, a set of queries to be received at the computer system in the future;
executing a query of the set of queries to obtain data corresponding to the query from the storage system, the data including
time series data, wherein the data is stored at a first granularity level in the storage system, wherein executing the query
includes:

generating a second read request to obtain the data corresponding to the query,
combining the first read request and the second read request to generate a combined read request, and
executing the combined read request at the storage system to obtain the result of the specified query and the data corresponding
to the query;

determining, based on the predicting, a second granularity level at which the data is to be cached, the second granularity
level being different from the first granularity level;

processing the data from the first granularity level to the second granularity level to generate processed data; and
updating a cache of the computer system with the processed data, the updating to be performed before any of the set of queries
is received at the computer system.

US Pat. No. 9,448,599

HIGH-DENSITY STORAGE SERVER CHASSIS

FACEBOOK, INC., Menlo Pa...

1. A storage server chassis for supporting one or more storage devices, comprising:
a frame;
a plurality of partitions mounted to the frame;
at least one opposed pair of support ledges disposed on corresponding partitions and positioned to support a storage device
therebetween;

wherein selected support ledges include at least one protrusion positioned to space the storage device away from a portion
of the support ledge thereby defining an air flow region between the storage device and the support ledge; and

at least one retainer moveably attached to a corresponding partition and operative to retain a corresponding storage device
in the frame, wherein the retainer is movable relative to the corresponding partition between an open position and a closed
position.

US Pat. No. 9,420,442

PING COMPENSATION FACTOR FOR LOCATION UPDATES

Facebook, Inc., Menlo Pa...

1. A method comprising:
by a computing device, receiving a location update corresponding to a user, wherein:
the user corresponds to one or more demographic categories; and
the location update is provided by one or more location methods implemented by a mobile client device associated with the
user;

by the computing device, determining that the location update is associated with a visit to a particular place;
by the computing device, determining a total number of visits to the particular place within a period of time for a particular
demographic category;

by the computing device, calculating a ping compensation factor based at least in part on:
a subset of the total number of visits determined by a first location method; and
the total number of visits to the particular place; and
by the computing device, storing the ping compensation factor on a data store of a social-networking system, wherein the ping
compensation factor is associated with the particular place, the particular demographic category, and the period of time.

US Pat. No. 9,319,473

MOBILE PUSH NOTIFICATION

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing devices, sending to a mobile client computing device a first notification through a real-time push
service, the first notification comprising content and being associated with a stateful object, wherein:

the stateful object comprises user-facing information;
the content of the first notification comprises a pre-determined subset of the user-facing information associated with the
stateful object at a first time when the first notification is sent; and

the sending is determined by:
a priority level of the first notification;
a first power state of the mobile client computing device; and
a first network state of the mobile client computing device; and
by one or more computing devices, in response to a state change of the stateful object, sending to the mobile client computing
device a second notification through the real-time push service, the second notification comprising an update to the content
based on the state change of the stateful object, wherein:

the update to the content comprises a pre-determined subset of the user-facing information associated with the stateful object
at a second time when the second notification is sent, wherein the second time is later in time than the first time; and

the sending is determined by:
a priority level of the second notification;
a second power state of the mobile client computing device; and
a second network state of the mobile client computing device.

US Pat. No. 9,232,372

SERVER-SIDE RATE-LIMITING ALGORITHMS FOR PIGGYBACKING SOCIAL UPDATES FOR MOBILE DEVICES

Facebook, Inc., Menlo Pa...

1. A method, by one or more computing devices, comprising:
receiving, from a mobile device of a first user, device status information selected from the group consisting of: information
related to power for the device, information related to network connectivity of the device, or a notification mode of the
device;

identifying one or more outgoing messages to be sent to the first user;
computing a value for each of the outgoing messages, the computed value being based on an affinity score determined with respect
to an originator of the message and the first user;

selecting, based on the computed value, at least one of the outgoing messages for placement into an outgoing message queue;
and

upon the detection of a triggering condition, sending the messages in the outgoing message queue to the mobile device, the
triggering condition based on the device status information and the respective values of the outgoing messages.

US Pat. No. 9,400,925

POSE-ALIGNED NETWORKS FOR DEEP ATTRIBUTE MODELING

FACEBOOK, INC., Menlo Pa...

1. A method, performed by a computing device having one or more processing units, for recognizing human attributes from digital
images, comprising:
locating, by the one or more processing units, at least two part patches from a digital image, wherein each of the two part
patches comprises at least a portion of the digital image corresponding to a recognized human body portion or pose, wherein
said locating comprises:

scanning the digital image using multiple windows having various sizes, and
comparing scanned portions of the digital image confined by the windows with multiple training patches from a database,
wherein the training patches are annotated with keypoints of body parts and the database contains the training patches that
form a cluster in a 3D configuration space corresponding to a recognized human body portion or pose;

providing each of the part patches as an input to one of multiple convolutional neural networks;
for at least two selected convolutional neural networks among the multiple convolutional neural networks, applying multiple
stages of convolution operations to a part patch associated with the selected convolutional neural networks to generate a
set of feature data as an output of the selected convolutional neural networks;

concatenating the sets of feature data from the at least two convolutional neural networks to generate a set of concatenated
feature data;

feeding the set of concatenated feature data into a classification engine for predicting a human attribute; and
determining, based on a result provided by the classification engine, whether a human attribute exists in the digital image.

US Pat. No. 9,380,065

SYSTEMS AND METHODS FOR IDENTIFYING ILLEGITIMATE ACTIVITIES BASED ON HISTORICAL DATA

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
acquiring, by a computing system, historical data including a plurality of features associated with known legitimate activities
and with known illegitimate activities, wherein at least some of the known legitimate activities and the known illegitimate
activities include one or more financial transactions;

applying, by the computing system, a machine learning technique to the historical data to gain information about the plurality
of features associated with the known legitimate activities and with the known illegitimate activities;

generating, by the computing system, a decision tree based on at least a portion of the information about the plurality of
features;

identifying, by the computing system, a node in the decision tree that satisfies specified precision criteria;
creating, by the computing system, a rule based on the node identified in the decision tree, wherein the rule corresponds
to a conditional rule which indicates that a particular activity is illegitimate when one or more features associated with
the particular activity respectively meet one or more feature values specified by the rule; and

identifying, by the computing system, one or more illegitimate activities based on the rule, wherein applying the machine
learning technique to the acquired historical data to gain the information about the plurality of features further comprises:

determining a respective information gain for each feature in the plurality of features;
identifying a feature having a highest information gain; and
selecting a feature value, for the feature, that partitions the historical data into a first data subset and a second data
subset, wherein the feature value is selected such that a largest possible amount of known legitimate activities is in the
first data subset and a largest possible amount of known illegitimate activities is in the second data subset.

US Pat. No. 9,350,742

USING CONNECTIONS BETWEEN USERS IN A SOCIAL NETWORKING SYSTEM TO REGULATE OPERATION OF A MACHINE ASSOCIATED WITH A SOCIAL NETWORKING SYSTEM USER

Facebook, Inc., Menlo Pa...

1. A method comprising:
storing, in a social networking system, data describing a machine and an owner of the machine, the owner comprising a user
of a plurality of users of the social
networking system who is capable of authorizing one or more actions associated with the machine;
receiving from the owner data describing a permission, the permission specifying a first type of connection in the social
networking system between the owner and another user of the plurality of users of the social networking system who is authorized
to instruct the machine to perform one or more actions, the first type of connection in the social networking system based
on a relationship between the owner and the another user in the social networking system including, at least, a direct connection
to the owner of the machine, or a direct connection to the machine;

receiving a request from a client device of a requesting user of the social networking system to perform one of a plurality
of different types of actions using the machine, the client device different than the machine;

identifying a second type of connection in the social networking system between the requesting user of the different client
device and the owner;

determining, from the social networking system, that the requesting user is authorized to perform the plurality of different
types of actions based at least in part on the first type of connection in the social networking system specified by the permission
associated with the one or more actions and the identified second type of connection in the social networking system; and

communicating an instruction authorizing the machine to perform for the requesting user of the different client device at
least one of the plurality of different types of actions from the social networking system to the machine responsive to determining
that the requesting user is authorized to perform the plurality of different types of actions using the machine.

US Pat. No. 9,243,911

MEETING NOTIFICATION AND MODIFICATION SERVICE

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
identifying, using at least one processor, a first geographic location associated with a user of a calendar application;
identifying, using the at least one processor, a second geographic location and a start time associated with an appointment
in the calendar application;

identifying, using the at least one processor, a travel time associated with a route extending from the first geographic location
to the second geographic location;

incorporating, using the at least one processor, the travel time into a calendar event in the calendar application;
identifying, using the at least one processor, a specified time associated with the user's travel to the second geographic
location; and

providing, using the at least one processor, a reminder to the user at the specified time to inform the user to leave the
first geographic location in order to arrive at the second geographic location in time for the appointment.

US Pat. No. 9,225,788

METHOD AND APPARATUS FOR IDENTIFYING COMMON INTEREST BETWEEN SOCIAL NETWORK USERS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
identifying, by a social networking system, a first content object with which a first user of the social networking system
has interacted;

identifying, by the social networking system, a second content object with which a second user of the social networking system
has interacted;

associating, by the social networking system, a first keyword phrase with the first user, wherein the first keyword phrase
is associated with the first content object by conducting a reverse keyword search on the first content object, wherein the
reverse keyword search includes searching a social network search pattern database containing information of social network
relationships between content objects of the social network system and keyword phrases, and wherein the reverse keyword search
receives the first content object or an identifier of the first content object as an input, and generates a keyword phrase
that is related to the first content object as an output, and wherein the social network search pattern database is updated
by results of a new reverse keyword search;

associating, by the social networking system, a second keyword phrase with the second user, wherein the second keyword phrase
is associated with the second content object by conducting a reverse keyword search of the second content object; and

determining, by the social networking system, a common interest for the first user and the second user of the social networking
system toward a topic by identifying a match between the first keyword phrase associated with the first user with the second
keyword phrase associated with the second user.

US Pat. No. 9,203,787

IDENTIFYING USERS SHARING COMMON CHARACTERISTICS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
determining, by at least one processor, a location of a mobile device associated with a first user of a communications system
based on location information of the mobile device associated with the first user;

identifying, by the at least one processor, a plurality of descriptions of the location of the mobile device associated with
the first user;

receiving, based on input by the first user, a selection of a description of the location from the plurality of descriptions;
determining that a second user of the communications system is at or near a geographic location associated with the selected
description of the location of the mobile device; and

sending an electronic message to the mobile device associated with the first user indicating that the second user is at or
near the geographic location associated with the selected description of the location of the mobile device.

US Pat. No. 10,031,921

METHODS AND SYSTEMS FOR STORAGE OF MEDIA ITEM METADATA

FACEBOOK, INC., Menlo Pa...

1. A method, comprising:at a server system with one or more processors and memory:
maintaining a database storing metadata for a plurality of media items, the plurality of media items including a first media item, wherein the first media item corresponds to a first node in a tree, the tree including nodes corresponding to the plurality of media items, and wherein the database stores a first metadata structure for the first media item;
causing, based upon the metadata stored in the database, a first graphical representation of the tree to be displayed on a user interface at a client device, the first graphical representation including a first graphical element representing the first node;
receiving, from the client device, metadata corresponding to a modified media item, wherein the modified media item is a modified version of the first media item, and wherein the metadata corresponding to the modified media item is received in connection with a user selection of the first graphical element in the first graphical representation of the tree for modifying the first media item, and user input modifying the first media item; and
in response to receiving the metadata corresponding to the modified media item, adding a second metadata structure to the database for the modified media item, the second metadata structure including the metadata corresponding to the modified media item, and appending, to the tree, a new leaf node that is linked to the first node, wherein the new leaf node corresponds to the modified media item.

US Pat. No. 9,717,000

TECHNIQUES FOR VALIDATING A DELIVERY CHANNEL

FACEBOOK, INC., Menlo Pa...

1. An apparatus, comprising:
a processor circuit;
a hardware communications component; and
a validity component operative on the processor circuit to receive a request from a sender device, via the hardware communications
component, to determine whether a delivery channel is valid for communication with a recipient user, the delivery channel
comprising a form of electronic communication and associated with a device and with a device user, and in response to the
request:

to query a database of device subscriber information for device information of the device associated with the delivery channel,
to analyze the device information to determine whether the device user matches the recipient user,
to receive information from an application installed on the device, where the information includes an identity of a user associated
with the application, the application distinct from the delivery channel,

to determine that the delivery channel is valid for communication with the recipient user when the device user matches the
recipient user and when the user associated with the application matches the recipient user, and

to transmit a response to the request to the sender device when the delivery channel is valid.

US Pat. No. 9,471,554

COMMUNICATING INFORMATION ABOUT A LOCAL MACHINE TO A BROWSER APPLICATION

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
receiving a markup language document by an Internet browser application executing on a computer, wherein the markup language
document includes instructions to generate a value based on a local resource of the client device;

processing the markup language document by the Internet browser application, the processing comprising determining a first
value based on instructions received from the markup language document;

sending a request for information to a browser plug-in module, wherein the request includes the first value determined by
the Internet browser application;

determining, by the browser plug-in module, a second value based on the requested information describing the local resource
of the client device;

verifying, by the browser plug-in module, the authenticity of a sender of the markup language document based on a comparison
of the second value and the first value;

responsive to the verifying, receiving by the browser application the requested information; and
rendering the received information by the Internet browser application according to instructions in the markup language document.

US Pat. No. 9,412,046

TRAINING IMAGE ADJUSTMENT PREFERENCES

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
aggregating, by a computing device, a first user image selection and a context attribute associated with the first user image
selection into a preference training database for a user, wherein the first user image selection represents a record of how
the user has preferred over at least one of adjusted versions of a base image when the adjusted versions are separately processed
by visual effects that are different;

determining, by the computing device, a visual effect preference associated with the user based on machine learning or statistical
analysis of user image selections in the preference training database, wherein the user image selections represent experimental
records corresponding to the visual effects, wherein the visual effect preference is an image processing rule that is particular
to the context attribute, and wherein the image processing rule specifies a visual effect process to execute when a digital
image is determined to be associated with the context attribute;

updating, by the computing device, a photo preference profile with the visual effect preference; and
providing, by the computing device, the photo preference profile to an image processor to adjust subsequently captured photographs
provided to the image processor.

US Pat. No. 9,367,629

GROUPING RECOMMENDED SEARCH QUERIES ON ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising, by a computing device:
accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges
between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to a first user associated with an online social network; and
a plurality of second nodes that each correspond to a concept or a second user associated with the online social network;
generating a plurality of cards, each card comprising a suggested query referencing a query-domain associated with the online
social network and zero or more query-filters for the query-domain, wherein each query-filter references one or more nodes
of the plurality of nodes or one or more edges of the plurality of edges;

calculating a card-affinity for each card of the plurality of cards with respect to the other cards of the plurality of cards;
generating one or more card clusters from the plurality of cards, each card cluster comprising one or more cards that each
have a card-affinity with respect to the other cards in the card cluster that is greater than a threshold card-affinity; and

sending one or more card clusters to the first user for display on a page currently accessed by the first user.

US Pat. No. 9,354,971

SYSTEMS AND METHODS FOR DATA STORAGE REMEDIATION

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
receiving, by a computing system, an indication that a drive included in a set of drives has experienced an error;
attempting, by the computing system, to acquire first data associated with the drive;
prompting, by the computing system, the drive to undergo a power-cycle;
attempting, by the computing system, to acquire second data associated with the drive, wherein attempting to acquire the second
data occurs subsequent to the power-cycle, and wherein attempting to acquire the first data occurs prior to the power-cycle;

analyzing, by the computing system, at least one of the first data or the second data to determine that the drive is remediable;
and

remediating, by the computing system, at least the drive included in the set of drives.

US Pat. No. 9,356,905

ORGANIZING MESSAGES IN A MESSAGING SYSTEM USING SOCIAL NETWORK INFORMATION

Facebook, Inc., Menlo Pa...

1. A method comprising:
identifying an object of a social networking system associated with a message directed to a recipient, the recipient being
a user of the social networking system;

accessing a social networking database that includes social information about a relationship between the recipient and the
identified object of the social networking system associated with the message directed to a recipient;

indexing the message into a message index based on a label for the message that is indicative of the relationship between
the recipient and the identified object of the social networking system;

identifying a change in the social information about the relationship between the recipient and the identified object of the
social networking system; and

updating the message index based on the change in the social information about the relationship between the recipient and
the identified object of the social networking system.

US Pat. No. 9,336,300

CLIENT-SIDE SEARCH TEMPLATES FOR ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising, by one or more processors associated with a mobile client system:
receiving, at the mobile client system, an unstructured text query from a first user of an online social network;
parsing, by the mobile client system, the unstructured text query into one or more n-grams;
accessing, from a data store of the mobile client system, a set of nodes of a social graph of the online social network, the
social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, the nodes comprising:

a first node corresponding to the first user; and
a plurality of second nodes that each correspond to a concept or a second user associated with the online social network;
accessing, from the data store of the mobile client system, a set of grammar templates, each grammar template comprising one
or more non-terminal tokens and one or more query tokens, wherein the query tokens comprise references to zero or more second
nodes and one or more edges, and wherein each grammar template is based on a natural-language string;

generating, by the mobile client system, one or more structured queries by matching the unstructured text query to one or
more of the accessed nodes and one or more of the grammar templates having non-terminal tokens corresponding to the matched
nodes, each structured query comprising references to one or more of the accessed nodes matched to the one or more non-terminal
tokens and the zero or more of the second nodes and the one or more edges referenced in the corresponding grammar template;

calculating, by the mobile client system, a cost for each grammar template based at least in part on one or more of the n-grams
not corresponding to one of the non-terminal tokens or query tokens; and

displaying, at the mobile client system, one or more structured queries to the first user;
wherein each non-terminal token and query token has an associated insertion cost; and
wherein calculating the cost comprises incurring an insertion cost for each of the non-terminal tokens or query tokens not
corresponding to one or more n-grams.

US Pat. No. 9,262,540

RANKING LOCATION QUERY RESULTS BASED ON SOCIAL NETWORKING

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
receiving, from a user of a social networking system, a content item to be posted on the social networking system by the user;
receiving, at the social networking system from the user, a location query for a location associated with the content item
to include by the user in the post with the content item, the location queried for being different from a current location
of the user, the location query having one or more attributes;

accessing a user profile associated with the user in the social networking system, the user profile describing characteristics
of the user and other users of the social networking system connected to the user;

accessing location data stored by the social networking system, the location data identifying a plurality of locations;
comparing the one or more attributes of the location query to one or more attributes of each of the plurality of locations;
selecting candidate locations from the plurality of locations, each candidate location having at least one attribute matching
an attribute of the location query;

ranking the selected candidate locations based on data from the user profile associated with the user;
selecting a subset of the selected candidate locations for presentation to the user based on the ranking from which the user
can select a location to include in the post with the content item, the subset including different types of locations such
that the user is presented with a diversity of locations; and

presenting the subset of the selected candidate locations to the user for selection of the location to include in the post
with the content item.

US Pat. No. 9,195,632

CUSTOMIZING CONTENT DELIVERY FROM A BRAND PAGE TO A USER IN A SOCIAL NETWORKING ENVIRONMENT

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
storing, in a social networking system, a brand page associated with an entity;
storing one or more user profiles of users of the social networking system and a set of connections among the users, each
user profile including information corresponding to at least one user interest, and wherein one or more of the user profiles
includes a connection to the brand page, the information of each user profile including at least one affinity corresponding
to the at least one user interest;

receiving, from the entity, content for posting to the brand page, the content including an additional content message for
accessing additional content and at least one of: information about the entity associated with the brand page, information
about a brand of the brand page, and information about a product associated with a brand of the brand page, and the content
associated with one or more keywords describing at least one of the brand of the brand page and the information about the
product associated with the brand of the brand page, each of the one or more keywords defined by the entity;

receiving, at the social networking system, a request to access the brand page from a viewing user, the viewing user associated
with a corresponding user profile connected to the brand page stored in the social networking system;

selecting, by the social networking system, content posted to the brand page based on:
an affinity of the at least one affinity, the affinity between the at least one user interest and the content
the one or more keywords associated with the content; and
the information corresponding to the user interest in the user profile associated with the viewing user; and
presenting the selected content to the viewing user.

US Pat. No. 9,087,273

FACIAL RECOGNITION USING SOCIAL NETWORKING INFORMATION

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing devices, receiving a set of related images associated with a primary user, wherein a face appears
in each of the related images;

by one or more computing devices, selecting one or more candidates who may be identified with the at least one face, wherein
each of the candidates is a user of a social network, and wherein for each of the candidates a computed measure of affinity
of the primary user's interest in the candidate exceeds a threshold, and wherein the measure of affinity for each of the candidates
is computed based on a predictor function;

by one or more computing devices, for each of the related images, determining a candidate score for each of the candidates,
wherein the candidate score for a particular candidate represents a likelihood that the particular candidate corresponds to
the face, the candidate score being based at least in part on:

the computed measure of affinity for the particular candidate; and
a facial recognition comparison of the particular candidate to the face;
by one or more computing devices, for each of the candidates, determining a facial-recognition score, wherein a facial-recognition
score for a particular candidate is based on an aggregate value of a plurality of candidate scores for the particular candidate;
and

by one or more computing devices, determining a winning candidate to identify the face based on the facial-recognition scores,
wherein the particular candidate is determined to be the winning candidate for a particular image among the plurality of images
only when the particular candidate has been determined to be a winning candidate in at least a minimum number of images preceding
the particular image in the set of related images.

US Pat. No. 9,449,348

PROVIDING A LOCALITY VIEWPORT THROUGH A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A method of operating a social filter system, comprising:
identifying, via a computer system, a user account as an operator of a mobile locality viewport;
identifying, via the computer system, contents of interest from a content store within a user-indicated focal region that
represents an area within a map;

identifying, via the computer system and from a social connectivity graph of a social networking system, socially connected
accounts associated with the user account;

generating, via the computer system, a content set by filtering the contents of interest based on the socially connected accounts,
wherein each instance of the contents of interest is excluded when the socially connected accounts do not have a social association
with the each instance;

tracking, via the computer system, a number of the socially connected; accounts that have at least one engagement association
among multiple types of engagement associations with a first content object in the content set, wherein said tracking includes
incrementing the number of the socially connected accounts by how many of the socially connected accounts published content
that tags the first content object in the social networking system;

sorting, via the computer system, the first content object amongst the content set for display based at least on the number
of the socially connected accounts;

generating a calendar view of the social association of the socially connected accounts; and
sending the calendar view for displaying on a user device.

US Pat. No. 9,350,820

PHOTO SELECTION FOR MOBILE DEVICES

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing devices, receiving, from a mobile device, a request for one or more images;
by one or more computing devices, adjusting one or more of the images based at least in part on:
one or more display capabilities of the mobile device; and
one or more tagged regions within one or more of the images; and
sending to the mobile device one or more of the images as adjusted.

US Pat. No. 9,338,027

VOICEMAIL PROXY SERVER

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more server computing devices of a system, receiving from a client:
an identifier of a voice mailbox associated with the client and external to the system; and
a set of authentication credentials for the voice mailbox;
by one or more server computing devices of the system, storing the identifier and authentication credentials in association
with information identifying a first user associated with the client, wherein the first user is associated with a first node
on a social-networking system;

by one or more server computing devices of the system, retrieving one or more messages from the voice mailbox using the identifier
and the authentication credentials, wherein each of the messages comprises information identifying a second user who sent
the message; and

by one or more server computing devices of the system, adding one or more of the retrieved messages to one or more conversation
threads maintained by the system, wherein at least one of the conversation threads comprises at least one message exchanged
between the first user and the second user using a different communication channel, wherein the second user is represented
by a second node on the social-networking system, and wherein the first node is connected through the social-networking system
to the second node, and wherein the adding comprises, for each of the one or more of the messages:

searching a database of conversation threads, each conversation thread comprising a plurality of participants, for a conversation
thread between the first user and a sender of the message;

if a matching thread is identified, then adding the message to the thread; and
if a matching thread is not identified, then creating a new thread associated with the first user, and adding the message
to the new thread.

US Pat. No. 9,325,751

DETERMINING OBJECT RELEVANCE IN A SOCIAL NETWORKING SYSTEM

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
storing associations between a plurality of objects and a plurality of users in a social networking system;
identifying a target user of the social networking system;
identifying objects associated with the target user based on the stored associations;
retrieving an influence metric associated with each of the identified objects, each influence metric identifying the influence
of an associated object on a plurality of users associated with the object based on actions performed by the plurality of
users related to the associated object and based on an amount of time since each action was performed such that an influence
metric is weighted more heavily by a first action than by a second action, the first action performed more recently than the
second action;

generating, by a hardware processor, a relevance metric for the target user based on an aggregation of the retrieved influence
metrics, the relevance metric describing an aggregated relevance of the identified objects with which the target user is associated
in the social networking system;

selecting content for presentation based on an influence metric associated with the selected content;
selecting the target user from the plurality of users based on the relevance metric for the target user; and
presenting the selected content to the target user as a story in a social networking system newsfeed interface at a location
within the newsfeed interface based on the influence metric associated with the selected content, the newsfeed interface displaying
stories ordered based on influence metrics associated with objects associated with the stories.

US Pat. No. 9,246,958

SYSTEMS AND METHODS FOR MULTIPLE PHOTO SELECTION

Facebook, Inc., Menlo Pa...

1. A method comprising:
by a mobile computing device associated with a user of a social-networking system, receiving user input by a user interface
of a camera application associated with a social-networking application installed on the mobile computing device, wherein
the camera application comprises a camera view displaying a standard shutter button and a share shutter button, wherein selection
of the standard shutter button causes a media item to be captured by a camera of the mobile computing device and saved to
a local memory of the mobile computing device, and wherein selection of the share shutter button causes a media item to be
captured by the camera of the mobile computing device and to be designated for sharing, and wherein the user is represented
by a first node in a social graph of the social-networking system;

by the mobile computing device, receiving user input to designate one or more media items for sharing with one or more other
users of the social-networking system, wherein each of the other users is represented by a second node in the social graph,
each of the second nodes connected by one or more edges to the first node, and wherein the user input to designate at least
one of the media items for sharing on the social-networking system is based on a user selection of the share shutter button;

by the mobile computing device, providing at least one of a graphical indication within the user interface of the designated
one or more media items or an animation associated with the one or more designated media items; and

by the mobile computing device, sending instructions to the social-networking system to share the designated one or more media
items with the other users.

US Pat. No. 9,246,858

ENABLING PARTICIPATION IN AN ONLINE COMMUNITY USING VISUAL MACHINE-READABLE SYMBOLS

Facebook, Inc., Menlo Pa...

9. A method comprising:
capturing, by a device of a user, an image of a machine-readable symbol encoding an identifier, the identifier identifying
a locale associated with the machine-readable symbol;

processing the captured image to discern the identifier encoded into the machine-readable symbol;
presenting for display on the device an interface for receiving content from the user relating to the locale associated with
the machine-readable symbol; and

receiving, from the user at the device, content relating to the locale.

US Pat. No. 9,223,899

COMPOSITE TERM INDEX FOR GRAPH DATA

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing systems, in response to a creation of an object, generating a document identifier comprising an object
identifier component and a time stamp;

by the computing systems, selecting one or more term producer modules from a plurality of term producer modules, the selection
based at least in part on a type of the respective object;

by one or more of the selected term producer modules, generating one or more terms associated with the data object, each term
based at least in part on one or more attributes of the data object;

by the computing systems, outputting one or more pairs to one or more indexes, each of the pairs comprising one of the document
identifiers and one of the terms; and

by the computing systems, storing the one or more indexes on one or more index servers.

US Pat. No. 9,177,299

INTERFACE FOR DISPLAYING ELECTRONIC COMMUNICATIONS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving, from a communications system at a client device, an electronic message associated with an application on the client
device, the application comprising a first user interface;

rendering, within a second user interface at the client device, an indicator that individually corresponds to the received
electronic message and that provides a user with a perceivable indication that the electronic message has been received, wherein
the second user interface is separate from the first user interface;

detecting, by at least one processor, a user interaction with the indicator;
rendering, in response to detecting the user interaction, an interface element comprising additional information related to
the content of the electronic message; and

providing the interface element for display to the user.

US Pat. No. 9,173,327

COOLING SERVERS IN A DATA CENTER USING PREVAILING WINDS

Facebook, Inc., Menlo Pa...

1. A data center system comprising:
a plurality of computing assets included in a compartment, each computing asset having a first side oriented toward a cold
aisle and having a second side oriented toward a hot aisle, the hot aisle having a lower pressure relative to the cold aisle
so that air flows from the cold aisle to the hot aisle across the computing assets;

a wind collecting structure exposed to an environment external to the data center system, having a plurality of inlets positioned
along a perimeter of the wind collecting structure and facing multiple directions, each inlet configured to receive air from
the external environment and direct the air to an interior of the wind collecting structure, the wind collecting structure
fluidly coupled to the compartment and configured so that upon receiving air via one or more inlets a pressure in the wind
collecting structure is higher than a pressure in the compartment so air flows from the wind collecting structure to the compartment;
and

an exhaust system coupled to the compartment and configured to extract air from the hot aisle.

US Pat. No. 9,098,168

SPRING MOTIONS DURING OBJECT ANIMATION

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
displaying an object at a first position on a screen of an electronic device;
in response to a user selecting two positions on the screen outside a plurality of edges of the object with two or more fingers
and moving the fingers in a pinching motion, displaying a first animated sequence depicting the object folding or unfolding
on the screen in accordance with movements of the user's fingers, movements of the object in the first animated sequence simulating
a visual effect of the edges of the object being tethered to the user's fingers by two or more first springs, the object being
assigned a virtual mass; and

displaying a plurality of shadows around the object in relation to a simulated light source, the plurality of shadows changing
when the object moves according to the first animated sequence in relation to the simulated light source,

wherein the simulated light source is located at a predetermined position on the screen of the electronic device,
wherein each of the two or more first springs is visually attached to the object at positions corresponding to a location
of the two or more fingers moving the object in the pinching motion, and

wherein the first animated sequence further comprises a visual effect of a tightening of the two or more first springs during
the pinching motion that is determined based on a distance between the edges of the object and the positions of each of the
two or more fingers; and

in response to the user releasing the object at a second position on the screen by moving the user's fingers away from the
screen, displaying a second animated sequence depicting the object returning from the second position to the first position
on the screen, movements of the object in the second animated sequence simulating a visual effect of the object being tethered
to the first position by one or more second springs.

US Pat. No. 9,092,485

DYNAMIC SUGGESTED SEARCH QUERIES ON ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising, by a computing device:
accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges
between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to a first user associated with an online social network; and
a plurality of second nodes that each correspond to a concept or a second user associated with the online social network;
generating a plurality of structured queries that each comprise references to one or more nodes of the plurality of nodes
and one or more edges of the plurality of edges, wherein at least one of the structured queries is a dynamic query comprising
a reference to one or more updates to the social graph; and

sending one or more of the generated structured queries to the first user for display on a page currently accessed by the
first user, wherein at least one of the sent structured queries is a dynamic query.

US Pat. No. 9,083,661

PASSIVE PERSONALIZATION OF BUDDY LISTS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
accessing, by a computing device, historical information associated with communication sessions in which a user communicated
with a plurality of other users utilizing a plurality of communication platforms;

passively configuring, based on the historical information, a contacts list associated with the user that reflects a list
of one or more other users from the plurality of other users with which the user communicated, wherein the contacts list further
reflects the relative chronological order in which the one or more other users communicated with the user;

presenting the contacts list to the user;
providing, within the contacts list, an indication of a communication platform associated with each user of the one or more
other users, wherein the indication of the communication platform indicates one or more of the plurality of communication
platforms;

receiving, from the user, a selection of a first user from the contacts list; and
initiating, in response to receiving the selection, a communication session between the user and the first user via a communication
platform corresponding to the indication of a communication platform associated with the first user.

US Pat. No. 9,473,221

SUBNETWORKS AND MULTIPLE NETWORKS

Facebook, Inc., Menlo Pa...

1. A method, comprising:
receiving information from nodes in a wireless communication network of a network type that includes multiple destination
nodes and multiple client nodes, each of the nodes configured to at least wirelessly transmit and at least wirelessly receive
data packets to form the wireless communication network, wherein at least two of the destination nodes in the wireless communication
network are connected to a physical high-speed computer communication link, wherein the information describes channel conditions
between the nodes;

computing routes for exchanging data packets between nodes in the wireless communication network;
transmitting the routes for storage in routing tables at the nodes, wherein the nodes are organized into two or more subnets,
each subset associated with a node that is communicably coupled to the physical high-speed; computer communication link; and

using a time of travel delay between nodes as a security key for a data packet.

US Pat. No. 9,445,086

METHODS, SYSTEMS, AND APPARATUS FOR CAMERA TESTING USING VIRTUAL IMAGES

FACEBOOK, INC., Menlo Pa...

1. A method, comprising:
at a system having a virtual image generation device:
generating, using the virtual image generation device, a plurality of test images in accordance with a test sequence, wherein
each test image corresponds to a respective focal distance with respect to an image capture device;

obtaining test data corresponding to respective captures of the test images by the image capture device;
determining, based on the test data, whether the image capture device satisfies one or more test criteria;
in accordance with a determination that the image capture device satisfies the test criteria, passing the image capture device;
and

in accordance with a determination that the image capture device does not satisfy the test criteria, failing the image capture
device.

US Pat. No. 9,367,536

USING INVERSE OPERATORS FOR QUERIES ON ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising:
accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges
between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to a first user associated with an online social network; and
a plurality of second nodes that each correspond to a concept or a second user associated with the online social network;
receiving from the first user a structured query comprising references to one or more selected nodes from the plurality of
nodes and one or more selected edges from the plurality of edges;

parsing the structured query to identify a first query constraint and one or more second query constraints;
identifying an inverse constraint associated with the first query constraint, wherein the first query constraint has been
previously flagged as identifying greater than a threshold number of nodes; and

generating a query command based on the structured query, wherein the query command comprises the inverse constraint and the
one or more second query constraints.

US Pat. No. 9,179,313

MOBILE-DEVICE-BASED TRUST COMPUTING

Facebook, Inc., Menlo Pa...

1. A method comprising:
by a verification authority associated with a social-networking system, receiving a request to access a shared device, wherein
the request comprises data uniquely identifying a first user of the social-networking system, wherein the first user is represented
by a first user node in a social graph associated with the social-networking system, and wherein the social graph comprises
a plurality of user nodes and a plurality of edges connecting the user nodes;

by the verification authority, determining that a social-networking account for each of one or more second users of the social-networking
system has been compromised, wherein the second users are respectively associated with second user nodes in the social graph,
and wherein the second users previously accessed the shared device; and

by the verification authority, sending, to the shared device, a message comprising the information indicating that the social-networking
accounts for the second users are compromised.

US Pat. No. 10,165,703

DATA-CENTER DRAWER AND CABLE TRACK ASSEMBLY

Facebook, Inc., Menlo Pa...

1. A data-center drawer comprising:an outer assembly configured to be removably attached to a data-center rack;
an inner assembly that houses at least one computing component and that is configured to extend between:
a closed position in which the inner assembly is enclosed within the outer assembly; and
an open position in which the inner assembly is at least partially extended from the outer assembly; and
a cable track, positioned within the inner assembly, that is dimensioned to house at least one cable that provides connectivity to the computing component, wherein at least a portion of a distal end of the cable passes through an opening in a back wall of the inner assembly and connects through the back wall to the outer assembly, such that the opening in the back wall of the inner assembly passes over a middle section of the cable track, and wherein the cable track is configured to:
at least partially fold upon itself as the inner assembly moves from the open position to the closed position; and
at least partially unfold as the inner assembly extends from the closed position to the open position.

US Pat. No. 10,068,258

SPONSORED STORIES AND NEWS STORIES WITHIN A NEWSFEED OF A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:logging, by a social networking computer system, information related to actions performed by users of a social networking system;
receiving, by the social networking computer system, an advertisement request from an advertiser to sponsor stories for display in user interfaces for viewing users, each of the sponsored stories comprising:
a message to a viewing user of the social networking system that includes information related to an action performed by one or more users with whom the viewing user is connected in the social networking system,
wherein the action is selectable by the advertiser from a plurality of actions provided to the advertiser by the social networking computer system;
for each of the viewing users:
selecting, by the social networking computer system, information about one or more actions performed by other users with whom the viewing user is connected in the social networking system to identify candidate information to include in stories for display to the viewing user in a newsfeed;
identifying, from the candidate information, matches with an action of the advertisement request;
generating, by a computer processor of the social networking computer system, a plurality of news stories based on the selected candidate information and a plurality of sponsored stories based on the selected candidate information that was identified as a match with an action of the advertisement request;
generating, by the social networking computer system, a feed that comprises:
the generated sponsored stories; and
the generated plurality of news stories,
wherein the feed includes a combination of generated news stories and generated sponsored stories that are personalized to the viewing user; and
providing, for display by the social networking computer system, user interfaces including each of the generated feeds for each of the viewing users such that the feeds are different for different viewing users, wherein some of the stories that are sponsored stories in one feed appear as non-sponsored news stories in other feeds.

US Pat. No. 9,986,658

POWER CONNECTION CLIP FOR A SHELF IN A SERVER RACK

Facebook, Inc, Menlo Par...

1. A power connection clip for connecting an information technology (IT) equipment shelf to a server rack, comprising:a clip body having an inner portion and an outer portion, wherein the outer portion is adapted to protrude outside of the IT equipment shelf and the inner portion is adapted to extend inside the IT equipment shelf, wherein the outer portion includes a central stump and at least two clip fins separated from the central stump to form at least two cavities;
wherein the inner portion of the clip body includes at least two rear outlets;
electrical conductors respectively and at least partially covering the cavities, the electrical conductors adapted to carry a first voltage to the rear outlets;
a shelf coupler, attached to the clip body and between the inner portion and the outer portion, adapted to mechanically couple the clip body to a wall of the IT equipment shelf; and
a pair of electrically conductive prongs sandwiching at least part of the inner portion of the clip body and extending into the outer portion, wherein the pair of electrically conductive prongs are adapted to carry a second voltage higher than the first voltage,
wherein each electrically conductive prong in the pair of electrically conductive prongs includes an electrically conductive tip portion extending in a direction away from the clip body and a rear portion covered by an electrical insulator.

US Pat. No. 9,460,476

ADVERTISEMENTS FOR APPLICATIONS ON AN ONLINE SOCIAL NETWORK

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving, from a client device of a first user of an online social network, a request to access a resource of the online
social network;

generating an advertisement of a third-party application based on a social relevance of the third-party application to the
first user, wherein the social relevance of the third-party application is based on social-graph information associated with
the first user and a first set of multimedia objects associated with the third-party application, wherein each multimedia
object in the first set of multimedia objects has been interacted with by a friend of the first user; and

sending the advertisement of the third-party application to the client device of the first user for display, wherein the advertisement
contains a reference to at least one multimedia object in the first set of multimedia objects.

US Pat. No. 9,430,561

FORMATION OF TOPIC PROFILES FOR PREDICTION OF TOPIC INTEREST GROUPS

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
identifying a first topic group of users of a social networking system that have expressed an affinity for a page of the social
networking system that corresponds to a first topic;

determining, for a category, that the category includes the first topic and a plurality of other topics;
identifying a category group of users of the social networking system that have expressed an affinity for a page corresponding
to at least one of the topics included in the category;

identifying a plurality of candidate pages of the social networking system, each candidate page having a corresponding candidate
topic about which users of the first topic group and users of the category group can have differing opinions;

for each candidate page of the plurality of candidate pages of a social networking system:
computing a user interest measure quantifying an amount of interest expressed by users of the first topic group for the candidate
topic corresponding to the candidate page,

computing a category interest measure quantifying an amount of interest expressed by users of the category group for the candidate
topic corresponding to the candidate page, and

computing a divergence measure between the first topic group and the category group based on the user interest measure and
the category interest measure;

generating, for the first topic, a first topic profile based on the divergence measures; and storing the first topic profile.

US Pat. No. 9,350,593

DEVICE STATE CAPTURE AND ANALYSIS

Facebook, Inc., Menlo Pa...

1. A method comprising: by one or more server computing devices, receiving state data for each of a plurality of applications
on a client computing device, the state data comprising: event data indicating one or more events generated by or occurring
at the client computing device; and context data associated with the event data, the context data indicating one or more device
states of the client computing device that each coincide with one or more of the events and indicate a level of user interaction
with advertising content associated with each of the plurality of applications; by one or more server computing devices, ordering
the events and the device states in the event and context data into a state-data-review structure; by one or more server computing
devices, adapting the operation of the client computing device by altering a user interface design of at least one of the
plurality of applications to improve the level of user interaction with advertising content associated with the at least one
of the applications, wherein the altering is based on an analysis of the state data review structure.

US Pat. No. 9,246,554

USING A WIRELESS RADIO TO MANAGE POWER CONSUMPTION

Facebook, Inc., Menlo Pa...

1. A wireless communication system comprising:
a wireless device associated with a user of a social-networking system, the user being represented by a user node in a social
graph of the social-networking system; and

a base station comprising:
a network connection configured to receive information from the social-networking system, the information comprising a plurality
of content portions; and

a radio-frequency (RF) transceiver configured to transmit data to the wireless device using an RF signal, wherein:
the data transmitted to the wireless device comprises at least one of the content portions received from the social-networking
system; and

at least some of the data transmitted to the wireless device is limited or prioritized based at least in part on social-networking
information associated with the user, wherein the social-networking information associated with the user comprises a plurality
of affinity coefficients corresponding, respectively, to the plurality of content portions, wherein each affinity coefficient
represents an affinity of the user for one of the content portions and is based at least in part on a degree of separation
in the social graph between the user node and another node associated with the one of the content portions;

wherein the wireless device is configured to:
generate operating power for the wireless device from the RF signal;
receive the data transmitted by the RF transceiver using the RF signal; and
communicate other data to the base station using backscatter communication.

US Pat. No. 9,235,863

DISPLAY SHOWING INTERSECTION BETWEEN USERS OF A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
maintaining in a data store social information associated with a plurality of users of a social networking system, a plurality
of actions performed by the users, and a plurality of social networking system objects associated with one or more of the
actions;

receiving, from a device associated with a viewing user, a request for a page, the request identifying two or more users of
the social networking system, the requested page comprising one or more social networking system objects upon which, for each
object, an action was performed by each of the identified social networking system users; and

responsive to receiving the request for the page:
identifying one or more social networking system objects wherein, for each identified object, an action was performed by each
of the identified users with respect to the social networking system object;

determining an order for the identified social networking system objects;
identifying a set of images, each image from the set of images associated with each of the identified users;
selecting an image from the set of images based on a relevancy of the image to all of the identified users, wherein the relevancy
of the image decreases when the image is associated with additional users other than the identified users;

generating the requested page, the generated page including information associated with the identified social networking system
objects, the actions performed on each of the social networking system objects by each of the identified users, the information
ordered within the generated page based on the determined order for the identified social networking system objects, and the
selected image; and

sending the generated page to the device associated with the viewing user for display.

US Pat. No. 9,173,072

METHODS AND SYSTEMS FOR VERIFICATION IN ACCOUNT REGISTRATION

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving, by a computer system, a request for registering a user, a header portion of the request comprising a signature
provided by a wireless carrier and a Mobile Subscriber Integrated Services Digital Network Number (MSISDN) associated with
a mobile device, the MSISDN being provided by the wireless carrier, and a body portion of the request comprising registration
information provided by the user, the registration information comprising a phone number;

determining, by the computer system, whether the MSISDN associated with the mobile device matches the phone number in the
registration information; and

if the MSISDN associated with the mobile device matches the phone number in the registration information,
confirming, by the computer system, registration of an account for the user with a social networking system;
else,
refusing, by the computer system, registration of the account for the user with the social networking system and notifying
the user about the refused registration.

US Pat. No. 9,100,538

LIMITED LENGTH VIDEO MESSAGING

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
receiving, from a client device, a recorded video message at a server, wherein the server is a server of a social communications
system;

restricting, by the server, a length of the recorded video message to a predetermined limit;
sending the restricted video message to one or more intended recipients for viewing via a dedicated client application; and
controlling, by the server, an ability of the one or more intended recipients to view the sent and restricted video message,
wherein controlling the ability of the one or more intended recipients to view the restricted video message comprises at least
one of filtering the restricted video message based on capabilities of the one or more intended recipients to view the restricted
video message, editing the restricted video message, or deleting the restricted video message.

US Pat. No. 9,948,735

USER ACTIVITY TRACKING SYSTEM AND DEVICE

Facebook, Inc., Menlo Pa...

1. A method comprising:by a mobile-client device, determining one or more sensor signals indicative of motion associated with activities of a user of the mobile-client device;
by the mobile-client device, determining a plurality of activity types that correspond to a portion of the sensor signals;
by the mobile-client device, determining one or more activity periods of the user, wherein each activity period comprises a period of time corresponding to one or more activity types;
by the mobile-client device, determining whether two or more of the activity periods should be combined into a single activity period, wherein the determining is based on a heuristics-type analysis based on a length of time for each of the two or more activity periods and activity types corresponding to each of the two or more activity periods; and
by the mobile-client device, displaying the determined activity types on a display of the mobile-client device.

US Pat. No. 9,430,495

IDENTIFYING ENTRIES IN A LOCATION STORE ASSOCIATED WITH A COMMON PHYSICAL LOCATION

Facebook, Inc., Menlo Pa...

1. A computer implemented method comprising:
generating a location store comprising a plurality of entries maintained by a social networking system, each entry including
a physical location description and one or more terms associated with the physical location description;

identifying a plurality of entries having a physical location description within an area;
determining a local frequency associated with each term included the identified plurality of entries, the local frequency
of a term representing a number of occurrences of the term within the identified plurality of entries;

determining a global frequency associated with each term included in the identified plurality of entries, the global frequency
of the term representing a number of occurrences of the term within the location store;

identifying one or more terms having an associated local frequency exceeding an associated global frequency by at least a
threshold amount as trending terms;

generating a score for an entry from the plurality of entries based at least in part on one or more difference between terms
in the entry from the plurality of entries and terms in an additional entry from a plurality of entries and whether a term
in the entry differing from a term in the additional entry is a trending term; and

generating a combined entry including terms from the entry and from the additional entry if the score is less than a threshold
value.

US Pat. No. 9,405,843

SYSTEM AND METHOD FOR ANALYZING COMMUNICATIONS

FACEBOOK, INC., Menlo Pa...

1. A method comprising:
accessing a plurality of communication messages comprising communications between a user and a plurality of contacts; and
processing, by at least one processor, the plurality of communication messages, wherein processing the plurality of communication
messages includes:

determining the identity of each of the plurality of contacts;
assigning rankings to each of the plurality of contacts based on the plurality of communication messages; and
determining if each of the plurality of contacts has engaged in reciprocal communications with the user; and
determining, by the at least one processor, relationships between the user and the plurality of contacts based on the processing
of the plurality of communication messages.

US Pat. No. 9,336,155

STATISTICAL CACHE PROMOTION

Facebook, Inc., Menlo Pa...

1. A system for storing data in a cache, comprising:
a processor configured to:
determine that a data record is not stored in a cache;
generate a random value using a threshold value; and
determine whether to store the data record in the cache based at least in part on the generated random value;
wherein the threshold value has been determined based at least in part on an attribute of the cache; and
a memory coupled to the processor and configured to provide the processor with instructions.

US Pat. No. 9,167,014

PRESENTING QUESTION AND ANSWER DATA IN A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
accessing a social networking system question associated with a social networking system questioning user, the question associated
with a plurality of answers provided by one or more social networking system answering users, the plurality of answers associated
with a pre-determined order received from the questioning user;

presenting the accessed question to a social networking system viewing user different than the questioning user;
selecting a subset of the plurality of answers to present to the viewing user, the selected subset of answers comprising a
threshold number of answers that have received a highest number of votes by social networking system answering users that
have answered the question and that have established a connection with the viewing user, the threshold number selected based
on a client device used by the viewing user to display the answer display;

generating, by a processor, an answer display comprising the selected subset of answers, the selected subset of answers ordered
within the answer display according to the pre-determined order received from the questioning user; and

sending the answer display for display to the viewing user.

US Pat. No. 9,633,121

PERSONALIZING DEFAULT SEARCH QUERIES ON ONLINE SOCIAL NETWORKS

Facebook, Inc., Menlo Pa...

1. A method comprising:
accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges
between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to a first user associated with an online social network; and
a plurality of second nodes that each correspond to a concept or a second user associated with the online social network;
scoring a first set of nodes of the plurality of second nodes based on one or more user-engagement factors;
identifying one or more common nodes, wherein each common node is connected by one or more edges of the plurality of edges
to one or more nodes of the first set of nodes having a score greater than a threshold score;

generating a plurality of structured queries that each comprise references to one or more nodes of the plurality of nodes
and one or more edges of the plurality of edges, wherein at least one of the structured queries is a personalized query comprising
a reference to the common node and one or more edges of the plurality of edges that are connected to the common node; and

sending one or more of the generated structured queries to the first user for display on a page currently accessed by the
first user, wherein at least one of the sent structured queries is a personalized query.

US Pat. No. 9,501,271

DEVICE, METHOD, AND GRAPHICAL USER INTERFACE FOR PRESENTING AND INSTALLING APPLICATIONS

Facebook, Inc., Menlo Pa...

1. An electronic device, comprising:
a display,
one or more processors, and
memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions
for:

displaying a user interface with a first plurality of application icons, wherein:
the first plurality of application icons corresponds to a first plurality of applications that are stored in the memory of
the electronic device; and

activation of a respective application icon in the first plurality of application icons launches an application in the first
plurality of applications that corresponds to the respective application icon;

while displaying the user interface with the first plurality of application icons, detecting activation of a first application
icon in the first plurality of application icons;

in response to detecting activation of the first application icon, displaying a first application that corresponds to the
first application icon;

while displaying the first application, detecting a user input requesting an operation of a first type;
in response to detecting the user input requesting the operation of the first type, displaying a user interface with a second
plurality of application icons, wherein:

the second plurality of application icons is distinct from the first plurality of application icons;
each application icon in the second plurality of application icons corresponds to a respective application that is capable
of performing the operation of the first type when the respective application is stored in the memory of the electronic device;

the second plurality of application icons includes one or more application icons that correspond to one or more applications
that are stored in the memory of the electronic device; and

the second plurality of application icons includes one or more application icons that correspond to one or more applications
that are not stored in the memory of the electronic device;

while displaying the user interface with the second plurality of application icons, detecting activation of a second application
icon, in the second plurality of application icons, that corresponds to a second application that is not stored in the memory
of the electronic device; and,

after detecting activation of the second application icon, installing the second application in the memory of the electronic
device.

US Pat. No. 9,438,548

ADDING CONTEXTUAL INFORMATION TO MESSAGES

Facebook, Inc., Menlo Pa...

1. A method comprising:
receiving an online chat message associated with a plurality of users of a social networking system, the online chat message
received via an online chat channel;

identifying a plurality of online chat messages previously sent between the plurality of users via the online chat channel,
the plurality of online chat messages being associated with respective timestamps;

identifying a subset of online chat messages from the plurality of online chat messages that are more recent than other online
chat messages in the plurality of online chat messages, the subset of online chat message identified based on the respective
timestamps of the plurality of online chat messages and the subset of online chat messages falling within a pre-determined
window of time;

generating, by the social networking system, an email message that includes content from each of the received online chat
message and the subset of recent online chat messages identified based on the respective timestamps organized in chronological
order, the email also including profile pictures of the plurality of users and a link to a conversation thread associated
with the plurality of users; and

emailing the email message from the social networking system to at least one of the plurality of users that is an intended
recipient of the online chat message.

US Pat. No. 9,275,647

PERIODIC AMBIENT WAVEFORM ANALYSIS FOR ENHANCED SOCIAL FUNCTIONS

Facebook, Inc., Menlo Pa...

1. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
receive an audio waveform fingerprint and a client-determined location from a client device;
compare the received audio waveform fingerprint to a database of stored audio waveform fingerprints, each stored audio waveform
fingerprint associated with an object in an object database;

find one or more matching audio waveform fingerprints from a comparison set of audio waveform fingerprints obtained from the
audio waveform fingerprint database;

determine, based at least in part on the matching audio waveform fingerprints, location information associated with a location
of the client device; and

send the location information to the client device, wherein the client device is operable to update the client-determined
location based at least in part on the location information;

wherein:
the database of stored audio waveform fingerprints comprises uploaded audio waveform fingerprints from one or more other client
devices; and

the comparison set of audio waveform fingerprints is determined based at least in part on the received client-determined location.

US Pat. No. 9,264,581

SYSTEMS AND METHODS FOR LOSSY COMPRESSION OF IMAGE COLOR PROFILES

Facebook, Inc., Menlo Pa...

1. A method comprising:
by one or more computing devices, receiving an image that corresponds to a first color space; and
by one or more computing devices, creating, based on an approximation function, a color profile for transforming the image
from the first color space to a second color space, wherein:

the approximation function is determined by a polyline;
the polyline comprises a number of line segments; and
the polyline is separated from an ideal function curve for transforming the image by an error value that is within a pre-determined
threshold.

US Pat. No. 9,229,990

GENERATING METRICS FOR CONTENT ITEMS PRESENTED IN AN ONLINE SYSTEM

Facebook, Inc., Menlo Pa...

1. A method comprising:
storing, in an online system, data describing interactions between one or more users of the online system and one or more
content items presented by the online system;

generating aggregations of types of interactions between one or more users and each of the one or more content items, wherein
an aggregation of a type of interaction identifies one or more users performing the type of interaction on a content item;

receiving a request for a metric describing interactions with one or more content items identified by the request and presented
by the online system during a time interval;

dividing stored interactions between one or more users of the online system and one or more of the content items identified
by the request into a plurality of portions, the stored interactions not included in any of the aggregations;

generating one or more intermediate aggregations of user interactions from the plurality of portions by applying an aggregation
operator to user interactions included in the plurality of portions; and

combining the one or more intermediate aggregations into a combined aggregation;
retrieving one or more aggregations of types of interactions identifying one or more content items identified by the request;
generating a value for the metric based on the combined aggregation and the retrieved one or more aggregations; and
storing the value for the metric.

US Pat. No. 9,210,118

AUTOMATICALLY PROVIDING A COMMUNICATION BASED ON LOCATION INFORMATION FOR A USER OF A SOCIAL NETWORKING SYSTEM

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:
receiving, by a social networking system, location information for a device associated with a first user of the social networking
system and including a location identifier;

determining a location name based on a location identifier;
associating the location information with the first user in a user profile associated with the first user of the social networking
system; and

sending, from the social networking system to a second user, a communication generated based at least in part on the location
information, the communication including the determined location name.