US Pat. No. 10,169,065

LIVE MIGRATION OF HARDWARE ACCELERATED APPLICATIONS

Altera Corporation, San ...

1. A method of migrating a hardware accelerated application from a source server to a destination server, wherein the source server comprises a processor connected to an external migration controller and reconfigurable circuitry, wherein the reconfigurable circuitry includes a plurality of accelerator resource slots and a memory management unit for the accelerator resource slots, the method comprising:at the source server, receiving a migration notification from the migration controller, wherein the migration notification specifies a set of accelerator resource slots of the plurality of accelerator resource slots to be migrated and an identifier for the resources in the memory management unit to be migrated; wherein the migration controller is further configured for:
saving an image of state information associated with the hardware accelerated application from the source server to network attached storage in response to receiving the migration notification;
copying the image of state information associated with the hardware accelerated application from the network attached storage to the destination server; and
running the hardware accelerated application in parallel on the source server and the destination server.

US Pat. No. 10,169,063

HYPERVISOR CAPABILITY ACCESS PROVISION

Red Hat Israel, LTD., Ra...

1. A method, comprising:receiving, via a user interface provided by a host controller, a first request for a first hypervisor capability of a hypervisor executing on a host server;
determining, by a processing device, that the first hypervisor capability can be provisioned by a virtualization manager executing on the host controller in view of inclusion within a hypervisor capability subset offered by the virtualization manager;
receiving, via the user interface, a second request for a second hypervisor capability of the hypervisor;
determining, by the processing device, that the virtualization manager cannot provision the second hypervisor capability in view of lack of inclusion within the hypervisor capability subset offered by the virtualization manager;
providing, via the user interface, a first indication of successful provision of the first hypervisor capability in response to the first hypervisor capability being provisioned by the virtualization manager; and
providing, via the user interface, a second indication of successful provision of the second hypervisor capability in response to the second hypervisor capability being provisioned by a hypervisor accessor bypassing the virtualization manager and using one or more first common gateway interface (CGI) scripts hosted by the hypervisor accessor to directly access the hypervisor via a command line tool of the hypervisor, wherein a set of hypervisor capabilities is accessible by the hypervisor accessor executing on the host server, the set comprising the hypervisor capability subset that is accessible by the virtualization manager and a plurality of hypervisor capabilities that are inaccessible by the virtualization manager, the plurality of hypervisor capabilities comprising the second hypervisor capability.

US Pat. No. 10,169,062

PARALLEL MAPPING OF CLIENT PARTITION MEMORY TO MULTIPLE PHYSICAL ADAPTERS

International Business Ma...

1. A method for performing an input/output (I/O) request, the method comprising:Mapping an address for at least a first page associated with a virtual I/O request to an entry in a virtual translation control entry (TCE) table;
Identifying a plurality of physical adapters required to service the virtual I/O request;
And upon determining, for each of the identified physical adapters, that an entry in the respective physical TCE table corresponding to the physical adapter is available, for the identified available physical adapters:
mapping the entry in the virtual TCE table to an entry in the respective physical TCE table corresponding to the identified available physical adapters in parallel, and
issuing a physical I/O request corresponding to each physical TCE table entry to the respective available physical adapters in parallel.

US Pat. No. 10,169,061

SCALABLE AND FLEXIBLE OPERATING SYSTEM PLATFORM

FORD GLOBAL TECHNOLOGIES,...

1. A system, comprising a computer having a processor and a memory, wherein the memory includes:at least one bootloader program that includes instructions to instantiate a management layer that includes a first operating system kernel and a virtual machine manager that executes in the context of the operating system kernel;
instructions in the management layer to instantiate, after the management layer is running, at least one second operating system that executed in the context of the virtual machine manager; and wherein the memory of the computer further includes at least one application; and
at least one security layer that includes instructions for receiving, from at least one application, a request to instantiate and execute, and for identifying a guest operating system to instantiate and execute the at least one application;
wherein the at least one boot loader program includes a primary boot loader and a secondary boot loader, wherein the secondary boot loader includes instructions for receiving updates to support the guest operating system according to a download initiated by the guest operating system.

US Pat. No. 10,169,060

OPTIMIZATION OF PACKET PROCESSING BY DELAYING A PROCESSOR FROM ENTERING AN IDLE STATE

Amazon Technologies, Inc....

1. A method, comprising:determining, by a computer system, a first processing time for a first stage of a pipeline and a second processing time for a second stage of the pipeline, the first stage and the second stage included in a plurality of stages of the pipeline;
determining a first delay value based at least in part on the first processing time, the first delay value being associated with the first stage of the pipeline;
obtaining a first network packet at the pipeline, the first network packet being obtained from a particular source within a first time that includes at least the first processing time and the second processing time;
causing a processor to process the first network packet at the first stage of the pipeline while the processor is in a processing state;
causing the processor to remain in the processing state after processing the first network packet at the first stage of the pipeline for at least the first delay value;
causing the processor to process the first network packet at the second stage of the pipeline while the processor is in the processing state;
determining a second delay value based at least in part on the second processing time, the second delay value being associated with the second stage of the pipeline, the first delay value being different from the second delay value, and the second delay value being calculated based at least in part on which of polling the processor at the first stage of the pipeline, the first processing time, or the second processing time is a greatest value;
causing the processor to remain in the processing state after processing the first network packet for at least the second delay value; and
obtaining a second network packet at the pipeline, the second network packet being obtained after the first network packet is obtained, and the second network packet being able to be processed while the processor is in the processing state.

US Pat. No. 10,169,059

ANALYSIS SUPPORT METHOD, ANALYSIS SUPPORTING DEVICE, AND RECORDING MEDIUM

FUJITSU LIMITED, Kawasak...

11. An analysis support computer, comprising:a memory; and
a processor coupled to the memory and configured to:
first search, in configuration identification information that identifies configuration values indicating identification of software, hardware resource specification, and hardware resource utilization of physical machines and virtual machines executed on the physical machines, before and after respective changes of virtual machines on the physical machines and of the virtual machines respectively executed on the physical machines, for a second physical machine that has configuration identification information which configuration values of software, hardware resource specification and hardware resource utilization are similar to configuration values of a first physical machine, on which configuration identification information of a first virtual machine to be analyzed for migration is executed, before and after a change of a state of at least one virtual machine among virtual machines executed on the second physical machine,
second search in the configuration identification information for a second virtual machine among the at least one virtual machine that is executed on the second physical machine and which configuration values of software, hardware resource specification and hardware resource utilization are similar to configuration values of software, hardware resource specification and hardware resource utilization of the first virtual machine, before and after the change of the state of the second virtual machine executed on the second physical machine, to output information for execution of a process to control the migration of the first virtual machine, in response to the first and second searching, and
perform analysis processing that analyzes operational trends of the virtual machines by using the hardware resource utilization of the first virtual machine and the hardware resource utilization of the second virtual machine.

US Pat. No. 10,169,058

SCRIPTING LANGUAGE FOR ROBOTIC STORAGE AND RETRIEVAL DESIGN FOR WAREHOUSES

1. A system for scripting language for design and operation of a robotic storage and retrieval system in a warehouse, said system comprising:processor and memory operable to provide;
a scripting language framework for directed operation of a control system of said robotic storage and retrieval system, said scripting language framework providing a shelving descriptor and a robot descriptor;
said shelving descriptor operable to model a shelving to be deployed in said warehouse, said shelving descriptor further having associated shelving attributes defining properties of said shelving descriptor;
said robot descriptor operable to model a robot to be deployed in said warehouse, said robot descriptor further having associated robot attributes defining properties of said robot descriptor;
a scripting editor comprising a user interface operable to receive input scripting language code conforming to said scripting language framework and based on warehouse metadata;
a parser operable to interpret or compile said input scripting language code into a runtime system;
said runtime system configured to issue control operations to a robot in said warehouse and communicatively interposed between said robot and a control system of said robotic storage and retrieval system.

US Pat. No. 10,169,057

SYSTEM AND METHOD FOR DEVELOPING AN APPLICATION

Taplytics Inc., Toronto ...

1. A method of remotely modifying a user interface of an application deployed on a plurality of computing devices, the method to be performed at a server that is remote from the computing devices, the method comprising:identifying a first set of parameters corresponding to at least one user interface element of the user interface;
identifying a second set of parameters, the second set of parameters including second update parameters for updating the at least one user interface element of the user interface, the at least one user interface element being identified at the server by a programming language unit for the user interface element in the program code of the application;
identifying at least one first computing device and at least one second computing device in the plurality of computing devices;
associating the at least one first computing device with the first set of parameters;
associating the at least one second computing device with the second set of parameters;
sending the second update parameters to the at least one second computing device, wherein each computing device in the at least one second computing device
updates the at least one user interface element of the deployed application on the second computing device with the second update parameters; and
displays a modified user interface for the deployed application, the modified user interface comprising the updated at least one user interface element.

US Pat. No. 10,169,056

EFFECTIVE MANAGEMENT OF VIRTUAL CONTAINERS IN A DESKTOP ENVIRONMENT

International Business Ma...

1. A method for identifying installed software components in a container running in a virtual execution environment, wherein the container is created by instantiating image data, the method comprising:determining a respective identifier for each of individual layers of a layered structure of the image data;
retrieving from a repository storage arrangement storing information for non-container-based software and container-based software, the information for the container-based software identifying at least one of the installed software components in the container based on the respective identifier for at least one of the individual layers;
forming, from the information stored in the repository storage arrangement, a displayable data structure allowing row filtering for software management and at least specifying as a respective row in the displayable data structure, for each of the installed software components, (i) a type as one of the non-container-based software or the container-based software, (ii) a virtual machine and an operating system corresponding thereto, and (iii) an operating status of started or stopped; and
displaying, on a display device, the displayable data structure.

US Pat. No. 10,169,055

ACCESS IDENTIFIERS FOR GRAPHICAL USER INTERFACE ELEMENTS

SAP SE, Walldorf (DE)

1. A non-transitory computer readable storage medium storing instructions, which when executed by a computer cause the computer to perform operations comprising:receiving a trigger to render at least one graphical user interface element on a graphical user interface associated with a display;
retrieving one or more pre-defined accessibility parameters associated with the at least one graphical user interface element, wherein retrieving the one or more pre-defined accessibility parameters associated with the at least one graphical user interface element comprises accessing one or more application programming interfaces (APIs) associated with the at least one graphical user interface element, and wherein the one or more APIs returning a set of requirements associated with rendering the triggered at least one graphical user interface element;
performing an access control check in real time to determine accessibility information associated with an application and corresponding to the pre-defined accessibility parameters, wherein the access control check determines whether the accessibility information meets the one or more pre-defined accessibility parameters based on whether the one or more pre-defined accessibility parameters are met;
associating a visual identifier representing an accessibility status to the at least one graphical user interface element determined based on the access control check; and
rendering the at least one graphical user interface element with the visual identifier on the graphical user interface, wherein each of the at least one graphical user interface elements are augmented with the associated visual identifier indicating a real-time accessibility status of the associated graphical user interface element.

US Pat. No. 10,169,054

UNDO AND REDO OF CONTENT SPECIFIC OPERATIONS

International Business Ma...

1. A method for performing undo or redo requests, the method comprising:receiving, by one or more computer processors, a list of performed operations, wherein the list of performed operations contains all operations performed in an order of processing;
receiving, by one or more computer processors, a request from a user, wherein the request includes at least one of an undo request of a last performed operation or a redo request of a last performed undo request from the list of performed operations;
requesting, by one or more computer processors, the user provide a selection of at least one content type, wherein the at least one content type is at least one of the following categories: text, audio, video, images;
receiving, by one or more computer processors and from the user, the selection of at least one content type;
determining, by one or more computer processors, a content type of each performed operation in the list of performed operations;
determining, by one or more computer processors, a group of all performed operations from the list of performed operations that have a content type the same as one content type of the at least one content types;
determining, by one or more computer processors, that the group of all performed operations from the list of performed operations that have a content type the same as one content type of the at least one content types consists of zero performed operations;
requesting, by one or more computer processors, that the user provide an additional selection of at least one content type which consists of one or more performed operations;
receiving, by one or more computer processors and from the user, the additional selection of at least one content type; and
responsive to determining the group of all performed operations from the list of performed operations that have a content type the same as one content type of the at least one content types, performing, by one or more computer processors, the at least one of the undo request of a last performed operation or the redo request of a last performed undo request from the list of performed operations that have one content type of the at least one content types.

US Pat. No. 10,169,053

LOADING A WEB PAGE

International Business Ma...

1. A method for loading a web page, the method comprising:searching, by one or more processors, a web application for user interface change portions, wherein execution of the user interface change portions triggers a user interface to change, and wherein the web application is renderable on the user interface as a web page by a browser;
marking, by one or more processors, the user interface change portions to interrupt, upon execution of the web application, the execution of the web application;
interrupting, by one or more processors, execution of the web application upon an initial execution of the web application;
displaying, by one or more processors, the user interface change portions;
displaying, by one or more processors, other portions of the web page at an N unit time delay after a time that the user interface change portions are displayed;
storing, by one or more processors, code for identified user interface change portions from the web page in a ready queue;
storing, by one or more processors, code for the other portions of the web page in a candidate queue, wherein the ready queue and the candidate queue are different queues;
retrieving and executing, by one or more processors, the code for the identified user interface change portions from the ready queue in order to display the identified user interface change portions of the web page;
in response to retrieving and executing the code from the ready queue in order to display the identified user interface change portions of the web page, moving, by one or more processors, the code for the other portions of the web page from the candidate queue to the ready queue; and
retrieving and executing, by one or more processors, the code in the ready queue for the other portions in order to display the other portions of the web page.

US Pat. No. 10,169,052

AUTHORIZING A BIOS POLICY CHANGE FOR STORAGE

Hewlett-Packard Developme...

1. A method executable by a computing device, the method comprising:receiving a basic input output system (BIOS) policy change;
authorizing the BIOS policy change; and
upon the authorization of the BIOS policy change, storing a first copy of the BIOS policy change in a first memory accessible by a central processing unit and transmitting a second copy of the BIOS policy change for storage in a second memory electrically isolated from the central processing unit;
wherein the BIOS policies comprises at least one of a boot order of the BIOS, hardware configurations, and a BIOS security mechanism, and
wherein the BIOS policy change is a modification to the at least one of a boot order of the BIOS, hardware configurations, and a BIOS security mechanism.

US Pat. No. 10,169,051

DATA PROCESSING DEVICE, PROCESSOR CORE ARRAY AND METHOD FOR CHARACTERIZING BEHAVIOR OF EQUIPMENT UNDER OBSERVATION

Blue Yonder GmbH, Karlsr...

1. A data processing device for characterizing behavior properties of an equipment under observation, the data processing device comprising:a plurality of processing units configured to:
pre-process historic data from a plurality of master equipment in order to define a configuration in advance; and
process input values based on numerical transfer functions to generate output values by implementing an input to output mapping based on the configuration defined, wherein the configuration corresponds to behavior properties of one of the plurality of master equipment, wherein some of the output values represent the behavior properties of the equipment under observation, and wherein the plurality of processing units is cascaded into a first processing stage and a second processing stage, wherein
the first processing stage comprises a plurality of first processing units that are adapted to receive a plurality of equipment data values from the equipment under observation as input, and adapted to provide a plurality of intermediate data values as output, according to a plurality of first numerical transfer functions, and
the second processing stage comprises a second processing unit that is adapted to receive the plurality of intermediate data values as input and adapted to provide behavior data as output values according to a second numerical transfer function.

US Pat. No. 10,169,050

SOFTWARE APPLICATION PROVISIONING IN A DISTRIBUTED COMPUTING ENVIRONMENT

International Business Ma...

1. A software provisioning system for a computer system comprising client devices connected via a communication network to a computing infrastructure, the computing infrastructure being configured to provide, upon a user's request, a software application package to an already running machine, wherein the software provisioning system is configured to:retrieve session information about a user logged in to the computing infrastructure via a client device, thereby creating a session;
determine a list of software application packages that the user is entitled to request to be provided to the running machine so that the user is able to use a software application contained in the software application packages; and
calculate software application usage information from the session information and the list of software application packages.

US Pat. No. 10,169,048

PREPARING COMPUTER NODES TO BOOT IN A MULTIDIMENSIONAL TORUS FABRIC NETWORK

International Business Ma...

1. A method for preparing a plurality of computer nodes to boot in a multidimensional fabric network, comprising:retrieving, by a fabric processor (FP) of a computer node within the multidimensional fabric network, a MAC address from a baseboard management controller (BMC) of the computer node and configuring a DHCP discovery packet using the BMC MAC address and sending that packet into the multi-host switch, wherein the BMC is directly connected to the FP by a management port, and wherein the BMC, the multi-host switch, and the FP are located inside the computer node;
establishing an exit node from the multidimensional fabric network to a service provisioning node (SPN) outside the multidimensional fabric network, wherein the SPN is not part of the multidimensional fabric network;
forwarding, by the exit node to the SPN, DHCP requests for IP addresses from the multi-host switch of the computer node within the multidimensional fabric network, wherein the computer node is identified by the BMC MAC address found in the DHCP discovery packet coming from that node's multi-host switch;
receiving, from the SPN by the exit node, a location-based IP address, and forwarding the received location-based IP address to the computer node, wherein the location-based IP address is a computed IP address that uniquely identifies the physical location of the computer node within the multidimensional fabric network;
calculating, by the FP, a host MAC address, wherein the host MAC address is the FP received location-based IP address plus a value of one, combined with a fixed, three byte value for a high twenty-four bits of a forty-eight bit MAC address, the fixed three byte value being known by all nodes and by the SPN; and
programming, by the FP, the calculated host MAC address onto the multi-host switch, wherein the calculated host MAC address replaces the factory default MAC address in NVRAM.

US Pat. No. 10,169,047

COMPUTING DEVICES, METHODS, AND STORAGE MEDIA FOR A SENSOR LAYER AND SENSOR USAGES IN AN OPERATING SYSTEM-ABSENT ENVIRONMENT

Intel Corporation, Santa...

1. A computing device for computing, comprising:a processor; and
firmware to be operated by the processor while the computing device is operating without an operating system (OS) that includes one or more modules, including an environmental factor boot module, and a sensor layer,
wherein the sensor layer is to:
receive sensor data produced by a plurality of sensors, wherein the plurality of sensors is of the computing device or operatively coupled with the computing device;
aggregate the sensor data from the plurality of sensors; and
selectively provide the sensor data or the aggregated sensor data to the one or more modules via an interface of the sensor layer that abstracts the plurality of sensors; and
wherein the environmental factor boot module is to selectively instantiate one or more drivers for one or more corresponding sensors of the plurality of sensors, based at least in part on a portion of sensor data or aggregated sensor data associated with one or more environmental factors.

US Pat. No. 10,169,046

OUT-OF-ORDER PROCESSOR THAT AVOIDS DEADLOCK IN PROCESSING QUEUES BY DESIGNATING A MOST FAVORED INSTRUCTION

International Business Ma...

1. A processor for executing software instructions, the processor comprising:a plurality of processing queues that process the software instructions and provide out-of-order processing of the software instructions when specified conditions are satisfied;
an instruction sequencing unit circuit that determines a sequence of the software instructions executed by the processor, wherein the instruction sequencing unit circuit comprises a most favored instruction circuit that selects an instruction as the most favored instruction (MFI) and communicates the MFI to the plurality of processing queues; and
wherein at least one of the plurality of processing queues comprises a plurality of slots that receive any instruction that is not the most favored instruction when written to one of the plurality of slots, and a dedicated slot for processing the MFI, wherein the dedicated slot cannot process any instruction that is not the MFI.

US Pat. No. 10,169,045

METHOD FOR DEPENDENCY BROADCASTING THROUGH A SOURCE ORGANIZED SOURCE VIEW DATA STRUCTURE

Intel Corporation, Santa...

1. A method for dependency broadcasting through a source organized source view data structure, the method comprising:receiving an incoming instruction sequence using a global front end;
grouping the instructions to form instruction blocks;
populating the register template with block numbers corresponding to the instruction blocks, wherein the block numbers corresponding to the instruction blocks indicate interdependencies among the instruction blocks wherein an incoming instruction block writes its respective block number into fields of the register template corresponding to destination registers referred to by the incoming instruction block;
populating a source organized source view data structure, wherein the source view data structure stores the instruction sources corresponding to the instruction blocks as read from the register template by incoming instruction blocks;
upon dispatch of one block of the instruction blocks, broadcasting a number belonging to the one block to a row of the source view data structure that relates to the one block and marking sources of the row accordingly; and
updating dependency information of remaining instruction blocks in accordance with the broadcast.

US Pat. No. 10,169,044

PROCESSING AN ENCODING FORMAT FIELD TO INTERPRET HEADER INFORMATION REGARDING A GROUP OF INSTRUCTIONS

Microsoft Technology Lice...

1. A method comprising:fetching a group of instructions, configured to execute atomically by a processor, and a group header for the group of instructions, wherein the group header comprises a plurality of fields including an encoding format field, wherein the encoding format field is configured to provide to the processor information concerning how to interpret a format of at least one of a remaining of the plurality of fields of the group header for the group of instructions, and wherein the plurality of fields of the group header comprises: a first field comprising first information regarding exit types for use by a branch predictor in making branch predictions for the group of instructions and a second field comprising second information about whether during execution of the group of instructions each of the group of instructions requires independent vector lanes, a third field comprising third information about whether during the execution of the group of instructions branch prediction is inhibited, and a fourth field comprising fourth information about whether during the execution of the group of instructions predicting memory dependencies between memory operations is inhibited; and
processing the encoding format field to: (1) interpret the first information in the first field to generate a first signal for a branch predictor associated with the processor, (2) interpret the second information in the second field to generate a second signal for an instruction decoder or an instruction scheduler associated with the processor, (3) interpret the third information in the third field to generate a third signal for the branch predictor associated with the processor, and (4) interpret the fourth information in the fourth field to generate a fourth signal to inhibit dependencies between memory operations, including load/store operations.

US Pat. No. 10,169,043

EFFICIENT EMULATION OF GUEST ARCHITECTURE INSTRUCTIONS

Microsoft Technology Lice...

1. In a computing environment a method of converting data for 80 bit registers of a guest architecture to data for 64-bit registers on a host system, the method comprising:determining that an operation should be performed to restore a first set of 80 bits stored in memory for a first 80 bit register of a guest architecture on a host having 64-bit registers;
storing a first set of 64 bits from the first set of 80 bits stored in memory, wherein the first set of 64 bits could be used for 64-bit SIMD operations in the guest architecture, in a first host register;
storing a first set of remaining 16 bits from the first set of 80 bits stored in memory in a supplemental memory storage;
documenting that the remaining 16 bits stored in the supplemental memory are padding bits;
identifying a SIMD operation that should be performed to operate on the first 80-bit register for the guest architecture; and
as a result of identifying a SIMD operation that should be performed to operate on the first 80-bit register for the guest architecture, determining to not convert the first set of 64 bits in the first host register to a floating point number.

US Pat. No. 10,169,041

EFFICIENT POINTER LOAD AND FORMAT

International Business Ma...

1. A method comprising:receiving a microprocessor instruction for processing by a microprocessor;
maintaining, by the microprocessor, the microprocessor instruction as a single instruction in an instruction queue until the microprocessor instruction is removed from the instruction queue for processing by the microprocessor;
processing the microprocessor instruction in a multi-cycle operation, wherein processing the microprocessor instruction comprises:
retrieving, by a load-store unit of the microprocessor and from cache memory of the microprocessor, a unit of data having a plurality of ordered bits during a first clock cycle;
zeroing, after the retrieving and during the first clock cycle, any of the bits that are not required for use with a predefined addressing mode;
shifting, by the load store unit, the unit of data by a number of bits during a second clock cycle immediately following the first clock cycle;
placing, after the shifting and during the second clock cycle, the unit of data into a register of the microprocessor; and
providing, after the shifting and during the second clock cycle, the unit of data to comparison logic of the microprocessor, wherein the microprocessor instruction is maintained as a single instruction in a completion table during the processing of the microprocessor instruction.

US Pat. No. 10,169,039

COMPUTER PROCESSOR THAT IMPLEMENTS PRE-TRANSLATION OF VIRTUAL ADDRESSES

OPTIMUM SEMICONDUCTOR TEC...

1. A processor, comprising:a register file comprising one or more registers; and
processing logic circuit, communicatively coupled to the register file, to:
identify a value stored in a first register of the register file as a virtual address, the virtual address comprising a corresponding virtual base page number;
translate the virtual base page number to a corresponding real base page number and zero or more real page numbers, wherein zero or more real page numbers correspond to zero or more virtual page numbers associated with the virtual base page number;
store, in the one or more registers, the real base page number and the zero or more real page numbers;
responsive to identifying at least one input value stored in at least one register of the register file specified by an instruction, combine the at least input value to produce a result value;
compute, based on real translation information stored in the one or more registers, a real translation to a real address of the result value; and
access, based on the computed real translation, a memory.

US Pat. No. 10,169,037

IDENTIFYING EQUIVALENT JAVASCRIPT EVENTS

INTERNATIONAL BUSINESS MA...

1. A computer-implemented process for identifying equivalent JavaScript events, comprising:receiving source code containing two JavaScript events;
extracting, to form extracted HTML elements, an HTML element containing an event from each of the two JavaScript events; and
identifying that the two JavaScript events are equivalent based upon:
a determination that the extracted HTML elements are of a same type according to equivalency criteria B,
a determination that the extracted HTML elements have a same number of attributes according to equivalency criteria C,
a determination that JavaScript function calls of each of the two JavaScript events are similar according to equivalency criteria A, and
a determination that other attributes of the extracted HTML elements satisfy equivalency criteria D.

US Pat. No. 10,169,036

SYNCHRONIZING COMMENTS IN SOURCE CODE WITH TEXT DOCUMENTS

International Business Ma...

1. A method, with a processor of an information processing system, for synchronizing comments in a source code file with text of a source code document, the method comprising:analyzing a source code file;
identifying, based on the analyzing, a set of source code comment text within the source code file;
extracting, based on the identifying, a set of text from the set of source code comment text that has been identified;
generating, based on the identifying, a set of metadata for at least the set of text, the set of metadata comprises at least a unique representation of the set of text, and wherein the set of metadata at least identifies one or more line numbers in the source code file associated with the set of text;
applying a plurality of markup tags to the set of text, the plurality of markup tags at least one of formatting and stylizing the set of text when presented to the user; and
generating a source code document comprising one or more of the set of text, the set of metadata, and the plurality of markup tags.

US Pat. No. 10,169,035

CUSTOMIZED STATIC SOURCE CODE ANALYSIS

INTERNATIONAL BUSINESS MA...

1. A system comprising:a memory; and
a processor coupled with the memory, the processor configured to perform a customized static source code analysis of a source code, the customized static source code analysis comprising:
parsing a source code, the parsing comprising identifying a first application programming interface (API) call, and a second API call;
identifying a first analysis configuration file corresponding to the first API call, and a second analysis configuration file corresponding to the second API call;
determining, based on the first analysis configuration file, a description of the first API call and an identification of a first target resource invoked by the first API call;
determining, based on the second analysis configuration file, a second description of the second API call and an identification of a second target resource invoked by the second API call; and
generating a static source code analysis report that includes the description of the first API call and the identification of the first target resource corresponding to the first API call, and the description of the second API call and the identification of the second target resource corresponding to the second API call.

US Pat. No. 10,169,034

VERIFICATION OF BACKWARD COMPATIBILITY OF SOFTWARE COMPONENTS

International Business Ma...

1. A method of determining backward compatibility of a software component, the method comprising:generating, by a processor, respective tree structures for both a first version of the software component and a second version of the software component, wherein the respective tree structures include a name for each respective attribute, a type for each respective attribute, a name for each respective operation, and a type for each respective operation included in the respective tree structure;
identifying, by the processor, one or more programming interfaces that are exposed by the first version of the software component by: converting attributes of exposed programming interfaces into corresponding operations of a first tree structure that includes a name and a type for each parameter, return, and fault associated with each respective operation; and
determining, by the processor, a backward compatibility of the first version of the software component by comparing the operations of the first version of the software component to one or more operations of the second version of the software component based on the respective tree structures.

US Pat. No. 10,169,033

ASSIGNING A COMPUTER TO A GROUP OF COMPUTERS IN A GROUP INFRASTRUCTURE

International Business Ma...

1. A computer-implemented method for assigning a given computer to a computer group of a set of computer groups, the method comprising:scanning, by a computer, software components installed on the given computer, resulting in a list of discovered software components of the given computer;
for at least one computer group of the set of computer groups:
obtaining, by the computer, a first list of software components most frequently installed on computers of the at least one computer group, wherein the first list is unique for all computer groups of the set of computer groups; and
comparing, by the computer, the first list with the list of discovered software components and, based on the comparison, computing a first likelihood that the given computer belongs to the at least one computer group; and
in case only one of the first likelihoods exceeds a first threshold, assigning, by the computer, the given computer to the at least one computer group for which the first likelihood exceeds the first threshold.

US Pat. No. 10,169,032

PARALLEL DEVELOPMENT OF DIVERGED SOURCE STREAMS

International Business Ma...

1. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions, when executed by a computer, cause the computer to:manage, using a parallel development tool implemented in programmable logic circuitry, diverged source streams, wherein the parallel development tool is to:
track, on a position-by-position basis in a diverged code history associated with a diverged source stream, an origin source stream and an original position of code contained within the diverged source stream, wherein the position-by-position basis is one or more of an argument order or an operand order, and wherein the diverged code history is to be a separate file;
detect a modification to a first portion of the code contained within the diverged source stream at a first position;
automatically document the modification and the first position in the diverged code history, wherein the modification triggers a modification indicator to be prepended to an origin stream indicator and an original position indicator in the diverged code history, and wherein the modification indicator indicates that the modification occurred in a transition to a version of the diverged source stream;
detect a move of a second portion of the code in the diverged source stream from a second position to a third position;
automatically document the move and the second position in the diverged code history, wherein the move triggers a move indicator to be prepended to the origin stream indicator and the original position indicator in the diverged code history, and wherein the move indicator indicates the diverged source stream and a version level at which the move occurred;
detect an addition of a third portion of the code in the diverged source stream at a fourth position;
automatically document the addition with a timestamp in the diverged code history;
present, through a user interface device, an option to ignore the detected modification;
receive a request to merge shifted code contained within the diverged source stream with the origin source stream;
search, using the modification indicator, the original position indicator, the origin stream indicator, the move indicator, and the timestamp, an origin code history for content corresponding to the shifted code in the diverged code history to resolve the request;
track, on a position-by-position basis in the origin code history associated with the origin source stream, the origin source stream, an original position, the diverged source stream and a diverged position of code contained within the origin source stream, using the modification indicator, the original position indicator, the origin stream indicator, the move indicator, and the timestamp;
receive a request to merge out-of-order code contained within the diverged source stream with the origin source stream, wherein the out-of-order code is to be modified prior to other code that has already been merged; and
present, through the user interface device, an alignment option to merge conflicted code, wherein the conflicted code is to be bounded by modified code, wherein the alignment option identifies the modified code at one or more locations to use to correctly merge the conflicted code, and wherein at least one of the one or more locations of the conflicted code includes one or more of the modification, the move, the shifted code, the addition or the out-of-order code.

US Pat. No. 10,169,031

PROGRAM CODE LIBRARY SEARCHING AND SELECTION IN A NETWORKED COMPUTING ENVIRONMENT

International Business Ma...

1. A computer-implemented method for searching for program code libraries in multiple programming languages in a networked computing environment, comprising:receiving, in a computer memory medium, a request to search at least one program code library repository associated with an integrated development environment (IDE) for a program code library;
searching, based on an annotation to the request, the at least one program code library repository for the program code library corresponding to a programming language of a project;
expanding the searching, using emulation based on another annotation to the request, to include a substitute programming language, wherein the emulation creates a wrapper method in the substitute programming language and emulates a library programming language during execution; and
providing, based on the expanded searching, a result to a device hosting the IDE.

US Pat. No. 10,169,030

REFRESHING A SOFTWARE COMPONENT WITHOUT INTERRUPTION

International Business Ma...

1. A computer-implemented method for refreshing a software component without interruption, comprising:detecting when a current instance of the software component is inactive;
activating a refresh process of the software component in parallel to the current instance, including starting a new instance of the software component;
monitoring a state of the current instance and, when the current instance ceases to be inactive, canceling the refresh process;
determining that the refresh process is complete; and
switching from the current instance to the new instance of the software component.

US Pat. No. 10,169,029

PATTERN BASED MIGRATION OF INTEGRATION APPLICATIONS

International Business Ma...

1. A method for migrating applications, the method comprising:obtaining configuration information from a source integration application;
determining a set of features for the source integration application based on the configuration information;
identifying a set of integration patterns, wherein each integration pattern in the set of integration patterns defines a set of expected characteristics;
determining a respective fitness score for each of the set of integration patterns by, for each respective integration pattern of the set of integration patterns:
determining a respective feature score for at least two respective features of the set of features, wherein each of the respective feature scores represent a likelihood that the respective feature matches the respective integration pattern; and
aggregating the respective feature scores to generate the respective fitness score for the respective integration pattern;
selecting one or more integration patterns from the set of integration patterns based on the respective fitness score associated with each of the respective integration patterns; and
migrating the source integration application based on the selected one or more integration patterns.

US Pat. No. 10,169,028

SYSTEMS AND METHODS FOR ON DEMAND APPLICATIONS AND WORKFLOW MANAGEMENT IN DISTRIBUTED NETWORK FUNCTIONS VIRTUALIZATION

Ciena Corporation, Hanov...

1. A workloads management method for on-demand applications in distributed Network Functions Virtualization Infrastructure (dNFVI), the workloads management method comprising:receiving usage data from a unikernel implementing one or more functions of a plurality of functions related to a Virtual Network Function (VNF);
determining an update to the one or more functions in the unikernel based on the usage data;
updating the unikernel by requesting generation of application code for the unikernel based on the update; and
starting the updated unikernel and redirecting service requests thereto,
wherein the unikernel and the updated unikernel are each a specialized, single address space machine image constructed using library operating systems which is executed directly on a hypervisor.

US Pat. No. 10,169,027

UPGRADE OF AN OPERATING SYSTEM OF A VIRTUAL MACHINE

International Business Ma...

1. A method, comprising:receiving, by one or more processors of a computer system, a virtual machine (VM) deletion request, wherein if the VM deletion request includes a first flag then the VM deletion request is a request to upgrade a base operating system (OS) of the VM, and wherein if the VM deletion request does not include the first flag then the VM deletion request is a request to delete the VM;
said one or more processors determining whether the received VM deletion request includes the first flag;
in response to the one or more processors determining that the received VM deletion request includes the first flag, said one or more processors storing metadata of the VM into a resource registry;
after said storing the metadata of the VM into the resource registry, said one or more processors receiving a VM creation request, wherein if the VM creation request includes a second flag then the VM deletion request is a request to upgrade the base OS of the VM, and wherein if the VM creation request does not include the second flag then the VM creation request is a request to create a new VM;
said one or more processors determining whether the received VM deletion request includes the second flag;
in response to the one or more processors determining that the received VM creation request includes the second flag, said one or more processors retrieving the metadata from the resource registry;
after said retrieving the metadata from the resource registry, said one or more processors loading a new version of the base OS onto the VM and using the retrieved metadata to configure the VM with the new version of the base OS; and
said one or more processors deploying the VM with the new version of the base OS.

US Pat. No. 10,169,026

TRANSFERRING OPERATING ENVIRONMENT OF REGISTERED NETWORK TO UNREGISTERED NETWORK

KT CORPORATION, Gyeonggi...

1. A method of providing an operation environment of a registered network having first devices to a user in an unregistered network having second devices, the method comprising:detecting the second devices in the unregistered network when user equipment associated with the user enters a service area of the unregistered network;
as compatible devices, selecting devices compatible with the first devices in the registered network from the detected second devices;
obtaining system images of the first devices compatible with the selected compatible devices;
installing the obtained system images of the first devices at the selected compatible devices, respectively;
generating a user interface for enabling the user to control at least one of the compatible devices; and
transmitting the generated user interface the user equipment,
wherein the user equipment provides the user interface, receives a user input to control the at least one of the compatible devices through the user interface, and controls the at least one of the compatible devices installed with the system image and in the unregistered device based on the received user input by generating a control signal based on the user input and transmitting the generated control signal to the at least one of the compatible devices.

US Pat. No. 10,169,025

DYNAMIC MANAGEMENT OF SOFTWARE LOAD AT CUSTOMER PREMISE EQUIPMENT DEVICE

ARRIS Enterprises LLC, S...

1. A method comprising:detecting a request to load a requested executable software component to volatile memory;
determining that the size of the requested executable software component is greater than the size of available space in the volatile memory;
determining a probability to unload value for each executable software component of one or more executable software components currently loaded in the volatile memory, wherein the probability to unload value for each respective one executable software component is calculated based upon one or more criteria associated with an execution of the respective one executable software component;
based upon the probability to unload values determined for each of the one or more executable software components that are currently loaded in the volatile memory, identifying one or more of the executable software components for removal from the volatile memory;
removing the identified one or more executable software components from the volatile memory; and
loading the requested executable software component to the volatile memory.

US Pat. No. 10,169,024

SYSTEMS AND METHODS FOR SHORT RANGE WIRELESS DATA TRANSFER

Arm Limited, Cambridge (...

1. A method for device control of a primary device using an accessory device as a proxy, the method comprising:executing a device application in an operating system of the primary device;
establishing a short range wireless link between the device application and an accessory application on the accessory device in accordance with a protocol implemented by a device low energy stack on the primary device and an accessory low energy stack on the accessory device, where a procedure of the protocol implemented in the device low energy stack is inaccessible by the device application via the operating system and where the procedure accesses connection parameters of the link;
sending a device control message from a device application to an accessory application requesting performance of the procedure;
responsive to the device control message, the accessory application connecting with the accessory low energy stack and requesting the procedure;
the accessory low energy stack performing the procedure to access the connection parameters of the short range wireless link;
sending, by the accessory application, a response to the device control message; and
receiving the response, at the device application, for the device control message.

US Pat. No. 10,169,022

INFORMATION PROCESSING APPARATUS AND RESOURCE MANAGEMENT METHOD

Canon Kabushiki Kaisha, ...

1. An information processing apparatus that consumes resources of an amount that depends on how many libraries are open, comprising:a determining unit, configured to determine whether the number of libraries including classes set for an installed program is two or more; and
an integrating unit, configured to integrate, in a case where it is determined that the number of libraries is two or more, the classes included to the libraries into libraries of smaller number than the number of libraries, wherein
the determining unit specifies, with reference to a class path indicating class locations that is described in a configuration file of the installed program, a library including a class that is set for the program,
the program includes a system program and an application, with a boot class path and a system class path being described in the configuration file with regard to the system program and an application class path being described in the configuration file with regard to the application, and
the integrating unit integrates the classes included to the library based on the class paths.

US Pat. No. 10,169,021

SYSTEM AND METHOD FOR DEPLOYING A DATA-PATH-RELATED PLUG-IN FOR A LOGICAL STORAGE ENTITY OF A STORAGE SYSTEM

1. A method for deploying a data-path-related plug-in for a logical storage entity of a storage system, the method comprising:deploying the data-path-related plug-in for the logical storage entity, wherein the deploying includes creating a plug-in inclusive data-path specification and wherein the plug-in inclusive data-path specification includes operation of the data-path-related plug-in;
creating a verification data path specification, wherein the verification data-path specification does not include operation of the data-path-related plug-in;
executing a related to the data-path-related plug-in task on a data-path defined by the plug-in inclusive data-path specification to yield a first execution result;
executing the task on a data-path defined by the verification data-path specification to yield a second execution result;
verifying the first execution result using the second execution result thereby validating the task execution;
if any discrepancy exists between the first execution result and the second execution result, performing one or more failure actions; and
removing the verification data-path and performing one or more validation actions when a validation of the data-path-related plug-in is complete, wherein the one or more validation actions include one or more of the following actions:
(a) increasing a grade associated with the data-path-related plug-in; and
(b) issuing a notification indicating that the validation is complete to a user of the logical storage entity.

US Pat. No. 10,169,020

SOFTWARE GLOBALIZATION OF DISTRIBUTED PACKAGES

International Business Ma...

1. A method for globalizing distributed software packages using a global application programming interface (API), the method comprising:extracting, by a computer, a text string in a source language from an independent package program code;
calculating, by the computer using an algorithm, a resource message key for the extracted text string from content of the extracted text string;
storing, by the computer, the resource message key and the extracted text string in a source language resource file;
translating, by the computer, the extracted text string into an additional language to create a translated text string;
storing, by the computer, the translated text string with the resource message key in an additional language resource file; and
distributing, by the computer, an independent package with the source language resource file, the additional language resource file, and the independent package program code bundled in the independent package.

US Pat. No. 10,169,019

CALCULATING A DEPLOYMENT RISK FOR A SOFTWARE DEFINED STORAGE SOLUTION

International Business Ma...

1. An apparatus comprising:a processor;
a memory storing code executable by the processor to perform:
querying a deployed data storage solution for performance data, wherein the data storage solution provides data storage using hardware elements, software elements, an operating system, and drivers for the software elements;
receiving the performance data from the deployed data storage solution;
storing the performance data;
receiving failure data;
calculating discrepancy data for the deployed data storage solution from the failure data;
storing the discrepancy data;
generating data storage solution that provides configurable data storage for data storage deployment, wherein the data storage solution is organized as a data structure comprising a plurality of data storage components, and each data storage component comprises a hardware identifier for the hardware elements, and software prerequisites for the software elements, the operating system identifier, and a driver identifier for software elements;
calculating a deployment risk for the data storage solution using a trade-off analytics function performed by a neural network and based on the discrepancy data, the performance data, a product match, an operating system match, and a software prerequisites match between the data storage solution and data storage parameters, wherein the neural network is trained on data storage solution field data comprising discrepancy data, performance data, and failure data for deployed data storage solutions; and
in response to the deployment risk not exceeding a risk threshold, deploying the data storage solution by providing the hardware and software elements.

US Pat. No. 10,169,018

DOWNLOADING A PACKAGE OF CODE

International Business Ma...

1. A computer-implemented method comprising:receiving at a server a request from a client, for download of a package of code, the request specifying the package of code to be downloaded, wherein upon receipt of the package of code, the client can execute source code comprising the package of code locally;
acquiring information from the request received relating to a user of the client, wherein the information comprises a role of the user of the client, wherein the acquiring information relating to the user of the client comprises identifying the user of the client in an entry in a user registry and ascertaining user access rights from the entry in the user registry to determine the role of the user of the client;
automatically modifying the package of code according to the acquired information to provide a modified package of code specific to the user of the client, wherein functionality of the modified package of code, when executed on the client, is based on the role of the user of the client, wherein the automatically modifying the package of code according to the acquired information to produce the modified package of code comprises automatically removing one or more methods from the package of code, wherein each method of the one or more methods comprises source code, and wherein the one or more methods comprise a known access level, and wherein the automatically removing the one or more methods from the package of code is based on the role of the user of the client not permitting use of methods of the known access level of the one or more methods;
compiling, at the server, the modified package of code; and
transmitting the modified package of code to the client, wherein the client can immediately execute source code comprising the modified package of code locally.

US Pat. No. 10,169,017

CROWDSOURCING LOCATION BASED APPLICATIONS AND STRUCTURED DATA FOR LOCATION BASED APPLICATIONS

International Business Ma...

1. A method for deploying a location based applications providing crowdsourced structured points of input for data entry, the method comprising:selecting different combinations of different location based application components by different end users from over a computer communications network in order to define a different deployable application for each of the different end users;
storing by each of the different end users, a corresponding one of the different deployable applications in a deployable application repository from which each deployable application is downloaded and consumed by others of the different end users and associating during the storing, a map with a corresponding one of the location based components in each deployable application for each corresponding one of the different end users;
defining for each map, a point of input into which structured data defined by the point of input as being a pre-defined selection of selectable data is received in connection with a single location on the map irrespective of a particular one of the combinations of the different location based components of an associated one of the different deployable applications;
deploying each deployable application to a corresponding one of the different end users; and,
subsequent to the deploying of each deployable application to a corresponding one of the different one of the end users, in each one of the deployable applications that has been deployed to a corresponding one of the different one of the end users, receiving from a corresponding one of the different end users, a selection through the point of input of one of the selectable data presented in connection with the single location on the map and aggregating each selection by each corresponding one of the different end users in a repository in association with the single location on the map and thereafter, in response to a request by a new one of the different end users to deploy a particular one of the deployable applications to a mobile device of the new one of the different end users, deploying the particular one of the deployable applications with the single location on the map and all aggregated selections of the selectable data from others of the different end users as stored in connection with the deployable application.

US Pat. No. 10,169,016

EXECUTING OPTIMIZED LOCAL ENTRY POINTS

International Business Ma...

1. A computer system comprising:a memory;
a processor, communicatively coupled to the memory;
an indirect function call configuration, the configuration to define a first application module with a target function of an indirect function call, a second application module with a symbolic reference to the target function of the indirect function call, and a third application module to originate the indirect function call; and
the processor executing program code from an application module loaded into memory, the loaded application selected from the group consisting of: the first application module, the second application module, and the third application module, the executing including:
to load an address of a function, including load an entry point address of a function, wherein the symbolic reference can be resolved using a local entry point address of the function, the entry point address selected from the group consisting of: a local entry point address of the function defined in the loaded application module and a global entry point address, and transferring execution to the entry point address; and
to perform the indirect function call using the address of the function, the performance of the indirect function call further including to transfer execution to the entry point address selected from the group consisting of: the local entry point address of the function defined in the loaded application module and the global entry point address of the function, wherein resolution of the symbolic reference to the function address through the local entry point address of the function comprises a reduction of a quantity of operations executed through the program code.

US Pat. No. 10,169,015

COMPACT DATA MARSHALLER GENERATION

International Business Ma...

1. A method for compact data marshaller generation, comprising:determining a plurality of data types having a same memory layout from data to be marshalled using a processor, each of the plurality of data types being associated with separate data marshallers; and
modifying marshalling code to marshal the data by:
unifying the separate data marshallers to provide a single data marshaller for the plurality of data types for compact data marshaller generation; and
identifying and replacing consecutive data definitions in a first class of the data types that are also part of a second class of the data types with a call to the second class.

US Pat. No. 10,169,014

COMPILER METHOD FOR GENERATING INSTRUCTIONS FOR VECTOR OPERATIONS IN A MULTI-ENDIAN INSTRUCTION SET

International Business Ma...

1. A computer-implemented method executed by at least one processor for a compiler to process a plurality of instructions in a computer program, the method comprising the steps of:specifying to the compiler a code generation endian preference;
the compiler reading the plurality of instructions;
the compiler selecting a vector instruction in the plurality of instructions;
the compiler determining when the vector instruction generates a vector load instruction that does not satisfy the code generation endian preference; and
when the vector instruction is a vector load instruction that does not satisfy the code generation endian preference, the compiler adding to the plurality of instructions in the computer program at least one vector element reverse instruction after the vector load instruction to correct a mismatch between an endian bias of the vector load instruction and the code generation endian preference.

US Pat. No. 10,169,013

ARRANGING BINARY CODE BASED ON CALL GRAPH PARTITIONING

International Business Ma...

1. A method, in a data processing system, for arranging binary code to reduce instruction cache conflict misses, comprising:generating, by a processor of the data processing system executing a compiler, a call graph of a portion of code;
weighting, by the compiler, nodes and edges in the call graph to generate a weighted call graph;
partitioning, by the compiler, the weighted call graph according to the weights, affinities between nodes of the call graph, and the size of cache lines in an instruction cache of the data processing system, so that binary code associated with one or more subsets of nodes in the call graph are combined into individual cache lines based on the partitioning, wherein the partitioning comprises, for each iteration in a plurality of iterations, merging nodes of unprocessed, maximum weight edges of the weighted call graph into a new node to modify the weighted call graph, until for a next iteration, no maximum weight unprocessed edge is present in the modified weighted call graph; and
outputting, by the compiler, the binary code corresponding to the partitioned call graph for execution in a computing device, wherein each node in the call graph is weighted according to a size of code associated with the node.

US Pat. No. 10,169,012

COMPILER OPTIMIZATIONS FOR VECTOR OPERATIONS THAT ARE REFORMATTING-RESISTANT

International Business Ma...

1. An apparatus comprising:at least one processor;
a memory coupled to the at least one processor;
a computer program residing in the memory, the computer program including a plurality of instructions that includes at least one vector operation and that includes a plurality of reformatting-resistant vector operations that comprises a sink instruction without a corresponding reformatting operation; and
a compiler residing in the memory and executed by the at least one processor, the compiler including a vector instruction optimization mechanism that optimizes at least one of the plurality of reformatting-resistant vector operations in the computer program to enhance run-time performance of the computer program.

US Pat. No. 10,169,011

COMPARISONS IN FUNCTION POINTER LOCALIZATION

International Business Ma...

1. A computer system comprising:a memory;
a processor, communicatively coupled to the memory;
an indirect function call configuration, the configuration to define a first application module with a target function of an indirect function call, a second application module with a symbolic reference to the target function of the indirect function call, and a third application module to originate the indirect function call; and
a compiler in communication with the processor, the compiler to generate program code for an application module selected from the group consisting of: the first application module, the second application module, and the third application module, the generating including:
create a group with at least two symbolic references;
load addresses of functions by using the at least two symbolic references contained in the group;
determine that employed values of the at least two symbolic references are used to perform an operation selected from the group consisting of: the indirect function call in the first application module, a comparison to at least one symbolic reference contained in the group, and a comparison to a NULL value; and
indicate, in the generated program code, that the at least two symbolic references can be resolved using local entry point addresses of the functions, wherein resolution of the at least two symbolic references to function addresses through local entry point addresses of the functions comprises a reduction of a quantity of operations executed through the generated program code.

US Pat. No. 10,169,010

PERFORMING REGISTER PROMOTION OPTIMIZATIONS IN A COMPUTER PROGRAM IN REGIONS WHERE MEMORY ALIASING MAY OCCUR AND EXECUTING THE COMPUTER PROGRAM ON PROCESSOR HARDWARE THAT DETECTS MEMORY ALIASING

International Business Ma...

1. A method for running a computer program comprising:compiling the computer program using a compiler that comprises an optimizer that performs register promotion optimizations using a special store instruction for regions of a computer program where memory aliasing can occur;
executing the compiled computer program on a processor that includes:
instruction decode logic that recognizes the special store instruction;
a plurality of registers that each includes an address tag for storing an address; and
hardware that detects memory aliasing at run-time using the address tags for the plurality of registers and recovers from the memory aliasing to provide functional correctness when memory aliasing occurs, wherein the hardware in the processor comprises a load/store unit that includes logic for handling the special store instruction and providing in-order execution of instructions when out-of-order execution of instructions produces memory aliasing, wherein the load/store unit detects when a younger load instruction targeting the address for the special store instruction executes before the special store instruction, and in response, flushes instructions in an instruction pipeline of the processor after the special store instruction.

US Pat. No. 10,169,009

PROCESSOR THAT DETECTS MEMORY ALIASING IN HARDWARE AND ASSURES CORRECT OPERATION WHEN MEMORY ALIASING OCCURS

International Business Ma...

1. A processor for executing software instructions, the processor comprising:instruction decode logic that recognizes a special store instruction that is used in regions of a computer program where memory aliasing can occur;
a plurality of registers that each includes an address tag for storing an address; and
a load/store unit that includes logic for handling the special store instruction and providing in-order execution of instructions when out-of-order execution of instructions produces memory aliasing, wherein the load/store unit detects when a younger load instruction targeting the address for the special store instruction executes before the special store instruction, and in response, flushes instructions in an instruction pipeline of the processor after the special store instruction.

US Pat. No. 10,169,008

INFORMATION PROCESSING DEVICE AND COMPILATION METHOD

FUJITSU LIMITED, Kawasak...

1. An information processing device comprising:a memory; and
a processor coupled to the memory and the processor configured to:
extract a class in which a copy constructor included in a source code or an assignment operator included in the source code are used,
identify a call to the copy constructor or assignment operator included in the class extracted by the processor,
calculate a number of times of access to member variables, indicated in the call identified by the processor and a periphery of the call, of a copy source and a copy destination of a copy process executed based on the call;
compare the calculated number with a number of times of memory access related to a copy source and a copy destination of the call and the periphery of the call, based on a default copy process being executed by the processor based on the call, and
generate an intermediate code having, added thereto, information to be used to execute a process for copying the constructor or the assignment operator in units of member variables and generate an intermediate code having information added thereto based on the call when the number, calculated by the processor, of times of the access is smaller than a number of times of the memory access.

US Pat. No. 10,169,007

SERVICE PROVIDER NETWORK INTEGRATED COMPILATION SERVICE AND RUNTIME SYSTEM

Amazon Technologies, Inc....

1. An apparatus, comprising:a processor; and
a non-transitory computer-readable storage medium having instructions stored thereupon which are executable by the processor and which, when executed, cause the apparatus to:
execute a compilation service in a service provider network;
receive source code to be compiled at the compilation service;
determine, at a compile time of the source code, whether a local procedure call, for creating or accessing a local file, in the source code is to be replaced to utilize one or more network services executing in the service provider network;
in response to determining that the local procedure call in the source code is to be replaced, generate modified source code by replacing the local procedure call with new source code for utilizing the one or more network services executing in the service provider network;
compile the modified source code to generate service provider network integrated program code;
cause the service provider network integrated program code to be deployed to an on-demand computing service executing in the service provider network; and
cause the service provider network integrated program code to be executed on a host in the on-demand computing service, whereby the service provider network integrated program code utilizes one or more runtime managed service clients at a run time to utilize the one or more network services executing in the service provider network.

US Pat. No. 10,169,006

COMPUTER-VISION BASED EXECUTION OF GRAPHICAL USER INTERFACE (GUI) APPLICATION ACTIONS

INTERNATIONAL BUSINESS MA...

1. A computer-implemented method, comprising:recognizing, using computer-vision based training information, a user interface (UI) component of an application-level user interface of an application and rendering coordinates of the UI component within the application-level user interface;
identifying, in accordance with the computer-vision based training information, a functional class that is mapped within the computer-vision based training information to the UI component and that is used to instantiate the UI component as part of the application-level user interface;
instantiating a replica object of the identified functional class within a user interface container separately from the application; and
generating, from the instantiated replica object on an operating system event queue that provides inputs to the application, an operating system-level event that specifies a functional operation of the UI component and the recognized rendering coordinates of the UI component;
where generating, from the instantiated replica object on the operating system event queue that provides the inputs to the application, the operating system-level event that specifies the functional operation of the UI component and the recognized rendering coordinates of the UI component comprises:
executing a user interface execution script that specifies the functional operation of the UI component using a method of a class of the instantiated replica object; and
triggering, using the specified functional operation, generation by the instantiated replica object of a user interface object event on the operating system event queue that provides the inputs to the application to invoke the operating system-level event that specifies the recognized rendering coordinates of the UI component.

US Pat. No. 10,169,005

CONSOLIDATING AND REUSING PORTAL INFORMATION

INTERNATIONAL BUSINESS MA...

1. A method comprising:retrieving, by at least one hardware computing device of a portal auto-harvesting engine, code from a user interface (UI) layer of a web application;
deconstructing, by the at least one hardware computing device of the portal auto-harvesting engine, the code into code fragments which have different functions within the web application by splitting the code into the code fragments;
matching, by the at least one hardware computing device of the portal auto-harvesting engine, each of the code fragments with server-side components by pattern matching each of the code fragments to a corresponding function within the web application; and
generating, by the at least one hardware computing device of the portal auto-harvesting engine, a portlet structure by combining hypertext markup language (HTML) code fragments; and
executing, by the at least one hardware computing device of the portal auto-harvesting engine, at least one of the code fragments to determine a viability of the at least one of the code fragments to work on a stand-alone basis,
wherein the matching of each of the code fragments with the server-side components comprises determining whether each of the code fragments is one of a common matched component, a transitioned matched component, and an unmatched component based on at least one of a common key word, a tag, and metadata, and
wherein the matching of each of the code fragments with the server-side components further comprises determining whether each of the code fragments is one of:
the common matched component when a code fragment is matched to a common server-side function in the server-side components based on at least one of the common key word, the tag, and the metadata;
the transitioned matched component when the code fragment is not matched to the common server-side function and the code fragment is matched to a transitioned server-side function in the server-side components based on the at least one of the common key word, the tag, and the metadata; and
an unmatched component when the code fragment is not matched to either the common server-side function or the transitioned server-side function in the server-side components based on the at least one of the common key word, the tag, and the metadata, wherein the transitioned server-side function is similar to the code fragment.

US Pat. No. 10,169,003

COGNITIVE SCOPE ANALYZER

INTERNATIONAL BUSINESS MA...

1. A computer implemented method for augmenting cognitive scope in a programming development system, the method comprising:determining, by a processor, a scope of a programming object in a computer program;
generating, by the processor, a cognitive programming user-interface mask corresponding to a programmer profile; and
applying, by the processor, the cognitive programming user-interface mask to a user-interface of the programming development system, the user-interface displaying an indication of the scope of the programming object, wherein:
the computer program is represented as a virtual world with the programming object represented by a virtual artifact within a virtual bounded region within the virtual world, the virtual bounded region representing the scope of the programming object, and wherein publicly accessible members of the programming object are displayed on a banner associated with the virtual object.

US Pat. No. 10,169,002

AUTOMATED AND HEURISTICALLY MANAGED SOLUTION TO QUANTIFY CPU AND PATH LENGTH COST OF INSTRUCTIONS ADDED, CHANGED OR REMOVED BY A SERVICE TEAM

International Business Ma...

1. A method for qualifying changes to an instruction set in source code of a computer program, the method comprising:receiving text in a code editor as an edit to the source code of the computer program; and,
responding to the edit to the source code before the edit to the source code is committed for use in the computer program by:
determining a portion of the source code that was modified as the edit to the source code including the instruction set;
querying a data store of code change costs for instruction set cost information, wherein the instruction set cost information comprises performance data from execution of the instruction set, the performance data associated with at least one of central processing unit (CPU) usage, path length, and response time;
determining a code change cost as edit to the source code including the instruction set based on instruction set cost information;
retrieving the determined code change cost as the edit to the source code including the instruction set;
displaying in the code editor the retrieved code change cost; and
subsequent to the displaying, committing the edit to the source code for use in the computer program.

US Pat. No. 10,169,001

UNDO/REDO IN JAVASCRIPT OBJECT NOTATION

International Business Ma...

1. A computer program product for undoing and redoing changes in a Javascript object notation structure, the computer program product comprising:one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:
program instructions to modify a Javascript object notation structure to include a tag on at least one object and a tag on at least one array containing a first version of the Javascript object notation structure, wherein modifying a Javascript object notation structure to include a tag comprises:
program instructions to recursively traverse objects and arrays inside the hierarchy of the Javascript object notation structure; and
program instructions to add an identifier to each object and array;
program instructions to identify a change to the Javascript object notation structure creating a second version of the JSON structure;
program instructions to adjust the tag on the at least one object and the tag on the at least one array to include the second version of the Javascript object notation structure, wherein adjusting the tag to include the second version of the Javascript object notation structure comprises storing, by one or more computer processors, details for reversing the change to the Javascript object notation structure in an undo stack and a redo stack;
program instructions to adjust the displayed first version of the Javascript object notation structure with the second version of the Javascript object notation structure;
program instructions to receive data indicating an action, wherein an action includes a undo/redo action to the Javascript object notation structure to return the second Javascript object notation structure to the first version of the Javascript object notation structure;
program instructions to adjust the displayed second version of the Javascript object notation structure to the first version of the Javascript object notation structure, wherein adjusting the displayed second version of the Javascript object notation structure to the first version of the Javascript object notation structure comprises utilizing, by one or more computer processors, the stored details for reversing the change to the Javascript object notation structure in the undo stack and the redo stack; and
program instructions to receive data indicating an action, wherein an action includes displaying the second version of the Javascript object notation structure to replace the first version of the Javascript object notation structure.

US Pat. No. 10,169,000

PROVISIONING COMPOSITE APPLICATIONS USING SECURE PARAMETER ACCESS

Red Hat Israel, Ltd., Ra...

1. A method, comprising:implementing a composite Web application, the implementing involving a first virtual machine (VM) to be hosted on a first physical machine and a second virtual machine to be hosted on a second physical machine, wherein the first physical machine and the second physical machine are located in a data center;
provisioning the first virtual machine on the first physical machine;
provisioning the second virtual machine on second physical machine;
instantiating a first component of the composite Web application on the first virtual machine and a second component of the composite Web application on the second virtual machine, wherein the first component has a first role of an application server and the second component has a second role of a database management system;
receiving, by a processing device of a provisioning server, a request for a configuration parameter from the first component of the composite Web application, the configuration parameter being a password that enables periodic reconfiguration to communication between the first component and the second component;
identifying, by the processing device of the provisioning server, the first role of the first component of the composite Web application by looking up an identifier of the first component within a stored VM table;
accessing, within a hierarchical data structure, an access condition that specifies a role condition or relationship condition of the requesting first component that is satisfied to access the configuration parameter and enable the communication with the second component;
verifying that the access condition is satisfied by the first component;
upon verification of the access condition, providing the configuration parameter to the first virtual machine associated with the first component;
reconfiguring the first virtual machine of the first component of the application server to access the second component using the requested configuration parameter; and
allowing the communication between the first component and the second component based on the requested configuration parameter.

US Pat. No. 10,168,999

SOFTWARE OBJECT DEFINITION AND INTEGRATION

International Business Ma...

1. A software object definition improvement method comprising:receiving from a hardware and software connector device, by a processor of a hardware framework system, a first software object;
parsing, by said processor, top level hierarchal software structures of said first software object;
mapping, by said processor, top level hierarchal software structures to specified software element properties;
identifying, by said processor based on results of said mapping, a first container memory structure;
searching, by said processor based on results of said identifying, for said first container memory structure;
determining, by said processor based on results of said searching, if said first container memory structure has been located;
executing, by said processor based on results of said determining, software building block code thereby modifying said first container memory structure based on said mapping resulting in an improved operation of said hardware and software connector device and said hardware framework system; and
generating, by said processor, an application programming interface (API) for communications between said software building block code, said hardware framework system, and said software connector device.

US Pat. No. 10,168,995

EXTRACTING ENTROPY FROM MACHINE VIBRATION

INTERNATIONAL BUSINESS MA...

1. A computer-implemented method for random number generation for security relevant features of cryptography applications, the computer-implemented method comprising:acquiring, by at least one sensor, analog vibration data from the machine, wherein the sensor is configured to monitor the vibration of a cooling component of the machine, wherein the analog vibration data is acquired from a motor drive assembly installed in the machine;
converting, by a computer processor, the analog vibration data to digital form;
filtering the digital data; and
storing the filtered data within a memory unit to form a random number pool from which random numbers may be selected, wherein the analog vibration data is collected in a first mode and a second mode.

US Pat. No. 10,168,994

RANDOM NUMBER GENERATOR INCLUDING ENTROPY SOURCE

Intel Corporation, Santa...

1. A circuit comprising:an entropy source to generate an output signal; and
a deterministic feedback circuit coupled to the entropy source in a deterministic feedback loop to generate successive bits of the output signal, wherein the deterministic feedback circuit includes:
detection logic to detect when a first bit of the output signal of the entropy source has registered;
a pre-delay feedback path to cause the entropy source to power off responsive to the detection; and
a post-delay feedback path to cause the entropy source to power on, after the entropy source is powered off, to generate a second bit of the output signal, wherein the post-delay feedback path includes one or more delay cells that are bypassed by the pre-delay feedback path.

US Pat. No. 10,168,993

ZERO DETECTION OF A SUM OF INPUTS WITHOUT PERFORMING AN ADDITION

International Business Ma...

1. A method for zero detection of a sum of inputs without performing an addition, the method comprising:performing, by first one or more XOR gates in a logic circuit, a bitwise XOR operation for a first vector as a first input and a second vector as a second input, wherein the bitwise XOR operation for the first vector and the second vector generates a third vector, wherein the first vector and the second vector are signed N-bit 2's complement vectors;
performing, by first one or more OR gates in the logic circuit, a bitwise OR operation for the first vector and the second vector, wherein the bitwise OR operation generates a fourth vector;
performing, by second one or more XOR gates in the logic circuit, a bitwise XOR operation for the third vector and the fourth vector, wherein bit positions of the fourth vector are shifted by one bit to the left and the right end bit of the fourth vector is padded with a zero, wherein the bitwise XOR operation for the third vector and the fourth vector generates a fifth vector;
performing, by a third XOR gate in the logic circuit, an XOR operation of a sign extension bit of the third vector and a sign extension bit of the fourth vector; and
performing, by a first AND gate in the logic circuit, an AND operation of a control signal and an output of the third XOR gate, wherein the control signal switches between a true mathematical zero check and a zero check for trailing N-bits.

US Pat. No. 10,168,992

INTERRUPTIBLE TRIGONOMETRIC OPERATIONS

TEXAS INSTRUMENTS INCORPO...

1. An integrated circuit (IC) comprising:a general-purpose processing core that issues instruction calls using instructions in an instruction set; and
special-purpose processing circuitry comprising trigonometric hardware to compute trigonometric functions using CORDIC operations, the trigonometric hardware comprising:
pre-iteration circuitry that assigns one or more input values to a quadrant and tests for exception conditions, in response to a first processor instruction call;
CORDIC circuitry that performs at least one CORDIC iteration on the one or more input values to produce result values in response to a second processor instruction call; and
result generation circuitry that modifies the result values, or values based on the result values, based on one or more determinations made by the pre-iteration circuitry, in response to a third processor instruction call.

US Pat. No. 10,168,991

CIRCUIT FOR ADDITION OF MULTIPLE BINARY NUMBERS

INTERNATIONAL BUSINESS MA...

1. A circuit for addition of multiple binary numbers, the circuit comprising a 4-to-2-compressor configured for calculating a compressed representation from four binary numbers received via operand inputs of the 4-to-2-compressor, wherein the 4-to-2-compressor comprises a first sub-circuit and a second sub-circuit, wherein each of the first sub-circuit and the second sub-circuit is configured for transmitting a bitwise inverted representation of a compressed representation from three binary numbers, wherein:the 4-to-2-compressor comprises at least one bit cell, wherein the at least one bit cell comprises a first sub-cell belonging to the first sub-circuit and a second sub-cell belonging to the second sub-circuit; and
at least one of the first sub-cell and the second sub-cell comprises three operand inputs, an inverted sum output and an inverted carry output.

US Pat. No. 10,168,990

AUTOMATIC REPLACEMENT OF A FLOATING-POINT FUNCTION TO FACILITATE FIXED-POINT PROGRAM CODE GENERATION

The MathWorks, Inc., Nat...

1. A device, comprising:one or more processors to:
receive information associated with a floating-point function,
the floating-point function being a function described in a programming language that uses a floating-point representation;
identify the floating-point function;
determine, prior to generating fixed-point code for the floating-point function and based on identifying the floating-point function, that directly converting the floating-point function to a fixed-point function is not supported;
determine, based on the directly converting not being supported that the floating-point function is to be replaced with a replacement construct,
the replacement construct including one of:
a lookup table,
a coordinate rotation digital computer construct,
a Newton-Raphson construct,
a Taylor series construct, or
a numerical approximant construct,
the replacement construct being described in the programming language, and
the replacement construct including a floating-point approximation, of the floating-point function, that is used in a conversion from the floating-point representation to a fixed-point representation;
determine parameters associated with generating the replacement construct,
at least one parameter of the parameters being determined based on an evaluation of the floating-point function;
generate, after the parameters are determined, the replacement construct based on the parameters;
replace the floating-point function with the replacement construct;
perform the conversion from the floating-point representation to the fixed-point representation based on the floating-point approximation; and
generate fixed-point program code based on the conversion.

US Pat. No. 10,168,948

REPLICATING DATA IN A DATA STORAGE SYSTEM

International Business Ma...

1. A computer-implemented method for replicating data in a data storage system, wherein the data storage system comprises:a first data storage device comprising a set of data regions;
a first host device in communication with the first data storage device;
a second data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device;
a second host device in communication with the second data storage device; and
a third data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device and the set of data regions of the second data storage device, the third storage device being arranged to receive write requests from only the first data storage device and second data storage device;
wherein the method comprises:
selecting one of the first data storage device and the second data storage device using a characteristic of the first data storage device and the second data storage device;
receiving, in the first data storage device, a first write request from the first host device to update a first subset of the data regions of the first data storage device, and sending, from the first data storage device, the first write request to the second data storage device;
receiving, in the second data storage device, a second write request from the second host device to update a second subset of the data regions of the second data storage device, and sending, from the second data storage device, the second write request to the first data storage device;
either:
in the case that the first data storage device is selected using the characteristic and in response to a notification from the second data storage device that the second data storage device has been updated in accordance with the first write request, sending, from the first data storage device, a write request based on the first write request and the second write request to the third data storage device; or
in the case that the second data storage device is selected using the characteristic and in response to a notification from the first data storage device that the first data storage device has been updated in accordance with the second write request, sending, from the second data storage device, a write request based on the first write request and the second write request to the third data storage device;
storing details indicative of received write request in the data storage device not selected using the characteristic; and
in response to a notification from the data storage device selected using the characteristic that the third data storage device has been updated in accordance with a write request, deleting storing details indicative of the write request from the data storage device not selected using the characteristic.

US Pat. No. 10,168,946

EXTENT MIGRATION IN MULTI-TIER STORAGE SYSTEMS

International Business Ma...

1. A computer-implemented method for migrating data in a tiered storage system to improve system performance, the method comprising:recording, by the computer, I/O activity of one or more subunits of one or more storage units of one or more storage devices of the tiered storage system;
for one or more storage units:
calculating, by the computer, from the recorded I/O activity, a mean heat value over the one or more subunits of a storage unit; and
calculating, by the computer, from the recorded I/O activity, a spike heat indicator;
identifying, by the computer, two or more storage units in a tier with respective mean heat values that differ at most by a predefined threshold; and
migrating, by the computer, to another tier, the storage unit of the two or more storage units that has a greater spike heat indicator.

US Pat. No. 10,168,943

DETERMINING CORRECT DEVICES TO USE IN A MASS VOLUME MIGRATION ENVIRONMENT

INTERNATIONAL BUSINESS MA...

1. A computer program product for determining which devices to use in a mass volume migration environment, said computer program product comprising:a computer readable storage medium having stored thereon program instructions executable by a processor to cause the processor to:
read an I/O configuration definition for a plurality of devices in the mass volume migration environment, wherein the plurality of devices comprise a first set of the plurality of devices;
define a second set of the plurality of devices, wherein each device of the first set is associated with a corresponding device in the second set;
execute a migration from the first set to the second set;
annotate the first set of devices and the second set of devices with status identifiers;
responsive to completing a migration of a device in the first set to the associated corresponding device in the second set, update annotations of the migrated device in the first set and the corresponding device in the second set and swap the migrated device in the first set with the corresponding device in the second set;
continue the migration of the devices of the first set of devices to the second set of devices, wherein the first set of devices is associated with a first subchannel set of devices and the second set of devices is associated with a second subchannel set of devices;
wherein updating the annotations comprises switching a status identifier of a device of the first subchannel set with a status identifier of an associated device of the second subchannel set;
set an indicator, wherein the indicator instructs an operating system to read the annotation;
select at least one of the first subchannel set of devices and second subchannel set of devices for use upon initialization;
read, responsive to the indicator, the annotation of the selected subchannel set of devices;
determine the status identifier of each device of the selected subchannel set of devices;
identify devices of the first subchannel set and the second subchannel set to bring online responsive to a subsequent initialization based on the status identifiers of the first subchannel set and the second subchannel set; and
continue the migration of devices in the first subchannel set of devices to the second subchannel set of devices.

US Pat. No. 10,168,941

HISTORICAL STATE SNAPSHOT CONSTRUCTION OVER TEMPORALLY EVOLVING DATA

International Business Ma...

1. A computer-implemented method, comprising:classifying each of multiple temporally evolving data entities into one of multiple categories based on one or more parameters, wherein the one or more parameters comprise the average lifespan of each of the multiple temporally evolving data entities;
partitioning the multiple temporally evolving data entities into multiple partitions based at least on (i) said classifying and (ii) the update frequency of each of the multiple temporally evolving data entities;
implementing multiple checkpoints at a distinct temporal interval for each of the multiple partitions; and
creating a snapshot of the multiple temporally evolving data entities at a selected past point of time (i) based on said implementing and (ii) in response to a query pertaining to a historical state of one or more of the multiple temporally evolving data entities;
wherein the steps are carried out by at least one computing device.

US Pat. No. 10,168,940

DATA STORAGE USING SLC AND TLC MEMORY BANKS AND DATA MAINTENANCE METHOD THEREOF

SILICON MOTION, INC., Jh...

1. A data storage device, comprising:a flash memory, having a plurality of single level cell (SLC)-spare blocks, a plurality of SLC-data blocks, a plurality of triple level cell (TLC)-spare blocks and a plurality of TLC-data blocks; and
a controller, writing data into the SLC-spare blocks in response to a write command arranged to write the data into the flash memory, wherein when a first predetermined condition is satisfied, the controller selects a plurality of first TLC-data blocks with the least amount of valid data from the TLC-data blocks, writes valid data stored in the first TLC-data blocks into at least one first TLC-spare block, and releases the first TLC-data blocks to increase a number of TLC-spare blocks by one,
wherein when the first predetermined condition is satisfied, the controller further writes a first part of the data into a first SLC-spare block of the SLC-spare blocks before selecting the first TLC-data blocks,
wherein when the first predetermined condition is satisfied, the controller further maps at least one logical address of the data to the written first SLC-spare block and defines the written first SLC-spare block mapped to the logical address as the SLC-data block after releasing the first TLC-data blocks.

US Pat. No. 10,168,939

READING RECORDS FROM A TAPE MEDIUM

International Business Ma...

1. A method comprising:receiving, by a tape drive, a first record;
storing the first record on a first tape in the tape drive in an uncompressed format;
receiving a command from a requestor to read the first record stored on the first tape by the tape drive,
wherein the tape drive has a capability to compress and decompress data;
reading the first record from the first tape by the tape drive, wherein the first tape includes a first plurality of compressed records and a second plurality of uncompressed records;
determining, by the tape drive, subsequent to the reading of the first record that the first record is not compressed;
generating a compressed first record by compressing the first record by the tape drive when it is determined that the first record is not compressed;
determining that the first record is encrypted;
transferring the first record, in a compressed format, to a programmable logic circuit for decryption before transmitting to the first record to the requestor; and
transmitting the compressed first record by the tape drive to the requestor.

US Pat. No. 10,168,937

STORAGE SPACE ALLOCATION

Hewlett Packard Enterpris...

1. An apparatus comprising:a non-transitory computer-readable storage medium comprising instructions; and
a controller, wherein the instructions are executable by the controller to:
receive an allocation request from a host computing device;
reserve a portion of storage space in a storage device via a reservation table based on the allocation request;
determine a type of the allocation request, among types including a space-optimized allocation request and a non-space-optimized allocation request;
in response to a determination that the type of the allocation request corresponds to the non-space-optimized allocation request, commit the portion of storage space via an allocation table; and
in response to a determination that the type of the allocation request corresponds to the space-optimized allocation request, release the portion of storage space via the reservation table.

US Pat. No. 10,168,936

MEMORY SYSTEM POWER MANAGEMENT

INTERNATIONAL BUSINESS MA...

1. A method of power management in a memory of a computer system, the method comprising:receiving a memory allocation request for a logical partition;
enabling partition mirroring for the logical partition;
allocating unscrubbed memory to both a first and a second copy of the logical partition, the second copy of the logical partition mirroring the first copy of the logical partition;
initiating scrubbing of the first and second copy of the logical partition; and
subsequent to initiating the scrubbing:
selecting one of the first and second copy of the logical partition, wherein prior to the selecting, the scrubbing is performed until a number of errors detected in at least one of the first copy of the logical partition and the second copy of the logical partition is less than a threshold number of errors;
disabling partition mirroring for the logical partition;
deallocating the first copy of the logical partition based on selecting the second copy of the logical partition; and
deallocating the second copy of the logical partition based on selecting the first copy of the logical partition.

US Pat. No. 10,168,935

MAINTAINING ACCESS TIMES IN STORAGE SYSTEMS EMPLOYING POWER SAVING TECHNIQUES

International Business Ma...

1. A storage management apparatus for maintaining access times in a data processing system, wherein the data processing system comprises a plurality of storage devices, the apparatus comprising:an evaluate component, responsive to receiving a read or write command, for evaluating a plurality of first relationships between the plurality of storage devices and a plurality of first values, wherein each of the first values indicates whether a related storage device is a redundant storage device;
a send component for sending a power message to one or more of the plurality of storage devices, in response to the evaluate component determining that one or more of the plurality of storage devices is a redundant storage device; and
an update component, in response to receiving an availability message, the availability message indicating whether the redundant storage device is available, for updating a second relationship between the redundant storage device and a plurality of second values, wherein each of the second values indicates whether a related redundant storage device is available,
wherein, when the command comprises the read command, the evaluate component, in response to the read command, evaluates a plurality of the second values associated with the plurality of storage devices, and wherein the apparatus further comprises:
a read component, in response to the evaluate component determining that one or more of the plurality of storage devices is not available, for reading data from the plurality of storage devices; and
a reconstruct component for reconstructing data from the plurality of storage devices,orwherein, when the command comprises the write command, the evaluate component, in response to the write command, determines a plurality of the second values associated with the plurality of storage devices, and wherein the apparatus further comprises a write component, in response to the evaluate component determining that one or more of the plurality of storage devices is not available, for writing data to the plurality of storage devices.

US Pat. No. 10,168,933

MAINTENANCE OPERATIONS IN A DRAM

RAMBUS INC., Sunnyvale, ...

1. A method of operation in a memory controller that controls the operation of a memory device, the memory device including a command interface and a plurality of memory banks, the method comprising:the memory controller transmitting a refresh command to the command interface of the memory device, wherein the refresh command specifies a refresh operation, the refresh operation to occur during a time interval;
along with the refresh command, the memory controller transmitting a plurality of bits to identify at least one bank as a first bank of the plurality of banks to be refreshed in a sequence in response to the refresh command; and
the memory controller transmitting an operation code to the memory device, the operation code specifying a calibration operation of the command interface, wherein the memory device is to perform the calibration operation of the command interface during at least a portion of the time interval.

US Pat. No. 10,168,932

COLLISION DETECTION AT MULTI-NODE STORAGE SITES

International Business Ma...

1. A computer-implemented method for resolving write conflicts within a multi-node data storage system, wherein the multi-node data storage system comprises:a first data storage device comprising a first set of data regions, wherein a first owner node and a first backup node process input and output to the first set of data regions; and
a second data storage device comprising a second set of data regions corresponding to the first set of data regions of the first data storage device, and wherein a second owner node and a second backup node process input and output to the second set of data regions, and wherein the first data storage device is selected to override in write collisions with the second data storage device;
and wherein the method comprises:
the first backup node receiving a first write request from a host device to update the first set of data regions;
the first backup node requesting a data transfer from the host device corresponding to the first write request;
the first backup node sending a lock request message to the first owner node requesting a lock on the first set of data regions;
based on receiving the lock request message, the first owner node locking the first set of data regions and sending a lock confirmed message to the first backup node;
the first backup node applying the first write request to the first set of data regions;
the first backup node sending data corresponding to the first write request to the first owner node;
the first owner node sending data corresponding to the first write request and metadata corresponding to the first write request to the second owner node of the second data storage device;
prior to the first backup node receiving a completion message from the second owner node indicating that the second data storage device has been updated in accordance with the first write request, the first backup node receiving a second write request from the second owner node to update the first set of data regions;
the first backup node sending a first completion message to the second owner node indicating that the first set of data regions has been updated in accordance with the first write request, causing the second owner node to update the second set of data regions in accordance with the first write request and to send a second completion message to the first owner node indicating that the second data storage device has been updated in accordance with the first write request; and
the first owner node unlocking the first set of data regions and sending a message to the first backup node to complete the first write request to the host device.

US Pat. No. 10,168,931

SCALABLE AUXILIARY COPY PROCESSING IN A DATA STORAGE MANAGEMENT SYSTEM USING MEDIA AGENT RESOURCES

Commvault Systems, Inc., ...

1. A non-transitory computer-readable medium storing instructions that, when executed by a computing device that comprises one or more processors and computer memory, cause the computing device to perform operations comprising:causing a first media agent component of a data storage management system, to coordinate a first auxiliary-copy job from a source to a destination in the data storage management system,
wherein the source comprises a first copy of data generated in the data storage management system, and
wherein the destination stores a second copy of the first copy, wherein the second copy is generated during the first auxiliary-copy job;
receiving, from the first media agent, reservation requests for data streams needed for the first auxiliary-copy job;
reserving, according to the reservation requests, the data streams for transferring data in the first auxiliary-copy job;
providing to the first media agent information about components involved in the reserved data streams, to enable the first media agent to determine a second media agent suitable for executing the first auxiliary-copy job; and
providing job-specific metadata about the first auxiliary-copy job to the second media agent for executing the first auxiliary-copy job.

US Pat. No. 10,168,930

SCALABLE AUXILIARY COPY PROCESSING USING MEDIA AGENT RESOURCES

Commvault Systems, Inc., ...

1. A method for using a media agent to offload a storage manager that manages a data storage management system, the method comprising:coordinating, by a first media agent, execution of one or more auxiliary-copy jobs in the data storage management system,
wherein each auxiliary-copy job comprises generating a second copy of a first copy of data generated in the data storage management system;
requesting, by the first media agent, that the storage manager reserve one or more data streams for a first auxiliary-copy job;
assigning execution of the first auxiliary-copy job, by the first media agent to a second media agent in the data storage management system,
based at least in part on the one or more data streams reserved for the first auxiliary-copy job by the storage manager;
after the assigning, fetching by the second media agent from the storage manager metadata for the first auxiliary-copy job;
executing the first auxiliary-copy job by the second media agent, based on the metadata fetched from the storage manager, and using the one or more reserved data streams; and
wherein the coordinating of the execution of the one or more auxiliary-copy jobs in the data storage management system is performed by the first media agent instead of the storage manager.

US Pat. No. 10,168,929

BROWSE AND RESTORE FOR BLOCK-LEVEL BACKUPS

Commvault Systems, Inc., ...

1. A system for browsing and restoring data contained in a block-level data volume, the system comprising:at least one processor;
at least one data storage device coupled to the at least one processor and storing instructions for implementing a process to restore data contained in a block-level data volume, wherein the process comprises:
receiving a request to perform a file-level restore of the block-level data volume;
mounting, via a pseudo mount component, a virtual disk to the block-level data volume; and
restoring, via a restore component, data from one or more files within the block-level data volume via one or more mount paths provided by the virtual disk.

US Pat. No. 10,168,928

MANAGING DATA STORAGE BY AN ASYNCHRONOUS COPY SERVICE

International Business Ma...

1. A method for managing data replicated by an asynchronous copy service, the method comprising:identifying, by one or more computer processors, a set of information associated with an element of data stored in an I/O queue;
modifying, by one or more computer processors, an order to transmit elements of data in the I/O queue based, at least in part, on the identified set of information associated with the element of data in the I/O queue; and
transmitting, by one or more computer processors, one or more elements of data in the I/O queue, to a secondary storage location that is network accessible, based at least in part on the order to transmit elements of data in the I/O queue, wherein transmitting one or more elements of data within the I/O queue, to the secondary storage location that is network accessible based, at least in part, on the order to transmit elements of data in the I/O queue further comprises:
transmitting, by one or more computer processors, a copy of the one or more elements in the I/O queue to the secondary storage location that is network accessible based on the order to transmit elements of data in the I/O queue, wherein transmitting to the secondary storage location is controlled by an asynchronous copy service;
receiving, by one or more computer processors, from the secondary storage location, a write acknowledgement message in response to transmitting a copy of an element of data of the one or more elements of data in the I/O queue to the secondary storage location; and
in response to receiving the write acknowledgement message corresponding to the transmitted copy of the element of data to the secondary storage location, removing, by one or more processors, from the I/O queue, an element of data corresponding to the received write acknowledgement message.

US Pat. No. 10,168,927

DATA MIRRORING FOR NETWORK ATTACHED STORAGE

International Business Ma...

1. A method for data mirroring for network attached storage, the method comprising:receiving, by one or more processors at a second networked attached storage (NAS) server, a queue of updated data files from a first NAS server, wherein the received queue of updated data files contains elements updated at the first NAS server since a prior synchronization;
writing, by one or more processors at the second NAS server, the updated data files and updated metadata information from the first NAS server to the second NAS server; and
translating, by one or more processors at the second NAS server, permission entries of the transmitted data files from the first NAS server using an identity mapping database file of the first NAS server and an identify mapping database file of the second NAS server, such that the permission entries reflect a local ID mapping database on the second NAS server, wherein the translating comprises:
accessing, by one or more processors at the second NAS server, both a local and a remote copy of the first NAS server's identity mapping database file;
determining, by one or more processors at the second NAS server, a user identity of a data file using the local and the remote copy of the first NAS server's identity mapping database file; and
restoring, by one or more processors at the second NAS server, access control list and owner information and permissions of the data file to match an internal user identity of the second NAS server, using the identity mapping database file of the second NAS server.

US Pat. No. 10,168,925

GENERATING POINT-IN-TIME COPY COMMANDS FOR EXTENTS OF DATA

INTERNATIONAL BUSINESS MA...

1. A computer program product for generating a point-in-time copy of data at a source storage to a target storage, wherein the computer program product comprises a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause operations, the operations comprising:generating an establish point-in-time copy command including at least one range of extents in at least one volume in the source storage and a point-in-time copy identifier, wherein the at least one range of extents comprises less than all extents included in the at least one volume; and
transmitting the establish point-in-time copy command to a point-in-time copy manager to cause the point-in-time copy manager to create a point-in-time copy identified by the point-in-time copy identifier in the establish point-in-time copy command and for the at least one range of extents, to generate change recording information only indicating the at least one range of extents indicated in the point-in-time copy establish command, to copy data in the source storage in the at least one range of extents to be updated as changed data to the target storage, and to indicate, in the change recording information, the data in the at least one range of extents that has been updated.

US Pat. No. 10,168,924

SECONDARY STORAGE EDITOR

Commvault Systems, Inc., ...

1. A method for editing indexing information associated with backup data in an information management system, the method comprising:receiving a textual pattern by a secondary storage editor implemented on a computing device comprising one or more hardware processors;
searching for the textual pattern in an index, by a media agent component of the information management system,
wherein the index comprises information created during one or more backup operations,
wherein a given backup operation created backup data stored in secondary storage, and
wherein the media agent is implemented on a computing device comprising one or more hardware processors;
identifying, by the media agent, one or more files in the backup data that are represented in the index and match the textual pattern;
deleting from the index, by the media agent, entries corresponding to the one or more identified files without causing the one or more files to be physically deleted from the backup data in the secondary storage,
thereby logically deleting the one or more files from the secondary storage; and
after the logically deleting and when criteria for physical deletion of the one or more files from the secondary storage are met, causing by the media agent the one or more files to be physically deleted from the backup data in the secondary storage.

US Pat. No. 10,168,923

COHERENCY MANAGEMENT FOR VOLATILE AND NON-VOLATILE MEMORY IN A THROUGH-SILICON VIA (TSV) MODULE

INTERNATIONAL BUSINESS MA...

1. A method of coherency management between a volatile memory and a non-volatile memory in a through-silicon via (TSV) module of a computer system, the method comprising:simultaneously providing a plurality of TSV write signals on a command and address bus from a memory controller to the volatile memory and the non-volatile memory, wherein the memory controller is operably coupled to the volatile memory by a host data path;
capturing a plurality of values of the TSV write signals within a write address buffer of the non-volatile memory corresponding to a first data set written to the volatile memory, wherein the plurality of values of the TSV write signals comprise write addresses;
copying a second data set from the volatile memory to a data buffer of the non-volatile memory during a refresh cycle that refreshes the second data set in the volatile memory, wherein the copying comprises a data transfer across a TSV data path operably coupled between the volatile memory and the non-volatile memory;
comparing addresses of the second data set copied into the data buffer with the write addresses in the write address buffer corresponding to the first data set; and
removing one or more of the write addresses from the write address buffer based on writing one or more corresponding data values of the second data set from the data buffer to a non-volatile memory array within the non-volatile memory.

US Pat. No. 10,168,922

VOLATILE AND NON-VOLATILE MEMORY IN A TSV MODULE

INTERNATIONAL BUSINESS MA...

1. A method of data backup management between a volatile memory and a non-volatile memory in a through-silicon via module of a computer system, the method comprising:copying data from the volatile memory to the non-volatile memory during a refresh cycle that refreshes the data in the volatile memory by transferring the data through one or more through-silicon vias within the volatile memory to one or more through-silicon vias within the non-volatile memory, wherein the one or more through-silicon vias within the volatile memory are connected to the one or more through-silicon vias within the non-volatile memory by one or more interconnects that are external to the volatile memory and the non-volatile memory;
buffering the data in a buffer comprising a temporary storage area within the non-volatile memory during the copying;
comparing the data in the buffer to one or more non-volatile memory cells prior to writing the data to the one or more non-volatile memory cells; and
writing the data to the one or more non-volatile memory cells within the non-volatile memory prior to a next refresh cycle of the volatile memory based on detecting a difference between the one or more non-volatile memory cells and the data in the buffer.

US Pat. No. 10,168,921

SYSTEMS AND METHODS FOR STORING TIME-SERIES DATA

United Services Automobil...

1. A computer-implemented method comprising:receiving, by a volatile memory coupled to one or more server computers, a set of data from a first computer comprising a set of objects; storing, by the volatile memory based on an organization's policy, the set of data into a first set of memory locations of the volatile memory according to a first sort-order, wherein the first sort-order sorts the set of data according to an object type of each respective object in the set of objects;
in response to determining that a performance parameter satisfies a condition during a time period, storing, by a non-volatile memory coupled to the one or more server computers, the set of data into a second set of memory locations of the non-volatile memory according to a second sort-order, wherein a physical datastore comprises the volatile memory and the non-volatile memory, wherein the second sort-order sorts the set of data according to a timestamp of each respective object in the set of objects, wherein the storing the set of data into the non-volatile memory further comprises: updating, by a server coupled to the non-volatile memory, a memory location of existing data stored in the non-volatile memory upon storing the set of data into the second set of memory locations according to the second sort-order, and wherein the memory location of the existing data is updated to a third set of memory locations within the non-volatile memory in accordance with the second sort-order and the third set of memory locations is configured to be purged;
receiving, by the volatile memory coupled to the one or more server computers, a new set of data; and
upon receiving the new set of data, updating the set of data by:
sorting, by the one or more server computers, the new set of data according to object types of the new set of data and according to timestamps of the new set of data;
merging, by the one or more server computers, the sorted new set of data and the data within the second set of memory locations, thereby generating merged data being sorted according to object types and timestamps, wherein the merging the sorted new set of data is performed when processing resources are below a threshold value; and
updating, by the one or more server computers, indexes corresponding to memory locations of the merged data to reflect new locations of the merged data.

US Pat. No. 10,168,920

DUPLEXING FILE SYSTEM DATA

International Business Ma...

1. A method for duplicating data of a file system, the method comprising:receiving, by one or more processors, data records of a non-sequential file system in response to an input-output request of an application;
converting, by one or more processors, the data records of the non-sequential file system to a tape image, wherein the tape image assumes a format defined by a file system of a first storage device;
writing, by one or more processors, the tape image to the first storage device, wherein the tape image includes a sequence of data types including data records, file markers, and a marker of an end-of-data position of the tape image on the first storage device;
monitoring, by one or more processors, a position of an end-of-data data type marker within the sequence of data types of the first storage device, and a position of an end-of-data data type marker within a sequence of data types of a second storage device;
determining, by one or more processors, whether the position of the end-of-data data type marker within the sequence of data types of the first storage device differs from the position of the end-of-data data type marker within the sequence of data types of the second storage device; and
responsive to determining the position of the end-of-data data type marker within the sequence of data types of the first storage device does differ from the position of the end-of-data data type marker within the sequence of data types of the second storage device, copying, by one or more processors, to the second storage device, the data records from the first storage device, from a position on the first storage device that corresponds to the position of the end-of-data data type marker of the second storage device, to the position of the end-of-data data type marker of the first storage device.

US Pat. No. 10,168,918

RECYCLED VERSION NUMBER VALUES IN FLASH MEMORY

Micron Technology, Inc., ...

1. A method comprising:storing, performed by circuitry of a component that includes at least a memory device, in a first physical block of the memory device a first version number value associated with a first instance of a logical block of the memory device;
storing, performed by the circuitry of the component that includes at least the memory device, in a second physical block of the memory device a second version number value associated with a second instance of the logical block;
storing, performed by the circuitry of the component that includes at least the memory device, in a third physical block of the memory device the first version number value associated with a third instance of the logical block, wherein the third instance comprises an update of a logical sector of the first instance from the first physical block and a copy of a logical sector of the second instance from the second physical block, the update of the logical sector of the first instance forms a first portion of the third instance in the third physical block, and the copy of the logical sector of the second instance forms a second portion of the third instance in the third physical block; and
deleting, performed by the circuitry of the component that includes at least the memory device, at least one of the first and second instances after the first version number value is assigned to the third instance of the logical block.

US Pat. No. 10,168,917

HOTNESS BASED DATA STORAGE FOR FACILITATING GARBAGE COLLECTION

International Business Ma...

1. A method for operating a flash drive, comprising: determining expected hotness of target data to be stored in a flash drive according to a historical hotness of the target data and a recent hotness of the target data, the historical hotness indicating a historical update frequency of the target data in a previous period of time and the recent hotness indicating a recent update frequency of the target data in a recent period of time, wherein the recent period of time for the recent hotness is more recent than the previous period of time for the historical hotness, wherein the flash drive including includes a plurality of blocks, each of the plurality of blocks including a plurality of pages, and wherein hotness indicating indicates a data update frequency, wherein determining the expected hotness comprises: calculating a weighted average of the historical hotness and the recent hotness; searching the plurality of blocks for a matching block for storing the target data, the hotness of data being stored in the matching block matching the expected hotness of the target data, wherein the matching block is an active block, from the plurality of blocks, currently in use and with a highest hotness matching degree; selecting, in response to not finding the matching block, a free block from the plurality of blocks to store the target data to enable garbage collection in the flash drive, the free block being a block that has been reclaimed by a previous garbage collection, selecting the free block based on the expected hotness of the target data and a degree of wear of the free block, the degree of wear being determined based on the hotness of data previously stored in the free block; and storing the target data in the selected free block.

US Pat. No. 10,168,916

SYSTEM, METHOD AND A NON-TRANSITORY COMPUTER READABLE MEDIUM FOR REDUCTION OF CONSUMPTION OF STORAGE SYSTEM RESOURCES

INFINIDAT LTD., Herzliya...

1. A method, comprising:receiving, by a storage system from an application running on a host computer coupled to the storage system, a write request that comprises multiple input data units to be stored in the storage system in relation to a certain file that belongs to a certain file system;
comparing, by the storage system, the multiple input data units to stored data units of the certain file to find matching and non-matching input data units among the multiple data units; wherein each matching input data unit equals a corresponding stored data unit and each non-matching input data unit differs from a corresponding stored data unit;
preventing overwriting stored data units related to the matching input data units;
storing each non-matching input data unit;
updating at least one storage system management data structure to reflect a reception of non-matching input data units while not reflecting a reception of matching input data units;
monitoring write requests related to the certain file system;
determining that the certain file system exceeded a certain threshold of write requests to store matching input data units; and
sending an alert indicative of undesired requests, related to the certain file system, to store matching input data units.

US Pat. No. 10,168,915

WORKLOAD PERFORMANCE IN A MULTI-TIER STORAGE ENVIRONMENT

INTERNATIONAL BUSINESS MA...

1. A method for managing data stored in a tiered data storage system, by a processor device, comprising:upon submission of a workload to a queue of a workload manager, receiving a set of storage demands included in metadata associated with the workload by an optimization policy generator; wherein the set of storage demands include at least accessing existing data, creating new data, and a requirement of a predetermined number of Input/Output Operations per Second (IOPS); and wherein the workload manager provides aggregated requirements associated with the set of storage demands of the workload for restructuring the storage tier content to the optimization policy generator;
translating, by the optimization policy generator, the set of storage demands into data placement, migration, and deletion policies to be executed by the storage system;
preparing at least one of a plurality of storage tiers within the storage system for the workload in the queue by using current storage tier allocations and the data placement, migration, and deletion policies to restructure content in the storage tiers according to the set of storage demands prior to performing the workload; and
for aggregated requirements associated with creating the new data, computing the restructuring of the storage tier content by:
if an amount of the new data to be created is lower than a free space in a target tier:
performing no action; and
if the amount of the new data to be created is higher than the free space in the target tier:
determining an amount of space needing to be freed in the target tier, and
using a combination of a list of user identifications (IDs) requesting storage operations, and a most recent access time for the data placement, migration, and deletion policies to migrate any data owned by users excluded from the list of user IDs or data older than a predetermined age to another tier.

US Pat. No. 10,168,914

DATA BUFFER FOR MULTIPLE DIMM TOPOLOGY

CISCO TECHNOLOGY, INC., ...

1. A system comprising:a memory controller circuit element, and
a printed circuit board (PCB), the PCB comprising:
a memory module element; and
a data buffer circuit element in communication with the memory controller circuit element, and configured to transmit data between the memory controller circuit element and the memory module element.

US Pat. No. 10,168,913

DATA STORAGE DEVICE AND DATA MAINTENANCE METHOD THEREOF

SILICON MOTION, INC., Jh...

1. A data storage device, comprising:a flash memory, having a plurality of SLC (Single-Level Cell)-spare blocks, a plurality of TLC (Triple-Level Cell)-data blocks and a plurality of TLC-spare blocks; and
a controller, receiving a first data sector and a first logical address of the first data sector, writing the first data sector into a first TLC-spare block, and determining whether a first TLC-data block corresponding to the first logical address has valid data, wherein when the first TLC-data block has valid data, the controller further performs a reverse-lookup to obtain a second logical address corresponding to the first TLC-data block, deletes mapping relationships between the second logical address and the first TLC-data block, a second TLC-data block and a third TLC-data block which are mapped to the second logical address, and maps the first TLC-spare block to the first logical address.

US Pat. No. 10,168,912

SHORT STROKING AND DATA TIERING FOR A DISTRIBUTED FILESYSTEM

Panzura, Inc., Campbell,...

1. A computer-implemented method for optimizing caching performance for a distributed filesystem, the method comprising:collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises storing the file data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems, wherein a cloud controller comprises a hard drive that caches distributed-filesystem data, wherein the hard drive comprises one or more rotating disk platters;
collectively presenting a unified namespace for the distributed filesystem to the clients of the distributed filesystem via the two or more cloud controllers, wherein the clients access the distributed filesystem via the cloud controllers, wherein the cloud controllers cache a subset of the file data from the cloud storage systems that is being actively accessed by each respective cloud controller's clients, wherein new file data received by each cloud controller from its clients is written to the one or more cloud storage systems;
maintaining at each cloud controller a copy of the metadata for the files stored in the distributed filesystem, wherein changes to the metadata for the distributed filesystem are communicated to the set of cloud controllers for the distributed filesystem to ensure that the clients of the distributed filesystem share a consistent view of the files in the distributed filesystem;
determining that a hot subset of cached data stored on the hard drive is likely to be accessed frequently by clients of the cloud controller;
determining that a cold subset of cached data stored on the hard drive is less likely to be accessed by clients of the cloud controller;
storing the hot subset of cached data on an outside portion of a disk platter of the hard drive; and
storing the cold subset of cached data on an inside portion of the disk platter;
wherein the outside portion of the disk platter has higher I/O bandwidth than the inside portion of the disk platter.

US Pat. No. 10,168,911

DEFRAGMENTATION OF PERSISTENT MAIN MEMORY

SAP SE, (DE)

1. A computer-implemented method, comprising:creating initial block information that indicates that an initial block, comprising a largest block of a plurality of free blocks, is a first hole in an original segment of memory;
creating an updated segment based on modifying the original segment to represent that contents of the original segment corresponding to the initial block do not contain any data;
modifying free block information to represent that the initial block is not one of the plurality of free blocks;
determining that an adjacent block adjacent to the initial block is a second hole in the updated segment based on adjacent block information corresponding to the adjacent block;
creating first combination block information based on modifying the initial block information to represent a first combination of the initial block and the adjacent block; and
deleting the adjacent block information corresponding to the adjacent block.

US Pat. No. 10,168,910

STORAGE AREA NETWORK RECLAMATION FOR VIRTUAL ENVIRONMENTS

International Business Ma...

1. A storage area network (SAN) system, comprising:a storage appliance that manages a SAN storage pool containing physical storage volumes;
a physical host connected to the storage appliance via a SAN switch, wherein the physical host includes a system for receiving mapped storage volumes from the storage appliance, and further includes a system for allocating the mapped storage volumes into a set of containers that provide virtual storage images for external resources; and
a SAN reclamation system that monitors each of the containers, and for each container:
determines whether unused volumes in the container exceed an empty capacity threshold; and
in response to the empty capacity threshold being exceeded, determines whether an idle time threshold for the unused volumes has been exceeded with no I/O activity; and
in response to the idle time threshold being exceeded with no I/O activity, separates the unused volumes from the container, un-maps the unused volumes from the physical host, and returns the unused volumes to the SAN storage pool.

US Pat. No. 10,168,909

COMPRESSION HARDWARE ACCELERATION

Amazon Technologies, Inc....

1. An integrated circuit comprising:a first memory; and
a second memory including instructions that, when executed by the integrated circuit, cause the data compression apparatus to:
receive an uncompressed data stream;
identify, within the uncompressed data stream, an uncompressible segment of the uncompressed data stream, the uncompressible segment of the uncompressed data stream being a segment of data for which there is no equivalent data segment within the data stream;
store, in the first memory, a portion of the uncompressible segment, wherein a length of the portion of the uncompressible segment is less than or equal to the size of the first memory, wherein the portion of the uncompressible segment is the entirety of the uncompressible segment if the size of the uncompressible segment of the uncompressed data stream is less than or equal to the size of the first memory;
generate a sequence that includes the data stored in the first memory and an offset field; and
populate the offset field, wherein if the size of the uncompressible segment of the uncompressed data stream is less than or equal to the size of the first memory, the offset field is populated with a position from which compressible data should be copied, and wherein if the size of the uncompressible segment of the uncompressed data stream exceeds the size of the first memory, the offset field is populated with a value of zero; and
store the generated sequence.

US Pat. No. 10,168,908

METHOD AND SYSTEM FOR CASCADED FLASHCOPY ZONING AND ALGORITHM AND/OR COMPUTER PROGRAM CODE AND METHOD IMPLEMENTING THE SAME

INTERNATIONAL BUSINESS MA...

1. A system comprising:a processor, a computer readable memory and a computer readable storage device; and
program instructions that start a data map relating a first storage volume to a different storage volume,
wherein:
the program instructions use a zone map relating the first storage volume to a zone in the cascade of storage volumes,
the zone map has a split bitmap with a bit for every grain which is pushed down a cascade for a write command to a given storage volume, with grains residing on a source volume until the grains are hardened to a location on a target volume,
the split map describes that the grain has been written to the target volume which indicates that the grain has been split, and
the program instructions are stored on the computer readable storage device for execution by the processor via the computer readable memory.

US Pat. No. 10,168,907

MEMORY SYSTEM AND OPERATING METHOD THEREOF

SK Hynix Inc., Gyeonggi-...

1. A memory system comprising:a memory device including a plurality of memory dies each having a plurality of memory blocks; and a controller suitable for performing one or more of data defragmentation and data remapping operations for a target transaction group in the memory device in response to a request message provided from a host, transmitting a completion message to the host as a response to the request message, and receiving an access to the transaction group, from the host, wherein the request message includes a data array having information on data splits of the target transaction group, and address lists of the target transaction group, wherein the request message further includes a header having a flag indicating type information of the data defragmentation and data remapping operations, wherein the type information indicates at last one among a general mode, a fast mode, an optimized mode, a cold mode and a hot mode.

US Pat. No. 10,168,906

PREALLOCATING STORAGE SPACE FOR AN APPLICATION OPERATION IN A SPACE EFFICIENT VOLUME

INTERNATIONAL BUSINESS MA...

1. A computer program product for writing to a space efficient volume in a storage system, wherein the computer program product comprises a computer readable storage medium having program instructions embodied therewith, the program instructions that when executed by a processor cause operations, the operations comprising:determining an amount of space to pre-allocate for a series of write operations part of a point-in-time copy operation over a period of time to copy source data to target data in the space efficient volume; and
transmitting a point-in-time copy establish request to establish a point-in-time copy for the point-in-time copy operation and a space pre-allocation request provided with the point-in-time copy establish request, wherein the space pre-allocation request indicates the determined amount of space to pre-allocate in advance in the space efficient volume for the series of write operations performed in response to the point-in-time copy establish request.

US Pat. No. 10,168,905

MULTI-CHANNEL NONVOLATILE MEMORY POWER LOSS MANAGEMENT

INTERNATIONAL BUSINESS MA...

1. A system for multi-channel nonvolatile memory management, the system comprising:one or more nonvolatile memory devices of a nonvolatile memory array;
one or more write buffers operable to write to the one or more nonvolatile memory devices; and
a nonvolatile queue manager configured to:
queue entries of host data from one or more host channels to the one or more write buffers for storage in the one or more nonvolatile memory devices of the nonvolatile memory array;
compare a number of the entries queued in the one or more write buffers to one or more nonvolatile memory holdup power write thresholds based on detection of a power loss event;
track one or more locations in the nonvolatile memory array targeted by one or more of the entries extending beyond the one or more nonvolatile memory holdup power write thresholds;
initiate a mitigation action on a subsequent restoration of power to handle the one or more locations in the nonvolatile memory array targeted by one or more of the entries extending beyond the one or more nonvolatile memory holdup power write thresholds; and
rebalance the one or more write buffers by shifting one or more of the entries queued in the one or more write buffers to at least one of the one or more write buffers having none of the entries extending beyond the one or more nonvolatile memory holdup power write thresholds.

US Pat. No. 10,168,904

QUASI-ERROR NOTIFICATIONS IN A DISPERSED STORAGE NETWORK

INTERNATIONAL BUSINESS MA...

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the DSN including a set of storage units storing encoded data, the method comprises:issuing slice requests to a plurality of storage units of the set of storage units for at least a decode threshold number of encoded data slices of a set of encoded data slices, wherein segments of a data object are dispersed storage error encoded to produce a plurality of sets of encoded data slices including the set of encoded data slices, and wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to recover a corresponding data segment;
receiving a plurality of responses from the plurality of storage units, wherein the plurality of responses include less than the decode threshold number of encoded data slices and at least one quasi-error response from an impaired storage unit;
based on the at least one quasi-error response, determining to issue at least one of:
a continue request to the impaired storage unit, the continue request requesting continued processing of a slice request received by the impaired storage unit and corresponding to the quasi-error response; or
an additional slice request to an additional storage unit of the set of storage units, the additional slice request requesting an additional encoded data slice of the set of encoded data slices; and
issuing the continue request to the impaired storage unit or the additional slice request to the additional storage unit.

US Pat. No. 10,168,903

METHODS FOR DYNAMICALLY MANAGING ACCESS TO LOGICAL UNIT NUMBERS IN A DISTRIBUTED STORAGE AREA NETWORK ENVIRONMENT AND DEVICES THEREOF

NetApp, Inc., Sunnyvale,...

1. A method, comprising:determining, by a computing device, when at least one of a plurality of nodes of a cluster is cut off from other ones of the nodes;
identifying, by the computing device, any logical unit numbers (LUNs) owned by each of the nodes; and
adjusting, by the computing device, a fault domain for any of the identified LUNs owned by the at least one of the nodes determined to be cut off from a distributed task set mode (DTM) of operation to a single task set mode (STM) of operation without any communication about the adjusting to any host computing device interacting with the cluster.

US Pat. No. 10,168,902

REDUCING PURGING OF STRUCTURES ASSOCIATED WITH ADDRESS TRANSLATION

INTERNATIONAL BUSINESS MA...

1. A computer program product for managing purging of structures associated with address translation, said computer program product comprising:a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
obtaining a tracking structure for a virtual processor executing on a current physical processor, the tracking structure tracking which physical processors of a plurality of physical processors are to perform a purging operation for this virtual processor on a structure associated with address translation; and
selectively performing, by the current physical processor on which the virtual processor is executing, the purging operation on the structure associated with address translation, the selectively performing being based on the tracking structure, wherein the selectively performing refrains from performing the purging operation based on the tracking structure indicating the purging operation is not to be performed.

US Pat. No. 10,168,901

MEMORY SYSTEM, INFORMATION PROCESSING APPARATUS, CONTROL METHOD, AND INITIALIZATION APPARATUS

TOSHIBA MEMORY CORPORATIO...

1. A memory system connectable to a host, the host including a host controller and a host memory, the host memory including a first memory area and a second memory area, the second memory area being used as a cache by the memory system, the second memory area including a third memory area and a fourth memory area, the memory system comprising:a nonvolatile memory; and
a controller configured to:
control the non-volatile memory,
decide an initialization target area in the second memory area,
send the host a write command, the write command being a command to write an initialization value to a 1st area, the 1st area being included in the initialization target area,
determine whether a data size of an uninitialized area is less than (K?1) times a data size of an initialized area in the initialization target area, K being a number that is pre-determined to be more than one or to be less than two or equal to two,
when the data size of the uninitialized area is not less than (K?1) times the data size of the initialized area in the initialization target area, send the host a first copy command, the first copy command being a command to copy the initialization value stored in the initialized area to a 2nd area, the 2nd area being included in the uninitialized area, a data size of the 2nd area being equal to (K?1) times of the data size of the initialized area,
when the data size of the uninitialized area is more than zero and is less than (K?1) times the data size of the initialized area in the initialization target area, send the host a second copy command, the second copy command being a command to copy the initialization value stored in the initialized area to a 3rd area, the 3rd area being included in the uninitialized area, a data size of the 3rd area being less than (K?1) times the data size of the initialized area and being equal to the data size of the uninitialized area,
when the data size of the uninitialized area is equal to zero in the initialization target area, complete the initialization of the initialization target area.

US Pat. No. 10,168,900

INFORMATION PROCESSING APPARATUS, PROGRAM, AND OPERATION CONTROL ME

Sony Corporation, Tokyo ...

1. An electronic device comprising:a touch screen;
a pressure sensitive sensor configured to detect pressure applied by user inputs with a manipulation object performed on the touch screen; and
circuitry configured to
determine which of two or more input states a first user input of the user inputs belongs to by comparing the detected pressure with a threshold value for a predetermined time;
determine that the first user input belongs to a first input state of the two or more input states when the detected pressure is determined to be more than the threshold value for the predetermined time;
determine that a second user input of the user inputs after the first user input is in the first input state until the pressure is determined to be equal to or less than the threshold value after the determination that the detected pressure of the first user input is more than the threshold value for the predetermined time; and
determine that a third user input of the user inputs is in a second input state of the two or more input states after releasing of the manipulation object from the touch screen.

US Pat. No. 10,168,898

SUPPORTING DIFFERENT EVENT MODELS USING A SINGLE INPUT SOURCE

Microsoft Technology Lice...

1. One or more computer readable memory devices embodying computer readable instructions which, when executed, implement a method comprising:receiving a first message associated with a first input type;
processing the first message to produce data and caching the data;
receiving a second message associated with a second different input type;
correlating the second message with the first message; and
re-using the cached data produced by processing the first message to process the correlated second message so that the processing that produced the data does not have to be repeated for the correlated second message, wherein the first input type comprises one of a touch input type or a non-touch input type and the second different input type comprises a different one of the touch input type or the non-touch input type.

US Pat. No. 10,168,897

TOUCH INPUT ASSOCIATION

Hewlett-Packard Developme...

1. A projective computing system, comprising:a vertical display of an all-in-one computer to display a first interface that displays a first image;
a horizontal touch sensitive mat communicatively coupled to the vertical all-in-one computer;
a projector assembly to project a second interface that displays a second image different from the first image on the horizontal touch sensitive mat;
a sensor located in the projector assembly to detect a touch input on the horizontal touch sensitive mat;
a processor; and
a non-transitory computer readable storage device storing instructions executed by the processor to:
receive a touch input modification request, and in response to receiving the touch input modification request; and
automatically and without further input, change the touch input detected by the sensor and associated with the horizontal touch sensitive mat to the vertical all-in-one computer such that the touch input detected by the sensor located over the horizontal touch sensitive mat controls the first interface displayed on the vertical all-in-one computer via a signal that is generated in response to the touch input, wherein the signal is routed to the processor to generate an output signal that is routed to the vertical display to control a marker that is displayed on the vertical display.

US Pat. No. 10,168,896

PREVIEWING PORTIONS OF ELECTRONIC DOCUMENTS

International Business Ma...

9. A computer program product for previewing content in an electronic document, the computer program product disposed upon a computer readable storage medium, the computer program product comprising computer program instructions that, when executed by a computer processor of a computer, cause the computer to:display a page within an electronic document, the page having a plurality of objects, each of the plurality of objects having a correlation with a respective one or more portions of a plurality of portions of the electronic document and each of the respective one or more portions of the plurality of portions of the electronic document having a correlation with a respective input gesture;
detect a first input gesture located within a predetermined distance of a first object of the plurality of objects;
determine that a first portion of the electronic document from the plurality of portions correlates with both the first object and the first input gesture;
display the first portion of the electronic document in response to detecting the first input gesture within the predetermined distance of the first object;
detect a second input gesture located within the predetermined distance of the first object, wherein the second input gesture is distinct from the first input gesture and includes a different motion than the first input gesture;
determine that a second portion of the electronic document from the plurality of portions correlates with both the first object and the second input gesture, wherein the first portion includes at least one first element from the electronic document not included in the second portion and the second portion includes at least one second element from the electronic document not included in the first portion; and
display the second portion of the electronic document in response to detecting the second input gesture.

US Pat. No. 10,168,895

INPUT CONTROL ON A TOUCH-SENSITIVE SURFACE

International Business Ma...

1. A computer-implemented method comprising:identifying, by one or more processors, an area on a touch-sensitive surface of a device corresponding to a concentration of received touch inputs on the touch-sensitive surface;
displaying, by one or more processors, a graphical representation of a predefined region at the area;
detecting, by one or more processors, a gesture on the touch-sensitive surface of a device;
determining, by one or more processors, whether the gesture is performed with respect to the predefined region on the touch-sensitive surface; and
in response to determining that the gesture is performed with respect to the predefined region, controlling, by one or more processors, an interaction focus on the touch-sensitive surface based on the gesture, wherein:
the interaction focus is located outside the predefined region; and
controlling the interaction focus on the touch-sensitive surface based on the gesture comprises:
moving, by one or more processors, the interaction focus on the touch-sensitive surface based on the gesture; and
operating, by one or more processors, a scroll wheel based on the gesture, the interaction focus being put on the scroll wheel, wherein operating the scroll wheel comprises:
in response to the gesture being a circling gesture on a boundary of the predefined region in a first direction, locking, by one or more processors, the interaction focus on the scroll wheel; and
in response to receiving a subsequent gesture with respect to the predefined region, rotating, by one or more processors, the scroll wheel.

US Pat. No. 10,168,894

COMPUTING DEVICE CANVAS INVOCATION AND DISMISSAL

MICROSOFT TECHNOLOGY LICE...

1. A computing device comprising:an input module implemented at least partially in hardware, configured to receive input to the computing device;
one or more modules configured to perform operations including:
determining, in response to removal of a cap from a first end of a stylus, that a canvas has been invoked;
displaying the canvas in response to determining that the canvas has been invoked;
displaying based on user input while the canvas is displayed, digital markings on the canvas;
determining that the canvas has been dismissed; and
ceasing, in response to determining that the canvas has been dismissed, displaying the canvas.

US Pat. No. 10,168,893

IDENTIFYING INPUT INTERRUPTION

International Business Ma...

1. A method for identifying input interruptions, the method comprising:determining, by a processor, whether a user input is continuous when entered into a first input destination, wherein determining whether the user input is continuous is based on comparing a time interval between one or more events comprising the user input to a threshold time interval;
based on determining that the user input is continuous, determining, by the processor, whether a portion of the user input is entered into a second input destination during the continuous user input;
based on determining that the portion of the user input is entered into the second input destination during the continuous user input, saving, by the processor, the portion of the user input in a computer-readable storage media; and
displaying, by the processor, a selectable option on a display to apply the portion of the user input to at least one of the first input destination and the second input destination.

US Pat. No. 10,168,891

DISPLAY DEVICE AND CONTROLLING METHOD THEREOF

LG ELECTRONICS INC., Seo...

1. A display device, comprising:a touch screen;
a wireless communication unit configured to receive data from an external device;
a sensing unit configured to sense at least one of a motion of the display device and biometric state information of a user; and
a controller configured to:
display an analog watch screen displaying a first number of icons related to the data received from the external device on the touch screen if a number of the data received from the external device is smaller than a predetermined number of data received from the external device, and
switch the analog watch screen to a digital watch screen displaying a second number of icons related to the data received from the external device if the number of data received from the external device corresponds to the predetermined number of data, wherein the second number of icons in the digital watch screen includes the first number of icons in the analog watch screen,
wherein each icon related to the data received from the external device is displayed together with a sender of the data at a location on the analog watch screen mapped to a reception time of the received data, and
wherein each icon has a different size based on an importance of the sender.

US Pat. No. 10,168,890

DOCUMENT CONTENT REORDERING FOR ASSISTIVE TECHNOLOGIES BY CONNECTING TRACED PATHS THROUGH THE CONTENT

International Business Ma...

1. A method for document content re-ordering, the method comprising:entering an ordering mode of the device and during the ordering mode, sensing in a computer display by the device of a drawing of an initial path across different portions of single displayed page of a document in the computer display beginning at an originating position of the initial path and ending at a terminating position, identifying by the device from the initial path an initial sequence of the different portions of the single displayed page of the document, sensing multiple additional, disjointed paths drawn across other different portions of the single page of the document each additional disjointed path defining an additional sequence;
adding the initial sequence to a list and also adding to the list each additional sequence and while still in ordering mode, attaching a first one of the additional sequences to the initial sequence in the list, and further attaching each additional sequence to an end of a prior additional sequence in the list so as to define a traversal order of items of each of the sequences for a screen reader; and,
exiting the ordering mode and thereafter, storing the list in memory and processing the list by transposing the list into meta-data indicative of a combined sequence of the initial sequence and the additional sequence in the list and, annotating by the device the single displayed page of the document with the generated meta-data so as to direct a screen reader to present different corresponding portions of the single displayed page in accordance with a sequence defined by the meta-data.

US Pat. No. 10,168,889

MEASURING METHOD AND A MEASURING DEVICE WITH FINGERTIP ZOOM

1. A measuring method for the measurement and display of at least one measurement signal, the measuring method comprising:the measurement signal is measured;
by means of a touch-sensitive screen, the at least one measured measurement signal is displayed and touches on the touch-sensitive screen are registered and processed;
in the case of a touch on the touch-sensitive screen at a first position, the displayed at least one measured measurement signal is displayed magnified in at least one first region with a first magnification, wherein the first region is configured to be around the first position, wherein in the first region, the displayed at least one measured measurement signal is displayed with a greater sharpness than outside the first region, wherein after an end of the touch on the touch-sensitive screen, the displayed at least one measured measurement signal is displayed without magnification, and wherein in the case of a displacement of the touch to a second position, the displayed at least one measured measurement signal is displayed magnified in at least one second region, the second region configured to be around the second position;
wherein the displayed at least one measured measurement signal is displayed in at least one of a third region or a fourth region and magnified with a second magnification, the third region configured to be around the first region and the fourth region configured to be around the second region and wherein the second magnification is smaller than the first magnification; and
wherein the displayed at least one measuring signal is displayed in the first region with the first magnification and in the third region with a third magnification simultaneously, and wherein the displayed at least one measurement signal is displayed in the second region with the second magnification and the fourth region with a fourth magnification simultaneously.

US Pat. No. 10,168,887

SYSTEM FOR DISPLAYING AND ADJUSTING DISPLAY OF INFORMATION TO A USER

31. A system for providing information to a user comprising:a screen for showing the information to the user, and a computer including a processor, the processor configured to:
receive one or more values from a source of values on which values the information shown to the user is based,
generate at least one data line wherein the data line comprises at least one data set, wherein the data sets comprises data which are based on said values, wherein the processor compares the data in the at least one data set with benchmark values, the benchmark values being generated on the basis of historical data, the historical data being an average value, or a minimum value or a maximum value of the data set at a certain time in the past,
display said at least one data line to the user on said screen,
and move the at least one data line on the screen,
wherein data sets moving over a border of the data line disappear and reappear over an opposing border of the data line into the data line after a certain time, and wherein a speed of the movement of the at least one data line is adjusted depending on a criterion relating to the at least one data set comprised in the data line, the criterion selected from the group consisting of size of at least one data set, number of data sets, length of at least one data set and combinations thereof, wherein the speed of the movement of the at least one data line is continuously adjusted with the size of data to be displayed in a line and the speed of movement increases when information conveyed by the data sets on the data line does not fit within the screen and decreases as information conveyed by the data sets on the data line comes closer to fitting within the screen.

US Pat. No. 10,168,884

GENERATING USER INTERFACE CONFIGURATION PAGES TO CONFIGURE A COMPUTING RESOURCE COMPRISED OF COMPONENT COMPUTING RESOURCES

International Business Ma...

1. A computer program product for generating a configuration page for rendering in a graphical user interface (GUI) for a user to use to configure a computing resource, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that executes to perform operations, the operations comprising:generating a configuration page for rendering in the GUI;
generating, within the configuration page, a plurality of user selectable concentric shapes representing a hierarchy of component computing resources from which a subject computing resource is configured, wherein only one component computing resource is graphically represented at each level of concentric shapes as one concentric shape representing the component computing resource, wherein each lower level component computing resource is graphically represented by a lower level shape as graphically enclosed within a concentric higher level shape representing a higher level component computing resource in the hierarchy, wherein the lower level component computing resource is configured with capacity from the higher level component computing resource, and wherein the hierarchy comprises at least three levels;
receiving user selection of one of the user selectable concentric shapes representing a selected one of the component computing resources in graphical representations of the hierarchy; and
generating, in the configuration page, user selectable component computing resource instances for the selected component computing resource in which the user selects the component computing resource instance from which the subject computing resource is configured, wherein the lower level component computing resource is supplied user selectable computing resources selected from configured of the higher level component computing resource.

US Pat. No. 10,168,883

CONFIGURING USER PROFILES ASSOCIATED WITH MULTIPLE HIERARCHICAL LEVELS

Oracle International Corp...

1. A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising:identifying a plurality of hierarchical levels, corresponding to an organizational hierarchy, each hierarchical level being associated with a respective set of one or more user profiles;
concurrently displaying a plurality of interface components corresponding respectively to the plurality of hierarchical levels, each interface component configured to receive user input specifying a data value for configuring data of at least one user profile associated with each respective hierarchical level of the plurality of hierarchical levels, the plurality of interface components comprising at least a first interface component corresponding to a first hierarchical level and a second interface component corresponding to a second hierarchical level;
receiving user input specifying at least a first value via the first interface component corresponding to the first hierarchical level;
receiving user input specifying at least a second value via the second interface component corresponding to the second hierarchical level;
determining whether the second value received via the second interface component corresponding to the second hierarchical level is valid based at least on the first value received via the first interface component corresponding to the first hierarchical level;
responsive to determining that the second value received via the second interface component corresponding to the second hierarchical level is valid:
configuring data of a first user profile associated with the first hierarchical level based on the first value; and
configuring data of a second user profile associated with the second hierarchical level based on the second value.

US Pat. No. 10,168,882

DEVICE, METHOD, AND GRAPHICAL USER INTERFACE FOR SWITCHING BETWEEN CAMERA INTERFACES

APPLE INC., Cupertino, C...

1. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by an electronic device with a touch-sensitive display and a camera, cause the device to perform:displaying a first camera interface on the touch-sensitive display for a first virtual camera that produces media with first output dimensions using the camera, wherein the first camera interface includes a first camera preview that provides an indication of the first output dimensions;
while displaying the first camera interface on the touch-sensitive display, detecting a first gesture by a single first contact that includes movement of the single first contact in a first direction on the touch-sensitive display across the first camera preview;
in response to detecting the first gesture in the first direction on the touch-sensitive display across the first camera preview, switching from displaying the first camera interface to displaying a second camera interface for a second virtual camera that produces media with second output dimensions using the camera, the second output dimensions being different from the first output dimensions, wherein the second camera interface includes a second camera preview that provides an indication of the second output dimensions;
while displaying the second camera interface on the touch-sensitive display, detecting a second gesture by a single second contact on the touch-sensitive display; and,
in response to detecting the second gesture:
determining whether the second gesture includes movement of the second single contact by more than a predefined amount on the touch-sensitive display within a predefined time period;
in accordance with a determination that the second gesture includes movement of the second single contact by more than the predefined amount in the first direction on the touch-sensitive display within the predefined time period, switching from displaying the second camera interface to displaying a third camera interface for a third virtual camera that produces media with third output dimensions using the camera, the third output dimensions being different from the first output dimensions and the second output dimensions, wherein:
the third camera interface is different from the first camera interface; and
the third camera interface is different from the second camera interface; and,
in accordance with a determination that the second gesture does not include movement of the second single contact by more than the predefined amount on the touch-sensitive display within the predefined time period, selecting a point within the respective camera preview as an autofocus reference point.

US Pat. No. 10,168,881

INFORMATION INTERFACE GENERATION

Microsoft Technology Lice...

1. A method for generating an information interface, comprising:identifying a selection of content within a webpage;
capturing the content from the webpage;
generating an information interface for the content;
populating the information interface with the content;
displaying the information interface in a shared operating system interface through which multiple other information interfaces are displayed, wherein the shared operating system interface is rotated between the information interface and the other information interfaces;
automatically updating the information interface with content from the webpage;
presenting an alert to a user that the information interface has been automatically updated;
responsive to identifying user input of a user search query through a search interface, and while the user is typing the user search query, providing a list of information interface suggestions corresponding to the user input, wherein each information interface suggestion in the list is a user-selectable item which describes a type of information interface comprising a topic that corresponds to the user input, wherein for each information interface suggestion, a selection of the information interface suggestion causes a corresponding information interface to be generated, wherein the corresponding information interface includes content captured from one or more associated webpages; and
responsive to receiving a selection of an information interface suggestion from the list of information interface suggestions, generating a second information interface that corresponds to the user input based upon the selected information interface suggestion.

US Pat. No. 10,168,880

SYSTEM, METHOD AND COMPUTER-ACCESSIBLE MEDIUM FOR MANIPULATING A PLURALITY OF COMPONENTS USING A SINGLE GESTURE OR MOTION

Jerome Dewhurst, Los Ang...

1. A non-transitory computer-accessible medium having stored thereon computer-executable instructions for performing a procedure to modify a visual media, wherein, when executed by a computer arrangement, the computer arrangement is configured to execute procedures comprising:displaying the visual media using a visual media editing application,
the visual media editing application defining at least one color parameter, wherein the at least one color parameter has three coefficients;
receiving, at the user interface, a single user input having a start point and an end point;
upon detecting the single user input, determining a distance between the start point and the end point and determining an angle formed by (i) at least one of a line or a vector based on the start point and the end point, and (ii) at least one of an X-axis or a Y-axis;
modifying the at least one color parameter according to the determined distance and determined angle, wherein:
if the determined angle is one of a first specified plurality of angles, uniformly increasing or decreasing all coefficients of the at least one color parameter by a first magnitude, wherein the first magnitude is determined according to the determined distance;
if the determined angle is one of a second specified plurality of angles different from any one of the first specified plurality of angles, increasing or decreasing at least one coefficient of the at least one color parameter by a second magnitude, wherein the at least one coefficient is determined according to the angle and the second magnitude is determined according to the distance; and
dynamically modifying the visual media at the user interface according to the modified at least one color parameter.

US Pat. No. 10,168,878

DASHBOARD GENERATION BASED ON USER INTERACTION

International Business Ma...

1. A computer program product for automatically identifying a long loading time for a user selection, comprising:one or more computer-readable storage medium and program instructions stored on at least one of the one or more tangible storage medium, the program instructions executable by a processor to perform a method comprising:
receiving an initial user input against a selection element within an application running on an electronic device, wherein the initial user input is a first click by a user to execute the selection element, and wherein the selection element is selected from the group consisting of a link, dropdown menu, area to input text, selectable graphical icon, transmit button, and receive button;
transmitting the initial user input to a server for processing the initial user input;
receiving one or more additional user inputs that are received after the server has begun processing the initial user input, wherein the one or more additional user inputs are additional clicks of the selection element that occur after the first click;
recording the additional user input in a data repository;
utilizing statistical analysis techniques on the recorded additional user input to determine a selection attempt value, wherein the selection attempt value is a click rate of the user against the selection element;
comparing the selection attempt value to a predetermined retry rate criteria, wherein the predetermined retry rate criteria is an automated policy implemented by the processor that controls the rate at which the user may access the selection element before a corrective action is performed, wherein the corrective action is an automatic update to the application that indicates that the application is loading;
determining that the selection attempt value satisfies a threshold;
determining that the user is having a negative user interaction based on the selection attempt value satisfying the threshold;
generating, in response to the selection attempt value satisfying the threshold, a customizable dashboard that is a graphical user interface based on preferences that include previously created graphical icons available for selection and the application, wherein the customizable dashboard includes a list of one or more applications running on a particular user's electronic device, a list of user interaction data for each of the one or more applications, one or more applications that a developer is working on, and a list of one or more users that are utilizing the one or more applications;
modifying user interaction data within the generated customizable dashboard for the application that includes the selection element;
transmitting the generated customizable dashboard to a developer;
receiving developer input that includes a request to generate a digital image to be presented on a display of the electronic device, wherein the digital image includes a visual indication that content of the selection element is loading and is being processed by the server;
generating, automatically, the digital image based on the received developer input;
displaying, within a user interface, the generated digital image;
receiving additional developer input that is a command to block the selection element for a predetermined amount of time;
transmitting, to the electronic device, the command to block the selection element for the predetermined amount of time; and
blocking, by the application, additional selection of the selection element.

US Pat. No. 10,168,877

DASHBOARD GENERATION BASED ON USER INTERACTION

International Business Ma...

1. A computer system for automatically identifying a long loading time for a user selection, comprising:one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage medium, and program instructions stored on at least one of the one or more tangible storage medium for execution by at least one of the one or more processors via at least one of the one or more memories, wherein the computer system is capable of performing a method comprising:
receiving an initial user input against a selection element within an application running on an electronic device, wherein the initial user input is a first click by a user to execute the selection element, and wherein the selection element is selected from the group consisting of a link, dropdown menu, area to input text, selectable graphical icon, transmit button, and receive button;
transmitting the initial user input to a server for processing the initial user input;
receiving one or more additional user inputs that are received after the server has begun processing the initial user input, wherein the one or more additional user inputs are additional clicks of the selection element that occur after the first click;
recording the additional user input in a data repository;
utilizing statistical analysis techniques on the recorded additional user input to determine a selection attempt value, wherein the selection attempt value is a click rate of the user against the selection element;
comparing the selection attempt value to a predetermined retry rate criteria, wherein the predetermined retry rate criteria is an automated policy implemented by the one or more processors that control the rate at which the user may access the selection element before a corrective action is performed, wherein the corrective action is an automatic update to the application that indicates that the application is loading;
determining that the selection attempt value satisfies a threshold;
determining that the user is having a negative user interaction based on the selection attempt value satisfying the threshold;
generating, in response to the selection attempt value satisfying the threshold, a customizable dashboard that is a graphical user interface based on preferences that include previously created graphical icons available for selection and the application, wherein the customizable dashboard includes a list of one or more applications running on a particular user's electronic device, a list of user interaction data for each of the one or more applications, one or more applications that a developer is working on, and a list of one or more users that are utilizing the one or more applications;
modifying user interaction data within the generated customizable dashboard for the application that includes the selection element;
transmitting the generated customizable dashboard to a developer;
receiving developer input that includes a request to generate a digital image to be presented on a display of the electronic device, wherein the digital image includes a visual indication that content of the selection element is loading and is being processed by the server;
generating, automatically, the digital image based on the received developer input;
displaying, within a user interface, the generated digital image;
receiving additional developer input that is a command to block the selection element for a predetermined amount of time;
transmitting, to the electronic device, the command to block the selection element for the predetermined amount of time; and
blocking, by the application, additional selection of the selection element.

US Pat. No. 10,168,876

CREATING MULTIPLE CURSORS FOR DUPLICATED ENTRY

International Business Ma...

1. A method comprising:a computer processor receiving input to create and activate a duplicate cursor in addition to a default cursor;
the computer processor determining information descriptive of a first position that corresponds to a current position of the default cursor;
the computer processor receiving information that is descriptive of a second position, distinct from the first position, which is determined by confirming a movement of a second cursor to the second position that corresponds to an intended position of the duplicate cursor;
creating the default cursor at the first position and the duplicate cursor at the second position, wherein both the default cursor and the duplicate cursor are enabled to concurrently receive input;
the computer processor receiving content as input for the first position that corresponds to the position of the default cursor; and
the computer processor duplicating the content that is input for the first position, at both the first position that corresponds to the default cursor, and the second position that corresponds to the duplicate cursor.

US Pat. No. 10,168,875

DISPLAYING DYNAMIC GRAPHICAL CONTENT IN GRAPHICAL USER INTERFACE (GUI) CONTROLS

International Business Ma...

1. A method for rendering a set of user interface controls with dynamic content in a graphical user interface (GUI), the method comprising:grouping different user interface controls into the set of user interface controls in a GUI, a selection of one of the set of user interface controls being mutually exclusive so that only one of the different user interface controls of the set of user interface controls is selectable at a given moment in time;
determining a cumulative selection metric for each of the user interface controls in the set of user interface controls based upon a selection of each corresponding one of the user interface controls by multiple different end users; and,
rendering an indicator within each of the user interface controls of a corresponding cumulative selection metric along with an associated static text label indicating the corresponding cumulative selection metric, the indicator comprising a colored fill of a corresponding one of the user interface controls which consumes a portion of the corresponding one of the user interface controls proportional to the corresponding cumulative selection metrics indicated by the static text label.

US Pat. No. 10,168,874

DEVICE, METHOD, AND GRAPHICAL USER INTERFACE FOR MANIPULATING FRAMED GRAPHICAL OBJECTS

APPLE INC., Cupertino, C...

1. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions for manipulating framed graphical objects which, when executed by an electronic device with a display, a touch-sensitive surface and one or more sensors to detect intensities of contacts with the touch-sensitive surface, cause the electronic device to:display a first portion of a graphical object inside of a frame on the display;
detect a gesture, wherein detecting the gesture includes:
detecting a contact on the touch-sensitive surface while a focus selector is over the graphical object; and
detecting movement of the contact across the touch-sensitive surface; and
in response to detecting the gesture that includes movement of the contact across the touch-sensitive surface:
in accordance with a determination that the contact meets predefined intensity criteria, remove the graphical object from the frame; and
in accordance with a determination that the contact does not meet the predefined intensity criteria, adjust an appearance of the graphical object inside of the frame in accordance with the movement of the contact across the touch-sensitive surface to display a second portion of the graphical object that was not displayed prior to detecting the gesture.

US Pat. No. 10,168,873

VIRTUAL INTERACTIONS FOR MACHINE CONTROL

LEAP MOTION, INC., San F...

1. A method of simplified manipulation of virtual objects by detected hand motions, wherein a detected hand includes calculation points of potential interaction with a manipulation point of a virtual object, the method including:receiving a virtual object to be manipulated;
detecting hand motion made by a hand relative to the virtual object to be manipulated and determining positions of a plurality of calculation points for the hand;
dynamically selecting at least one manipulation point inferring where an interaction will take place that is proximate to the virtual object to be manipulated based on the detected hand motion and determining a weighted average of distance from each position of the plurality of the calculation points to an anchor point selected based on the hand motion detected;
manipulating the virtual object by interaction between the detected hand motion and positions of one or more of the calculation points and the at least one manipulation point selected dynamically; and
displaying across a display a representation of manipulating the virtual object by the hand and hand motion detected;
wherein the hand and the virtual object both have anchor points and force applied by the calculation points through the manipulation point is calculated between a hand anchor point and a virtual object anchor point.

US Pat. No. 10,168,872

METHOD AND APPARATUS FOR DISPLAYING AND SCROLLING CONTENT

SONY CORPORATION, Tokyo ...

1. An information processing device, comprising:a display screen configured to display a plurality of contents; and
circuitry configured to:
set a reference orientation of the information processing device;
scroll, based on a first scroll unit of time and a first direction of scroll, the plurality of contents;
receive a first user input;
determine a new orientation of the information processing device based on the received first user input;
compare the new orientation with the reference orientation;
detect a change in orientation of the information processing device based on the comparison of the new orientation with the reference orientation;
determine a second scroll unit of time and a second direction of scroll based on the detected change in orientation,
wherein the second scroll unit of time accommodates first content items of the plurality of contents, and wherein the first content items correspond to a specific time interval;
scroll the plurality of contents based on the determined second scroll unit of time and the second direction of scroll;
determine a threshold value associated with a pinch operation based on the detected change in orientation, wherein the pinch operation corresponds to a second user input on the display screen; and
control the display screen to modify the displayed plurality of contents based on the determined threshold value associated with the pinch operation that corresponds to the second user input.

US Pat. No. 10,168,871

METHODS AND SYSTEMS FOR PRESENTING DIRECTION-SPECIFIC MEDIA ASSETS

ROVI GUIDES, INC., San J...

1. A method of selecting media content for display on user devices, the method comprising:receiving a first media asset, captured by a content capture device, associated with a first location;
determining a first direction at the first location that the content capture device faced when capturing the first media asset;
storing directional information indicating that the content capture device faced the first direction when capturing the first media asset;
receiving a user input requesting to generate a display of media assets associated with the first location at a second location;
detecting, from data indicating a plurality of available display devices for presenting media assets, a first display device having a position associated with a first direction at the second location and a second device having a position associated with a second direction at the second location;
determining, based on the stored directional information, that the first direction at the first location corresponds to the first direction at the second location;
automatically selecting the first display device from the plurality of available display devices in response to determining, based on the stored directional information, that the first direction at the first location corresponds to the first direction associated with the position of the first display device; and
generating a display of the first media asset on the automatically selected first display device.

US Pat. No. 10,168,870

SYSTEM FOR RETRIEVING, VISUALIZING AND EDITING SEMANTIC ANNOTATIONS

International Business Ma...

1. A computer-implemented method for modifying a set of annotations that include metadata describing properties of associated text fragments within an annotated text corpus, the method comprising:receiving a query specifying parameters for annotations from the set of the annotations;
extracting, from the set of annotations and by the query, a first entity subset of annotations, a second entity subset of annotations, and a relations subset of annotations between the first entity subset of annotations and the second entity subset of annotations;
extracting, from the annotated text corpus, contextual information relative to the extracted annotations, wherein each annotation in the first and second entity subset of annotations serves as an anchor for each respective relations subset annotation and each piece of contextual information;
generating a user interface having display frames populated by frame elements that include the entity subsets of annotations, the relations subset of annotations, and the contextual information;
receiving, responsive to selections of the frame elements, input specifying modifications to the annotations;
modifying, based on the input specifying modifications to the annotations, the set of annotations in the annotated text corpus;
receiving additional input specifying a change to the particular annotation label;
receiving additional input specifying a subset of the plurality of annotations; and
modifying, based on the additional input, the particular annotation label for each of the annotations in the subset of the plurality of annotations having the shared particular annotation label.

US Pat. No. 10,168,868

METHOD AND APPARATUS FOR MULTITASKING

Samsung Electronics Co., ...

1. A method for multitasking in an electronic device, the method comprising:after displaying a first application execution screen of a first application as a top layer screen on a display unit, the first application execution screen including a plurality of objects, receiving a first touch input at a first edge region of the display unit;
in response to the first touch input, displaying a first layer separation object while maintaining display of all of the plurality of objects and a respective shape for each of the plurality of objects, the first layer separation object including one or more lines extending along a vertical length of the display unit,
wherein each of the one or more lines corresponds to an executing application other than the first application, and
wherein after detecting the first touch input and prior to detecting any movement from the first touch input, the first application execution screen is shifted and the first layer separation object is displayed within a screen area from which the first application execution screen is shifted; and
in response to detecting a drag movement beginning from the first touch input, simultaneously displaying a portion of a second application execution screen of a second application and a portion of the first application execution screen,
wherein the simultaneously displaying comprises:
gradually increasing a display portion of the second application execution screen and gradually decreasing a display portion of the first application execution screen when a direction of the drag movement is toward a second edge region opposite to the first edge region, and
gradually increasing a display portion of the first application execution screen and gradually decreasing a display portion of the second application execution screen when a direction of the drag movement is toward the first edge region.

US Pat. No. 10,168,867

SYSTEM AND METHOD FOR GENERATING A UNIFIED MENU FOR MULTIPLE COMMUNICATION CHANNELS

1. A method of providing a unified menu across a plurality of communication channels, the method comprising:collecting, by a processor over a network, first user interaction information via a first communication channel via which a first menu is provided, the first user interaction information including an identity of a menu option and a frequency of selection of the menu option on the first communication channel, the first communication channel being a first channel type;
collecting, by the processor over the network, second user interaction information via a second communication channel via which a second menu is provided, the second user interaction information including an identity of a menu option and a frequency of selection of the menu option on the second communication channel, the second communication channel being a second channel type different than the first channel type;
applying, by the processor, weights to the selections of the menu options included in the first user interaction information and the second user interaction information based on frequencies of selections of the menu options on the first communication channel and the second communication channel;
determining whether each of the applied weights is above a reference threshold;
generating, using the processor, a unified menu comprising a list of unified menu options that are ordered in a sequential order based on the applied weights that are above the reference threshold, wherein a menu option selected having an applied weight less than the reference threshold is omitted from the unified menu;
transmitting, over the network, change requests to each of the first communication channel and the second communication channel to replace the first menu and the second menu with the unified menu to be presented to users;
applying the unified menu to each of the first communication channel and the second communication channel, such that same menu options are provided for both of the first communication channel and the second communication channel;
determining whether special weight is to be applied to the selection of the menu option included in the first user interaction information; and
applying the special weight to the selection of the menu option included in the first user interaction information when the special weight is determined to be applied,
wherein the selection of the menu option included in the first user interaction information is weighted based on a number of users accessing the first menu, and
wherein the selection of the menu option included in the first user interaction information is weighted based on whether user interaction information is collected through the first communication channel.

US Pat. No. 10,168,866

METHODS AND SOFTWARE FOR FACILITATING THEME-BASED ONLINE SOCIAL INTERACTION, SUPPORT, AWARENESS, AND LEARNING

1. A method of facilitating interaction among members of an online social-interaction system wherein the members share a common aspect, the method being executed by the online social-interaction system and comprising:providing a membership user interface designed and configured to allow each of the members to join the online social-interaction system;
in response to each member joining the online social-interaction system, providing that member with at least one private journal, wherein said at least one private journal:
is private to that member, meaning that entries made to said at least one private journal by that member are viewable only by that member unless that member elects to share one or more of the entries;
has a name identifying the common aspect; and
includes a new-entry user interface designed and configured to allow that member to add the entries and, for each of the entries, to display a privacy selector that allows that member to select any privacy setting from the group of 1) just me, 2) close friends, and 3) All Friends, wherein the privacy setting of just me allows only that member to view an entry, the privacy setting of close friends allows that member to share an entry only with other ones of the members that that member has designated as close friends, and the privacy setting of All Friends allows that member to share an entry only with other ones of the members that that member has designated as friends; and
includes a post-display window having a post-display region that displays a plurality of posts when the posts are available for posting;
receiving, via said at least one private journal of a particular one of the members, a new entry from the particular member;
receiving, via said privacy selector, a user selection from the particular member of one of 1) just me, 2) close friends, and 3) All Friends;
if the user selection is just me, then keeping the new entry viewable only by the particular member; and
if the user selection is close friends or All Friends, then sharing the new entry with either only close friends or All Friends, depending on the user selection;
wherein said providing at least one private journal includes providing an action-request journal designed and configured to post an add-to-action-list selector with the new entry so that when the action-request journal displays the new entry in the post-display region, the action-request journal displays the add-to-action-list selector among the plurality of posts within the post-display region of the post-display window;
wherein the new entry and add-to-action-list selector are each posted by a first member of the members, the method further comprising receiving a user selection of the add-to-action-list selector by a second member of the members; and
adding an action item to an action list of the second member in response to said receiving the user selection of the add-to-action-list selector.

US Pat. No. 10,168,865

DISPLAY APPARATUS FOR GENERATING SYMBOL AND METHOD THEREOF

SAMSUNG ELECTRONICS CO., ...

1. A method for executing a function of an icon by inputting a symbol, comprising:displaying a plurality of icons corresponding to a plurality of functions on a display;
analyzing, by a controller, an image corresponding to an icon of the plurality of icons to extract an outline of a graphic object included in the image and at least one letter of a text included in the image;
generating at least two symbols for the icon based on the analyzed image on the display comprising the extracted at least one letter of the text included in the image and the extracted outline of the graphic object included in the image;
in response to a symbol of the at least two generated symbols being selected by a user, matching the selected symbol to a function represented by the icon; and
in response to a user input which draws an image of the selected symbol using a user interface, executing the function.

US Pat. No. 10,168,864

GESTURE MENU

Citrix Systems, Inc., Fo...

1. A method, performed by a computing device of presenting a menu of an application running on the computing device on a touchscreen of the computing device, the method comprising:receiving a signal from the touchscreen indicating that a user has touched with a finger a menu activation element (MAE) displayed on a screen of the application;
in response to receiving the signal, displaying the menu on the touchscreen;
receiving a signal from the touchscreen indicating that the user, without having lifted the finger, is sliding the finger across the touchscreen in a first direction and, in response, displaying the MAE as a slider element of the menu and moving a display position of the slider element correspondingly on the touchscreen;
receiving a signal from the touchscreen indicating that the user, without having lifted the finger, has slid the slider element in a second direction substantially orthogonal to the first direction past a selection threshold and, in response, selecting a menu item corresponding to a current location of the slider element; and
in response to selecting the menu item, performing an action corresponding to the menu item,
wherein prior to receiving the signal from the touchscreen indicating that the user has slid the slider element in the second direction past the selection threshold, (i) displaying a tentative selection, (ii) determining that the tentative selection is associated with additional information, and (iii) displaying the additional information without the user having lifted the finger.

US Pat. No. 10,168,863

COMPONENT SPECIFYING AND SELECTION APPARATUS AND METHOD USING INTELLIGENT GRAPHIC TYPE SELECTION INTERFACE

Siemens Industry, Inc., ...

1. A method for generating an output identifying components for a system, each of the components having one of a plurality of types, each of the components defined by a plurality of specifications, the method comprising:employing a network interface to receive a selection tool into a computer system memory;
executing the selection tool on a processing device to open a multi-window display that includes a schedule window, a product type select window, and a product window;
executing the selection tool on the processing device, to display a menu of a plurality of graphic elements, each of the plurality of graphic elements representative of and corresponding to a product type;
executing the selection tool on the processing device to receive a user input selecting a first graphic element from the menu;
executing the selection tool on the processing device, subsequent to receiving the user input, to update the multi-window display to display the menu of the plurality of graphic elements without the first graphic element and to display the first graphic element in the product type select window;
displaying a parameter window simultaneously with the display of the product type select window, the product window and the schedule window, the parameter window comprising a plurality of interactive elements facilitating user identification of product parameters, each of the product parameters constituting physical characteristics;
receiving user input in the plurality of interactive elements, the user input defining a first product parameter;
executing the selection tool on the processing device, to filter a component database to identify a first set of components having a component type corresponding to the first graphic element and the first product parameter; and
executing the selection tool on the processing device to display in the product window data a list of components from the first set of components.

US Pat. No. 10,168,861

MENU DISPLAY DEVICE, MENU DISPLAY CONTROL METHOD, PROGRAM AND INFORMATION STORAGE MEDIUM

Sony Interactive Entertai...

1. A menu display device, comprising:a menu displaying unit configured to display on a screen a given range within a menu, in which a plurality of menu items are arranged in an array;
a range moving unit configured to move the given range in response to a scrolling operation performed by a user;
a determination unit configured to: (i) determine whether or not a first end menu item at a first end within the menu is displayed in a first predetermined position of the screen, and (ii) determine whether or not a second end menu item at a second end within the menu, opposite to the first end, is displayed in a second predetermined position of the screen; and
a space changing unit configured to change spaces between respective menu items displayed on the screen in response to the scrolling operation performed by the user, such that: (i) when the first end menu item at the first end is displayed in the first predetermined position of the screen, a first space between the first end menu item and an adjacent menu item, and a second space between the adjacent menu item and a next adjacent menu item, are widened, and (ii) when the second end menu item at the second end is displayed in the second predetermined position of the screen, a third space between the second end menu item and a prior adjacent menu item is widened, but a fourth space between the prior adjacent menu item and a next prior adjacent menu item is not widened.

US Pat. No. 10,168,859

CONTEXTUAL DETERMINATION OF EMOTION ICONS

International Business Ma...

1. A method comprising:generating, by one or more processors, a plurality of emotion icons, wherein the plurality of emotion icons is based on a class of a user, a class of a recipient, one or more facial parameters of the user, and one or more facial parameters of the recipient, wherein the class of the user is based on a current state of the user and a cognitive style of the user, wherein the class of the recipient is based on a current state of the recipient and a cognitive style of the recipient, wherein a current state of the user includes a current emotional state of the user, and wherein a cognitive style of the user reflects the user's cultural norms, demographic, and mental conditions;
determining, by one or more processors, for a user, at least one emotion icon among the plurality of emotion icons to automatically input into a message based on the class of the user, the class of the recipient and a context of the message;
inserting, by the one or more processors, the determined at least one emotion icon among the generated plurality of emotion icons into the message in response to determining the context of the message; and
generating, by the one or more processors, a new emotion icon from the generated plurality of emotion icons based on the one or more facial parameters and the determined context of the message.

US Pat. No. 10,168,858

METHOD FOR DISPLAYING INFORMATION IN A VEHICLE, AND A DEVICE FOR CONTROLLING THE DISPLAY

VOLKSWAGEN AG, (DE)

1. A method for displaying information in a transportation vehicle, the method comprising:assigning graphical objects to list entries in a list and, in a main view, displaying a subset of the graphical objects by a display device arranged in the transportation vehicle; and
changing the graphics data as a result of an input using an input device, wherein the graphics data is changed by a control device such that the graphical objects in the displayed subset are changed,
wherein, as a result of an input using the input device, the control device changes to a configuration mode to assign graphical objects to the subset for display in the main view, wherein at least one graphical object of the graphical objects not currently assigned to the subset is displayed in the configuration mode, and
wherein the display device comprises a display area having a touch-sensitive surface, and the input for changing to the configuration mode comprises simultaneously touching the touch-sensitive surface both at a selected one of the graphical objects for a list entry and a location at which no other graphical objects are displayed, and a separate set-up menu is displayed in the configuration mode, wherein simultaneously touching excludes swiping.

US Pat. No. 10,168,857

VIRTUAL REALITY FOR COGNITIVE MESSAGING

INTERNATIONAL BUSINESS MA...

1. A computer-implemented method, comprising:obtaining, by a computing device, a virtual reality space that is based on a physical venue;
creating, by a collider tool of the computing device, an enhanced virtual reality space by inserting one or more colliders into the virtual reality space, wherein the placement of the one or more colliders by the collider tool in the enhanced virtual reality space maps to a placement of one or more beacons in the physical venue, and the one or more colliders have a scaled perimeter matching a range of the one or more beacons in the physical venue;
initiating, by the computing device, a virtual tour of the enhanced virtual reality space by a virtual user remote from the physical venue;
sensing, by the computing device, that the virtual user has virtually collided with one of the one or more colliders in the enhanced virtual reality space during the virtual tour;
sending, by the computing device, a request for event information associated with the one or more beacons in the physical venue to a remote messaging server based on the sensing that the virtual user has virtually collided with the one of the one or more colliders, wherein the request includes information regarding the physical venue associated with the virtual reality space, an identifier indicating that an event was triggered in the virtual reality space, and information regarding the one of the one or more colliders;
receiving, by the computing device, the event information from the remote messaging server based on the request for event information; and
displaying content associated with the event information to a user of the computing device.

US Pat. No. 10,168,856

GRAPHICAL USER INTERFACE FOR MANAGING THREE DIMENSIONAL DATASET

International Business Ma...

1. A method implemented by an information handling system that includes a processor and a memory accessible by the processor, the method comprising:displaying, on a two dimensional (2D) screen, a gyroscopic graphical user interface (GUI) that provides three dimensional (3D) control of a simulated 3D scene displayed on the 2D screen, wherein the gyroscopic GUI comprises a 2D rotational control and one or more 3D rotational controls that are each separately responsive to interactions performed by a user, and wherein a selected 3D rotational control is an elliptical-shaped control centered in the gyroscopic GUI and an angle with respect to an x-axis of the gyroscopic GUI control;
receiving, at the selected 3D rotational control, a 3D rotational gesture from the user; and
adjusting the 3D scene displayed on the 2D screen in response to the received gesture, wherein the adjusting comprises altering an x, a y, and a z coordinates of an object included in the 3D scene based on the angle and an extent of the 3D rotational gesture.

US Pat. No. 10,168,855

AUTOMATIC DETECTION OF USER PREFERENCES FOR ALTERNATE USER INTERFACE MODEL

INTERNATIONAL BUSINESS MA...

1. A method for automatic detection of user preferences for an alternate user interface model, the method comprising:operating, by a processer, a digital device with an active user interface model, wherein the digital device includes a touchscreen that displays a user interface that comprises a layout, and wherein the active user interface model is a first mapping of input gestures to a first set of operations to be executed by a processor of the digital device in response;
receiving, repeatedly, a series of input gestures from a user of the digital device via the touchscreen, wherein the series of input gestures is received for at least a predetermined number of times over a predetermined duration;
determining a first likelihood ratio by comparing the series of input gestures with the first set of input gestures associated with the active user interface model;
determining a second likelihood ratio by comparing the series of input gestures with a second set of input gestures associated with a latent user interface model, wherein the latent user interface model is a second mapping of input gestures to a second set of operations to be executed by the processor of the digital device in response, the second set of operations being distinct from the first set of operations;
determining the higher likelihood ratio from the first likelihood ratio and the second likelihood ratio; and
substituting the latent user interface model for the active user interface model, in response to the second likelihood ratio being higher, wherein substituting the latent user interface model with the highest likelihood does not alter the layout of the user interface.

US Pat. No. 10,168,854

USER AWARE DIGITAL VISION CORRECTION

Dell Products, L.P., Rou...

1. A method comprising:detecting, at an information handling system, a login of a first user profile associated with a first user;
in response to detecting the login of the first user profile, determining whether the first user profile has an associated first vision profile; and
in response to the first user profile having an associated first vision profile:
identifying, from the first vision profile, a vision correction value associated with the first user;
calculating a first change in image characteristics that may be applied to a graphical user interface (GUI) in order to achieve the vision correction value;
applying the first change in image characteristics to the GUI, wherein the GUI is displayed with at least the first change in image characteristics applied to one or more content of the GUI.

US Pat. No. 10,168,852

MAGNETIC RESONANCE IMAGING APPARATUS

TOSHIBA MEDICAL SYSTEMS C...

1. A magnetic resonance imaging (MRI) apparatus comprising:MRI gantry components including static and gradient magnetic field generators, at least one radio-frequency coil coupled to an imaging volume, RF transmitting and receiving circuits, at least one operator input/output device including a visual display, data storage and at least one control processor configured to control said gantry components by executing computer program instructions to effect:
display one of a plurality of overlapping editing windows, each overlapping editing window being configured for operator-setting of concurrently displayed MRI data acquisition parameters defining a respectively corresponding one of a plurality of mutually-related different types of MR image-taking processes,
display non-overlapped operator-selectable regions with each of the plurality of overlapped editing windows on a single display screen, the operator-selectable regions respectively corresponding to each of said MR image-taking processes,
wherein each of said MR image-taking processes includes an MRI scan that executes an MRI pulse sequence for acquiring magnetic resonance signals, and said operator-set MRI data acquisition parameters for said different types of MR image-taking processes have inter-related relevance to one another, and
wherein, when one of the non-overlapped operator-selectable regions is selected, switching from a display of one of the editing windows to a display of another one of the editing windows corresponding to another one of the MR image-taking processes is effected.

US Pat. No. 10,168,851

TOUCH PANEL AND METHOD FOR MANUFACTURING THE SAME

Mitsubishi Electric Corpo...

1. A touch panel comprising:a substrate;
a row-direction wiring line disposed, on said substrate, to extend in a row direction;
a column-direction wiring line disposed, on said substrate, to extend in a column direction and to intersect with said row-direction wiring line in a plan view; and
an inter-layer insulating film which electrically separates said row-direction wiring line and said column-direction wiring line at an intersection at which said row-direction wiring line and said column-direction wiring line intersect in a plan view,
wherein each of said row-direction wiring line and said column-direction wiring line has a laminated structure made up of at least two layers,
at said intersection, a bottom layer of one wiring line of said row-direction wiring line and said column-direction wiring line continues on a lower surface side of said inter-layer insulating film, and layers of the one wiring line except said bottom layer are divided, and
at said intersection, layers of the other wiring line of said row-direction wiring line and said column-direction wiring line except the top layer of the other wiring line are divided, and the top layer of the other wiring line continues on the upper surface side.

US Pat. No. 10,168,848

RADIOFREQUENCY-WAVE-TRANSPARENT CAPACITIVE SENSOR PAD

Microsoft Technology Lice...

1. An electronic device for transmitting radiofrequency waves comprising:a capacitive sensor pad configured to detect proximity of a body outside the electronic device and to permit the radiofrequency waves to pass through the capacitive sensor pad; and
a radiofrequency antenna overlapping the capacitive sensor pad and configured to transmit the radiofrequency waves through the capacitive sensor pad.

US Pat. No. 10,168,847

SENSOR ELECTRODE PATH ERROR DIAGNOSIS

Synaptics Incorporated, ...

1. A processing system, said processing system comprising:a sensing circuitry configured to couple with a first sensor electrode path of a plurality of sensor electrode paths, wherein the sensing circuitry is configured to drive said first sensor electrode path with a first signal;
a first internal diagnostic mechanism configured to couple with a second sensor electrode path and configured to acquire a test signal output while said sensing circuitry drives said first sensor electrode path with said first signal, wherein said first internal diagnostic mechanism comprises a selectable current source configured to couple with said second sensor electrode path, and wherein said selectable current source is enabled during acquisition of said test signal output; and
a determination circuitry configured to determine whether said first and second sensor electrode paths are ohmically coupled together based on said test signal output.

US Pat. No. 10,168,844

FLEXIBLE DISPLAY DEVICE

Samsung Display Co., Ltd....

1. A flexible display device, comprising:a display panel providing a base surface and comprising a plurality of light emitting areas and a non-light emitting area disposed adjacent to the light emitting areas; and
a touch screen disposed on the base surface, the touch screen comprising:
a plurality of first conductive patterns disposed on the base surface and overlapped with the non-light emitting area;
a first insulating layer disposed on the base surface, covering the first conductive patterns, and comprising a plurality of first openings defined to correspond to the light emitting areas;
a plurality of second conductive patterns disposed on the first insulating layer and overlapped with the non-light emitting area; and
a second insulating layer disposed on the first insulating layer, covering the second conductive patterns, and comprising a plurality of second openings defined to correspond to the light emitting areas.

US Pat. No. 10,168,843

SYSTEM AND METHOD FOR DETERMINING USER INPUT FROM OCCLUDED OBJECTS

Synaptics Incorporated, ...

1. A processing system for use with a capacitive input device that senses objects in a sensing region, comprising:a sensor circuitry configured to operate a plurality of sensor electrodes to acquire resulting signals; and
a determination circuitry configured to:
determine an image of sensor values based on the resulting signals;
identify a portion of the image corresponding to a sensed object in the sensing region;
determine a polygon corresponding to the sensed object by:
identifying a first pixel within the identified portion of the image;
identifying a plurality of pixels that are adjacent to the first pixel but external to the identified portion of the image; and
determine a vertex of the polygon by interpolating based on a sensor value for the first pixel in the image and a plurality of sensor values for the plurality of pixels in the image;
track the sensed object based on the polygon; and
perform a graphical user interface action based on a characteristic of the polygon.

US Pat. No. 10,168,840

TOUCH SCREEN PANEL AND METHOD OF MANUFACTURING THE SAME

Samsung Display Co., Ltd,...

1. A touch screen panel, comprising:a substrate comprising an active area and a non-active area surrounding the active area;
sensing cells disposed in the active area, the sensing cells comprising a first transparent conductive layer; and
connection lines disposed in the non-active area, the connection lines comprising:
an upper pattern comprising a metal layer; and
a lower pattern disposed between the substrate and the upper pattern, and comprising the first transparent conductive layer formed directly on the substrate,
wherein an ionicity of the metal layer is greater than an ionicity of the first transparent conductive layer.

US Pat. No. 10,168,838

DISPLAYING AN OBJECT INDICATOR

Hewlett-Packard Developme...

1. A computing system comprising:a touch-sensitive surface;
a display;
at least one camera to capture an image representing an object disposed between the camera and the touch-sensitive surface; and
a detection engine to:
based at least on the image, determine display coordinates corresponding to the object's projection onto the touch-sensitive surface, wherein the display is not parallel to the touch-sensitive surface;
select an object indicator from at least two different object indicators based at least on whether the object is touching the touch-sensitive surface;
determine to display the object indicator based on a ratio of the object's distance from the touch-sensitive surface and the object's distance from the display when the object is not touching either of the touch-sensitive surface or the display; and
provide the selected object indicator to the display for displaying the selected object indicator at the determined display coordinates on the display.

US Pat. No. 10,168,836

DISPLAY SYSTEM, INFORMATION PROCESSING DEVICE, PROJECTOR, AND INFORMATION PROCESSING METHOD

SEIKO EPSON CORPORATION, ...

1. A display system including a computer, a first projector, and a second projector, the display system comprising:at least one central processing unit (CPU) programmed to act as:
a first sensing unit sensing a first event which occurs by an operation of an indicator with respect to an image projected onto a projection surface from the first projector;
a second sensing unit sensing a second event which occurs by the operation of the indicator with respect to an image projected onto the projection surface from the second projector;
a replacement unit replacing a set of first event information representing the first event and second event information representing the second event with third event information representing a predetermined third event, in a case in which the first event and the second event satisfy predetermined conditions; and
a processing unit performing processing corresponding to the third event information.

US Pat. No. 10,168,834

METHOD AND DEVICE FOR OPERATING A TOUCH SCREEN

1. A method for operating a touch screen, comprising:obtaining, by a terminal, an actual sliding track of a touch operation of a user on a touch screen of the terminal;
replacing, by the terminal, the actual sliding track with a pre-set sliding track corresponding to the actual sliding track; and
responding to, by the terminal, the touch operation of the user according to the pre-set sliding track;
wherein before replacing, by the terminal, the actual sliding track with the pre-set sliding track corresponding to the actual sliding track, further comprising: receiving, by the terminal, an operation instruction of the user; and opening, by the terminal, a simple operation mode in responsive to the operation instruction, wherein in the simple operation mode, the terminal replaces the actual sliding track with the pre-set sliding track corresponding to the actual sliding track;
wherein the simple operation mode comprises an intelligent operation mode; wherein the intelligent operation mode is that: determining that the touch screen enters a horizontal operation mode when a difference value between the number of horizontal operations on the touch screen and the number of vertical operations on the touch screen is greater than a first threshold in a predetermined period of time, or determining that the touch screen enters a vertical operation mode when the difference value between the number of vertical operations on the touch screen and the number of horizontal operations on the touch screen is greater than a second threshold in the predetermined period of time.

US Pat. No. 10,168,833

PRESENTATION OF A DIGITAL IMAGE OF AN OBJECT

Hewlett-Packard Developme...

1. A system, comprising:a camera to capture a digital image of an object positioned in a location within a field of view of the camera;
a projector unit, communicatively coupled to the camera, to project the digital image in the location of the object, wherein a size of the digital image matches a size of the object;
a plurality of sensors; and
a calibration module to perform calibration between the plurality of sensors using a three-dimensional (3 D)-to-two-dimensional (2D) mapping that maps between 3D coordinates of a first sensor of the plurality of sensors and 2D coordinates of a second sensor of the plurality of sensors.

US Pat. No. 10,168,831

TOUCH DEVICE DETECTION

Promethean Limited, (GB)...

1. A method for detecting the presence of a pointing device at an interactive surface, which interactive surface is provided with an illumination field for detecting a contact point, the method comprising: identifying a contact point using the illumination field; energizing any pen device proximate the surface utilizing energy provided by the illumination field; transmitting a wireless signal from any pen device energized by the illumination field; determining if a wireless signal is received from a device excited by the illumination field; and in dependence on receipt of the wireless signal: (i) identifying data associated with the contact point as touch data if no wireless signal is received; and (ii) identifying data associated with the contact point as pen data if the wireless signal is received.

US Pat. No. 10,168,830

TOUCH SCREEN AND SMART TERMINAL

Shenzhen China Star Optoe...

1. A touch screen, comprising m scan blocks,wherein each of the m scan blocks comprises a gate-driver-on-array (GOA) stage transfer circuit, n scan lines and at least one touch pane (TP) scan module, wherein a first input end of the GOA stage transfer circuit receives a STV signal and a second input end of the GOA stage transfer circuit receives a CK signal, and the GOA stage transfer circuit comprises n GOA units which are cascade connected and respectively correspond to the n scan lines such that an ith GOA unit of the GOA stage transfer circuit is operable to charge an ith scan line, and an nth scan line is coupled to the at least one TP scan module;
wherein in a scanning operation, the GOA stage transfer circuit of a jth scan block starts scanning upon receiving a jth STV signal and also receives the CK signal, such that the GOA stage transfer circuit proceeds with charging of the n scan lines consecutively by sequentially having a first one to an nth one of the n scan lines charged with a first one to an nth one of the n GOA units, respectively, and after the nth one of the n GOA units charged the nth one of the n scan lines, a signal is supplied through the nth one of the n scan line to activate an operation of the at least one TP scan module, wherein m, n, i, and j are all positive integers;
wherein the m scan blocks respectively receive m STV signals that are separate STV signals and the m separate STV signals are respectively and separately supplied to the m scan blocks, wherein the m separate STV signals are independent of each other such that each of the m scan blocks is activated at a time point that is selectively different from or the same as a time point of activation of a different one of the m scan blocks.

US Pat. No. 10,168,829

INFORMATION PROCESSING APPARATUS, CONTROL METHOD THEREFOR, PROGRAM, AND RECORDING MEDIUM

Canon Kabushiki Kaisha, ...

1. An information processing apparatus comprising a memory and at least one processor, the at least one processor operating as:a touching detection unit configured to detect at least one touching operation for touching a display unit, and a respective or corresponding touch-up operation for discontinuing the at least one touching operation on the display unit;
a display control unit configured to control the display unit to display a first display object in a first area of the display unit and to display a second display object in a second area of the display unit which is different from the first area;
a time counting unit configured to count a time period of the at least one touching operation on at least one of the first display object and the second display object of the display unit, the at least one touching operation being continuous from a beginning to an end of the at least one touching operation; and
a system control unit configured:
(a) to execute a first function, which changes a mode or a setting of the information processing apparatus, assigned to the first display object based on the touching detection unit detecting the respective or corresponding touch-up operation from the first display object on which a first touching operation of the at least one touching operation has been detected before the time period of the first touching operation on the first display object counted by the time counting unit has reached a time period threshold;
(b) to display an item regarding the first display object in response to the time period of the first touching operation on the first display object counted by the time counting unit having reached the time period threshold after the first touching operation on the first display object has been detected by the touching detection unit;
(c) to execute a second function, which changes a mode or a setting of the information processing apparatus, assigned to the second display object, based on the touching detection unit detecting the respective or corresponding touch-up operation from the second display object on which a second touching operation of the at least one touching operation has been detected regardless of whether the time period of the second touching operation on the second display object is longer than the time period threshold or not; and
(d) not to execute the first function assigned to the first display object based on the touching detection unit detecting the respective or corresponding touch-up operation from the first display object on which the first touching operation has been detected after the time period of the first touching operation on the first display object has reached the time period threshold.

US Pat. No. 10,168,828

DISPLAY DEVICE WITH TOUCH PANEL

Japan Display Inc., Toky...

1. A display device with a touch panel, the display device comprising:a display panel;
a substrate;
a plurality of electrodes formed on the substrate, the plurality of electrodes including a first group of electrodes and a second group of electrodes, each of the first group of electrodes having a contact portion;
an insulating film made of a negative resist and formed on the plurality of electrodes;
an intersecting electrode formed on the insulating film and intersecting with each of the second group of electrodes; and
a protective film made of a negative resist on the intersecting electrode and on the insulating film,
wherein each of the first group of electrodes is exposed from the insulating film at the contact portion,
wherein the intersecting electrode is connected to each of the first group of electrodes at the contact portion, and
the insulating film is different in a planar shape from the plurality of electrodes.

US Pat. No. 10,168,827

SENSOR CORRELATION FOR PEN AND TOUCH-SENSITIVE COMPUTING DEVICE INTERACTION

MICROSOFT TECHNOLOGY LICE...

1. A computer-implemented process for initiating user interface actions, comprising using a computer for:determining a user's preferred hand and non-preferred hand from sensor inputs, wherein the user's preferred hand is determined by:
sensing sensor signals representing a bump in a motion of a touch-sensitive pen when a contact is made with a touch-sensitive computing device; and
correlating sensor signals representing the bump in the touch-sensitive pen's motion with signals representing a motion of the touch-sensitive computing device to determine the user's preferred hand; and
initiating a user interface action based on the determination of the user's preferred hand and non-preferred hand.

US Pat. No. 10,168,826

DEVICE, METHOD, AND GRAPHICAL USER INTERFACE FOR TRANSITIONING BETWEEN DISPLAY STATES IN RESPONSE TO A GESTURE

APPLE INC., Cupertino, C...

1. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions which, when executed by an electronic device with a display, a touch-sensitive surface and one or more sensors to detect intensities of contacts with the touch-sensitive surface, cause the electronic device to:display a user interface on the display, wherein the user interface is in a first display state;
detect a first portion of a gesture on the touch-sensitive surface, including detecting an increase in intensity of a respective contact on the touch-sensitive surface to a first intensity value;
in response to detecting the first portion of the gesture, display a plurality of intermediate display states between the first display state and a second display state, including displaying a first intermediate display state followed by a second intermediate display state;
after displaying the second intermediate display state and while continuing to detect the respective contact on the touch-sensitive surface, detect a second portion of the gesture that includes detecting a decrease in intensity of the respective contact below the first intensity value; and
while detecting the second portion of the gesture:
in accordance with a determination that the intensity of the respective contact reached a predefined intensity threshold that is higher than the first intensity value during the second portion of the gesture, display the second display state, and maintain display of the second display state as the intensity of the respective contact decreases during the second portion of the gesture; and
in accordance with a determination that the intensity of the respective contact did not reach the predefined intensity threshold that is higher than the first intensity value during the second portion of the gesture, replace display of the second intermediate display state with display of the first intermediate display state as the intensity of the respective contact decreases during the second portion of the gesture; and
in response to detecting liftoff of the contact:
in accordance with a determination that the intensity of the respective contact reached the predefined intensity threshold that is higher than the first intensity value during the second portion of the gesture, maintain display of the second display state; and
in accordance with a determination that the intensity of the respective contact did not reach the predefined intensity threshold that is higher than the first intensity value during the second portion of the gesture, redisplay the first display state.

US Pat. No. 10,168,825

CAPACITIVE TOUCH SYSTEMS AND METHODS USING DIFFERENTIAL SIGNAL TECHNIQUES

3M Innovative Properties ...

1. A method of determining touches on a touch panel, the touch panel comprising a plurality of electrodes arranged in an electrode matrix comprising a first set of electrodes capacitively coupled to a second set of electrodes at an array of nodes defining an active touch-sensitive area of the touch panel, the method comprising:receiving information indicative of which of the electrodes in the first set of electrodes are not experiencing, or are unlikely to experience, a touch;
selecting, based on the received information, at least one electrode from the first set of electrodes that are not experiencing, or are unlikely to experience, a touch to function as a first reference electrode, remaining ones of the first set of electrodes referred to as first remaining electrodes; and
measuring touch signals for at least some of the nodes using a differential technique, the differential technique for each such node utilizing the first reference electrode in combination with at least one of the first remaining electrodes and with at least one of the electrodes from the second set of electrodes.

US Pat. No. 10,168,823

DATA DRIVER CIRCUIT AND DISPLAY DEVICE USING THE SAME

Samsung Display Co., Ltd....

1. A data driving circuit, comprising:a controller configured to generate a storing control signal which controls a memory storing direction and a read control signal which controls a memory reading direction, the memory storing direction and the memory reading direction determined according to a rotation signal which includes rotation information of the display device;
a memory in which a sensing signal corresponding to a touch state of one or more touch sensors is configured to be stored in accordance with the storing control signal; and
an image renderer to read the sensing signal according to the memory reading direction of the read control signal and to combine a first image data signal with the sensing signal so as to generate a second image data signal,
wherein:
the storing control signal includes first through fourth storing control signals,
the read control signal includes a first read control signal,
the controller is further configured to direct storage of the sensing signal in the memory in accordance with the first through fourth storing control signals, and
the image renderer is further programmed to read the sensing signal in accordance with the first read control signal.

US Pat. No. 10,168,822

DISPLAY CONTROL APPARATUS, DISPLAY CONTROL METHOD AND DISPLAY CONTROL PROGRAM

Sony Corporation, Tokyo ...

1. A display control apparatus, comprising:a display control unit for controlling a display unit for displaying images,
the display control unit being configured to
display a plurality of represented images in a first category for each of a plurality of image groups, the plurality of represented images being classified depending on related information of the images on the display unit in a first display mode, the image groups being displayed along a first direction, and
display a set of related images for one of the image groups in a second display mode depending on a first user input, the set of related images being positioned in alignment along the first direction and between other instances of the image groups displayed in the first display mode,
wherein the display control unit is configured to switch the display from the first category of the images to a second category of the images depending on a second user input that switches the display from the first category to the second category, the second user input being provided in a second direction transverse to the first direction.

US Pat. No. 10,168,821

MOBILE TERMINAL AND CONTROL METHOD THEREOF

LG ELECTRONICS INC., Seo...

1. A mobile terminal comprising:a main body shaped to cover at least one area of a wrist;
a display disposed on a front surface of the main body;
a sensing unit configured to sense orientation of the display changeable according to movement of the wrist, the sensing unit comprising a flatness sensing sensor disposed on one surface of the display and configured to measure flatness of the wrist; and
a controller configured to:
cause the display to display a first execution screen of a first application on a first display area of the display;
cause the display to display a pop-up window, indicating an event related to a second application that is different from the first application, on the first display area when the event occurs while the first execution screen is displayed on the first display area;
select a second display area of the display based on flatness of the wrist measured by the flatness sensing sensor and a direction that the wrist faces when a first rotation of the wrist is sensed by the sensing unit, the first rotation corresponding to a rotation by a preset angle in a first direction;
cause the display to display a second execution screen of the second application that includes information related to the event on the second display area in response to the first rotation of the wrist while the first execution screen is continuously displayed on the first display area when the second execution screen is displayed on the second display area;
determine whether to display the second execution screen on the first display area screen or to stop the displaying of the second execution screen in response to a second rotation of the wrist, the second rotation corresponding to a rotation in a second direction that is opposite to the first direction;
cause the display to display the second execution screen, instead of the first execution screen, on the first display area in response to the second rotation when a preset touch input is sensed on the second display area prior to the second rotation;
cause the display to display the first execution screen on a third display area of the display when the second execution screen is displayed on the first display area in response to the preset touch input and the second rotation; and
cause the display to continue displaying the first execution screen on the first display area, terminating the displaying of the second execution screen on the second display area, in response to the second rotation when the preset touch input is not sensed on the second display area prior to the second rotation.

US Pat. No. 10,168,819

ELECTROSTATIC CAPACITANCE-TYPE SENSOR-EQUIPPED DISPLAY DEVICE AND METHOD OF DRIVING THE SAME

Japan Display Inc., Toky...

1. An electrostatic capacitance-type sensor-equipped display device comprising:a display panel with a display surface which displays an image; and
an electrostatic capacitance-type sensor provided on the display panel,
the electrostatic capacitance-type sensor including:
a plurality of detection electrodes disposed in a matrix that includes M rows and N columns, where M is greater than 1 and N is greater than 1,
each of the detection electrodes being arranged so as to not be in physical contact with each other, being mutually electrically independently provided from each other above the display surface and being configured to detect a variation in electrostatic capacitance; and
a plurality of lead lines provided above the display surface, the lead lines being M×N in number, the lead lines being respectively connected to the detection electrodes in a one-to-one correspondence, and formed of a metal,
wherein
each of the detection electrodes is formed of an aggregate of a transparent electrode which is formed of a transparent, electrically conductive material, and a plurality of branch lines which are branched from each of the lead lines,
the branch lines are located immediately below the transparent electrode, and
each of the branch lines is in contact with the transparent electrode.

US Pat. No. 10,168,818

SENSING DEVICES

INNOLUX CORPORATION, Mia...

1. A sensing device comprising:a first receiving electrode extending in a first direction and coupled to a receiver;
a plurality of first electrodes connected electrically by a first signal line, wherein at least one of the first electrodes is coupled to and controlled by a transmitter, a width of each first electrode is larger than a width of the first signal line, the first signal line passes through the first electrodes and overlaps the first electrodes, and the transmitter provides a first voltage level to the first electrode; and
a second electrode electrically controlled by the transmitter wherein the transmitter provides a second voltage level to the second electrode, and the first voltage level is different from the second voltage level;
wherein the first electrodes and the second electrode are disposed on a same row which extends in a second direction intersecting the first direction, and
wherein the first signal line crosses the first receiving electrode and the second electrode.

US Pat. No. 10,168,817

IMAGE DISPLAY APPARATUS, IMAGE DISPLAYING METHOD AND PROGRAM

MORPHO, INC., Tokyo (JP)...

1. An image display apparatus, comprising:a touch screen; and
a display control section to display a plurality of display items on the touch screen, and to perform a selection display process on a target display item belonging to a designated area among the plurality of display items,
wherein the designated area is determined based on coordinates of two points designated by a pinch in-out gesture on the touch screen,
the selection display process is to display the target display item in a predetermined selected style,
wherein in response to a change of the coordinates of the pinch in-out gesture after the selection display process has been performed, the display control section performs the selection display process again on the target display items belonging to the designated area that is determined based on the changed coordinates, wherein the target display items included in both of the previous coordinates and the changed coordinates remain to be displayed in the predetermined selected style,
wherein when another coordinate other than the two points is tapped while the selection display process has been performed and the two points designated by the pinch in-out gesture remain on the touch screen, the pinch in-out gesture is transited from a gesture that performs the selection display process to a gesture that performs a non-selection display process which causes the display control section to perform the non-selection display process as to display in a predetermined unselected style all of the target display items belonging to the designated area.

US Pat. No. 10,168,816

ARRAY SUBSTRATE, DISPLAY PANEL AND DISPLAY DEVICE

SHANGHAI TIANMA MICRO-ELE...

1. An array substrate, comprising a display area and a non-display area surrounding the display area, whereina first power signal line, a ground potential line and a pressure sensor are disposed in the non-display area;
the pressure sensor comprises a first power signal input terminal and a second power signal input terminal, the first power signal input terminal is electrically connected to the first power signal line, and the second power signal input terminal is electrically connected to the ground potential line; and
at least one of the first power signal input terminal or the second power signal input terminal is electrically connected to an electro-static discharge unit.

US Pat. No. 10,168,815

EVALUATION OF DIGITAL CONTENT USING INTENTIONAL USER FEEDBACK OBTAINED THROUGH HAPTIC INTERFACE

International Business Ma...

1. A computing device, comprising: a non-transitory memory configured to store program instructions; and a processor device configured to execute the program instructions stored in the memory to implement a process comprising: accessing, by the computing device, digital content from a content generation system, the digital, content comprising a plurality of content components and a plurality of haptic feedback markers, wherein the haptic feedback markers comprise interaction components to implement a haptic interface that allows a user to provide feedback as to the user's satisfaction or dissatisfaction of the content components of the digital, content, and wherein the content components of the digital content are automatically generated by the content generation system at least in part using content composition rules; displaying on a display of the computer device, the plurality of content components of the digital content together with the haptic feedback markers to implement the a corresponding haptic user interface which enables the user to interact with one or more of the displayed haptic feedback markers associated with the displayed content components of the digital content;collecting, by the computing device, intentional user feedback data that is generated as a result of the user interacting with the one or more displayed haptic feedback markers, wherein the intentional user feedback data provides an indication as to the user's satisfaction or dissatisfaction of one or more of the content components the digital content displayed on the display of the computing device;
sending, by the computing device, the collected intentional user feedback data to a data processing system that is configured to evaluate a quality of the digital content based on the intentional user feedback data and modify one or more of the composition rules utilized by the content generation, system to generate the digital content; and accessing, by the computing device, a modified version of the digital content from die content generation system, the modified version of the digital content comprising modified versions of said one or more components of the digital content associated with the intentional user feedback data previously sent by the computing device to the data processing system.

US Pat. No. 10,168,814

FORCE SENSING BASED ON CAPACITANCE CHANGES

Apple Inc., Cupertino, C...

9. An electronic device, comprising:a user input surface;
a frame positioned below the user input surface;
capacitive sensing element at least partially supported by the frame;
a polarizer layer disposed below the capacitive sensing element;
a ground layer disposed below the polarizer layer and capacitively coupled to the capacitive sensing element and separated therefrom by the sensing gap;
a processing unit operatively coupled to the capacitive sensing element; wherein
the frame defines a sensing gap between the capacitive sensing element and the ground layer;
the polarizer layer is disposed within the sensing gap; and
the capacitive sensing element and the ground layer are disposed to provide a measure of capacitance based on a force applied to the user input surface and the processing unit is configured to correlate the measure of capacitance to a magnitude of the force applied.

US Pat. No. 10,168,813

FLEXIBLE TOUCH PANEL AND ORGANIC LIGHT EMITTING DISPLAY DEVICE USING THE SAME

LG DISPLAY CO., LTD., Se...

1. A flexible touch panel comprising:a flexible base substrate;
a first block array including a plurality of first blocks formed by a first intersection between a plurality of first wirings and a plurality second wirings on the flexible base substrate, each first block being spaced apart from one another in a first direction;
a second block array including a plurality of second blocks formed by a second intersection between a plurality of third wirings and a plurality fourth wirings on the flexible base substrate, each second block being disposed in a second direction;
bridge electrodes overlapping the plurality of first wirings and the plurality of second wirings at facing parts of adjacent first blocks of the first block array;
connection electrodes in the same layer as the plurality of third wirings and the plurality of fourth wirings, and connected integrally with the plurality of third wirings and the plurality of fourth wirings of adjacent second blocks; and
transparent capping electrodes including at least three intersection points between the plurality of first wirings and the plurality of second wirings in each of the adjacent first blocks of the first block array and overlapping the bridge electrodes.

US Pat. No. 10,168,812

REDUCING INADVERTENT ACTIONS ON A COMPUTING DEVICE

Amazon Technologies, Inc....

1. A computer-implemented method, comprising:under control of one or more computing systems configured with executable instructions,
receiving, from a user via a touchscreen, a first intentional input within at least a portion of a website;
defining an action region within the at least a portion of the website based at least in part on the first intentional input;
receiving, from the user via the touchscreen, a second intentional input within the action region;
determining a time duration value representing an amount of time that the second intentional input remains in the action region;
causing a display of, via the touchscreen, a graphical representation of the time duration value;
determining that the time duration value satisfies an action time; and
causing an order associated with the action region.

US Pat. No. 10,168,811

REFLECTIVE DISPLAY

Microsoft Technology Lice...

1. An electronic device comprising:a reflective multi-layer structure forming an external surface of the electronic device and including a light-emitting display with a polarizing layer, the light-emitting display being separated from the external surface by a dielectric polarizing film and a diffuser, the light-emitting display positioned to present information on the external surface by transmitting light sequentially through the dielectric polarizing film and the diffuser.

US Pat. No. 10,168,810

ORGANIC ELECTROLUMINESCENT MODULE, SMART DEVICE, AND ILLUMINATION APPARATUS

KONICA MINOLTA, INC., To...

1. An organic electroluminescent module comprising:an organic electroluminescent device having an organic luminescent functional layer provided between first and second electrodes, wherein the first electrode is a detection electrode;
a luminescent-device driving circuit unit connected to the first and second electrodes to control luminescence of the organic electroluminescent device; and
a touch-position detection circuit unit connected to both ends of the detection electrode in a touch-position detection direction,
wherein the touch-position detection circuit unit performs a detection of a touch-position by detecting electrical characteristics at the both ends of the detection electrode.