US Pat. No. 9,367,338

DYNAMICALLY BINDING DATA IN AN APPLICATION

Embarcadero Technologies,...

1. A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer
system to perform a method for dynamically binding data in an application, said method comprising:
creating an expression via a framework based on input from a developer;
receiving said expression at an expression engine wherein said expression describes a relation between a first property of
a first data of said application to a first property of a second data of said application, wherein a data type of said first
data and second data are unknown to said expression engine and wherein said expression engine queries said first data and
said second data to discover said data type;

creating a binding between said first data and said second data using said data type based on said relation via said expression
engine; and changing said first property of said second data based on a change to said first property of said first data wherein
said changing occurs because of said binding;

orchestrating said receiving said expression, said creating said binding, and said changing said first property via said framework
to manage when said expression is executed in said application;

wherein said first data is associated with a presentation layer of said application and wherein said second data is associated
with a database layer of said application; and moving said second data from said database layer of said application to said
presentation layer of said application based on said binding during an execution of said application.

US Pat. No. 9,218,166

DEVELOPMENT SYSTEM WITH IMPROVED METHODOLOGY FOR CREATION AND REUSE OF SOFTWARE ASSETS

Embarcadero Technologies,...

1. In a development system, a method for facilitating creation of a reusable application, the method comprising:
during development of the application, using an application factory in an integrated development environment to capture knowledge
and intent of the application's original developer alongside source code created for the application as tag-based metadata,
wherein the knowledge and intent comprise the original developer's reasons for implementation decisions with embedded suggestions
of how to modify the source code;

creating a recipe for the application factory for reuse of the application by a follow-on developer wherein the recipe comprises
a list of application resources, a script guiding subsequent developers in use and modification of the source code for the
application and a template to be filled in by the follow-on developer with input data wherein the template facilitates pattern-based
replacement of portions of the source code based on the input data;

producing an archival module as part of the application factory storing the source code for the application together with
the tag-based metadata and the recipe,

wherein the metadata further comprises a tag-based description that provide a navigational mechanism for the application;
and consuming the archival module by an integrated development of the follow-on developer, comprising allowing application-centric
navigation based on the tag-based metadata and facilitating filling in the input data into the template and executing the
script to create the reusable version of the application based on the recipe.

US Pat. No. 9,600,246

DEVELOPMENT SYSTEM WITH IMPROVED METHODOLOGY FOR CREATION AND REUSE OF SOFTWARE ASSETS

Embarcadero Technologies,...

1. In a development system, a method for facilitating creation of a reusable application, the method comprising:
during development of the application, using an application factory in an integrated development environment to capture knowledge
and intent of the application's original developer alongside source code created for the application as metadata;

creating a recipe for the application factory for reuse of the application by a follow-on developer wherein the recipe comprises
a list of application resources, a script guiding subsequent developers in use and modification of the source code for the
application;

producing an archival module as part of the application factory storing the source code for the application together with
the metadata and the recipe; and

consuming the archival module by an integrated development of the follow-on developer, comprising allowing application-centric
navigation based on the metadata and facilitating filling in the input data into the template and executing the script to
create the reusable version of the application based on the recipe.

US Pat. No. 9,703,533

APPLICATION PLATFORM FOR DESIGNING AND EXECUTING APPLICATIONS

Embarcadero Technologies,...

1. A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer
system to perform a method for using an application platform to design an application, said method comprising:
providing an interface on an operating system for developing an application at a computer system;
providing a plurality of components at said interface for use in visually designing said application;
receiving a selection of a component from said plurality of components at said interface;
receiving a placement of said component in said application within said interface;
partially compiling said application in said interface during design time with said component and said placement of said component
to generate a partially compiled application;

receiving a style selection for said component of said partially compiled application, wherein said style selection modifies
an appearance of said component;

executing said partially compiled application comprising said style selection with limited functionality within said interface
during said design time based on said partially compiling such that said component rendered according to said style selection
without requiring said partially compiled application to be re-partially compiled; and

compiling said application at said operating system automatically into a plurality of versions for a plurality of platforms
each to execute on different operating systems with said component and said placement of said component, without requiring
a developer to write code for said placement, such that said plurality of versions of said application execute natively on
each target graphics processing unit (GPU) for each version of said plurality of versions without requiring a virtual layer
of software at runtime, wherein said application is bound directly to a native graphics library associated with said target
GPU, and wherein each version of said application is compiled into one executable binary file.

US Pat. No. 9,619,253

DYNAMICALLY BINDING DATA IN AN APPLICATION

Embarcadero Technologies,...

1. A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer
system to perform a method for dynamically binding data in an application, said method comprising:
creating an expression via a framework based on input from a developer; receiving said expression at an expression engine
wherein said expression describes a relation between a first property of a first data of said application to a first property
of a second data of said application, wherein said first data is associated with a presentation layer of said application
and wherein said second data is associated with a database layer of said application;

creating a binding between said first data and said second data based on said relation via said expression engine;
changing said first property of said second data based on a change to said first property of said first data wherein said
changing occurs because of said binding; and
orchestrating said receiving said expression, said creating said binding, and said changing said first property via said framework
to manage when said expression is executed in said application; and
moving said second data from said database layer of said application to said presentation layer of said application based
on said binding during an execution of said application.

US Pat. No. 9,747,088

AUTOMATIC REFERENCE COUNTING

Embarcadero Technologies,...

1. A method for enabling automatic reference counting, said method comprising:
searching a source code for a particular pattern via a compiler associated with a computer system, wherein said source code
is written in an existing language and wherein said particular pattern is for a reference associating an object with a portion
of memory;

recognizing a location of said particular pattern in said source code at said computer system;
replacing said particular pattern with an automatic reference counting implementation by said compiler at said computer system
without requiring a developer to develop structures for said automatic reference counting specific to said existing language,
such that said source code executes an object destructor on demand irrespective of whether there are live references to said
object, wherein said object destructor marks said object as disposed without freeing said portion of memory associated with
said object and without impacting validity of said reference to said object; and

executing said source code with said automatic reference counting implementation, wherein said automatic reference counting
collects a reference and removes said reference from being a live reference, and wherein marking of said object as disposed
by said object destructor is executed on demand based on said source code irrespective of whether there are live references
to said object and without impacting validity of said reference to said object.

US Pat. No. 9,740,383

CREATING A THREE DIMENSIONAL USER INTERFACE

Embarcadero Technologies,...

1. An electronic device comprising:
a display;
a camera;
an accelerometer;
a processor; and
a memory having computer readable program code embedded therein for causing the processor to execute a three dimensional interface
at said display, the three dimensional interface comprising:

a virtual light source;
a virtual camera; and
a three dimensional user interface control set in a scene in said three dimensional interface, wherein said three dimensional
user interface control comprises three dimensional effects based on said virtual light source, said virtual camera, and based
on a virtual depth of said three dimensional control relative to said scene;

wherein said camera and said accelerometer are configured to detect a change in position of said electronic device relative
to said virtual light source and said virtual camera; and

wherein said processor is configured to render said three dimensional user interface control and said scene in a new perspective
with a change in said three dimensional effects based on said change in position of said electronic device relative to said
virtual light source and said virtual camera.

US Pat. No. 10,055,201

DEVELOPMENT OF MULTIPLE CLASSES OF USER INTERFACES FOR A SOFTWARE APPLICATION

Embarcadero Technologies,...

1. A method for developing multiple classes of user interfaces for a software application, sad method comprising:displaying a master view for developing a software application for different device platforms, at a computer system, for use in developing multiple classes of user interfaces for said software application, wherein each of said multiple classes pertain to different versions of said software application executing on said different device platforms having at least a same form factor or a same operating system, and wherein said master view visually displays every attribute of said software application available for inclusion in a subordinate view during development;
displaying subordinate views for developing said software application, at said computer system, wherein each of said subordinate views pertain to one of said multiple classes of user interfaces and comprise a plurality of groups of deltas that alter said master view, wherein each of said subordinate views is for executing said software application on a device pertaining to a class of said multiple classes defined by a corresponding subordinate view, such that a first subordinate view is displayed on devices of a first class based on said master view combined with a first group of said deltas for said first subordinate view;
propagating a change to said master view to each of said subordinate views, at said computer system;
receiving an indication to hide an attribute of said software application for said first subordinate view:
hiding said attribute within said first subordinate view;
storing a change to said first subordinate view, at said computer system, as a delta in said first group of said deltas, such that said attribute is hidden from display within said first subordinate view for said devices of said first class; and
creating said software application comprising said master view and a plurality of said groups of said deltas pertaining to said multiple classes, at said computer system, such that upon executing said software application at a first device, said software application will determine an appropriate user interface for said first device based on a form factor of said first device wherein said appropriate user interface is one of said multiple classes of user interfaces.

US Pat. No. 9,891,899

AUTOMATIC REFERENCE COUNTING

Embarcadero Technologies,...

1. A method for enabling automatic reference counting, said method comprising:
replacing a segment of source code having a particular pattern at a particular location with an automatic reference counting
implementation such that said source code executes an object destructor on demand irrespective of whether there are live references
to an object, wherein a reference associates said object with a portion of memory, and wherein said object destructor marks
said object as disposed without freeing said portion of memory associated with said object and without impacting validity
of said reference to said object; and

executing said source code with said automatic reference counting implementation, wherein said automatic reference counting
collects a reference and removes said reference from being a live reference, and wherein marking of said object as disposed
by said object destructor is executed on demand based on said source code irrespective of whether there are live references
to said object and without impacting validity of said reference to said object.

US Pat. No. 9,916,289

SYNDICATION OF ASSOCIATIONS RELATING DATA AND METADATA

Embarcadero Technologies,...

1. A method for passively relating data to metadata, said method comprising:
creating associations, at a first computer system, that relate data in a first database to metadata in a second database,
wherein an association links said data to said metadata, wherein said data is managed by a Structured Query Language (SQL)
tool, wherein said creating said associations occurs automatically without user interaction; and

syndicating said associations at said first computer system to said SQL tool associated with said data, said syndicating to
cause said SQL tool executing at a second computer system to:

display a visual clue to a user in a graphical interface of said SQL tool, wherein said visual corresponds to a visual representation
of said data, and wherein said visual clue is created based on said metadata and said associations; and

upon detecting a user interaction with said visual clue, cause said SQL tool to;
search for said metadata corresponding to said visual clue based on said associations of said visual clue;
display a first portion of said metadata in said graphical interface; and
display a link in said first portion of said metadata such that upon a selection of said link from said user, a second portion
of said metadata will be displayed.

US Pat. No. 10,257,320

UNIVERSAL FRAMEWORK FOR CONNECTIVITY OF DEVICES AND DEVELOPMENT TOOLS

Embarcadero Technologies,...

1. A method for connecting multiple platforms to a universal framework, said method comprising:detecting a network device at an engine;
receiving data from said network device at said engine via a first protocol wherein said data comprises metadata;
converting said metadata from said first protocol to a plurality of protocols at said engine;
providing a universal framework at said engine to make said metadata available via said plurality of protocols; and
sending said metadata from said universal framework to an external device via a specified protocol requested by said external device.

US Pat. No. 10,089,092

CREATING A SOFTWARE PRODUCT FROM A SOFTWARE APPLICATION

Embarcadero Technologies,...

1. A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer system to perform a method for creating a product, said method comprising:initiating installation operations for application software on a computer system;
recording said installation operations of said application software via a product browser, wherein said product browser is configured to create said product and execute said product;
creating said product based on said recording said installation operations wherein said product is a self-contained single file of said software application resolvable by a second instance of said product browser executing said software application at a second computer system such that said product is for execution via said second instance of said product browser, wherein said creating structures said product with critical dynamic-link library (dll) files that will be pre-fetched by said second instance of said product browser before other components of said product such that said product will be executed at said second instance of said product browser before rest of said product is downloaded, and wherein said product is structured with a virtualized private registry to be integrated with an operating system registry upon execution at said second instance of said product browser such that certain registry keys are virtualized in said virtualized private registry and other registry keys will be deferred to said operating system registry such that application binaries of said product execute natively on an operating system associated with said second computer system without virtualization where said virtual registry is employed only if a particular registry key is virtualized while other calls are passed through to said operating system; and
storing said product to a database accessible by said second instance of said product browser, such that said product is discoverable via a user input at a user interface of said second instance of said product browser.

US Pat. No. 10,365,813

DISPLAYING A THREE DIMENSIONAL USER INTERFACE

Embarcadero Technologies,...

1. A method for displaying a three dimensional interface on an electronic device, the method comprising:displaying a three dimensional user interface control with three dimensional effects on a display of the electronic device, the three dimensional effects based at least in part on a position of a user relative to the display and a virtual light source, wherein a position of the virtual light source relative the electronic device is static and the position of the virtual light source does not change responsive to the change in the position of the user relative to the display;
tracking the position of the user relative to the display; and
responsive to detecting a change in the position of the user relative to the display, dynamically changing the three dimensional effects of the three dimensional user interface control based at least in part on the change in the position of the user relative to the display and the position of the virtual light source.

US Pat. No. 10,430,403

TRACKING CHANGE DATA IN A DATABASE

Embarcadero Technologies,...

1. A method for tracking change data, said method comprising:accessing a database, stored at a computer system, with a plurality of data written to fields in said database, wherein each data in said fields comprises a record header, wherein said plurality of data is comprised within a base table of said database, said base table comprising an original state of said plurality of data;
changing data in at least one field of said plurality of data in said database via said computer system, wherein said changing said data changes said record header for said at least one field within a change data table of said database, wherein said change data table comprises changes made to said base table, wherein said record header is collocated within said base table and said change data table;
storing a transaction identification (ID) in said record header of said data for each change to said at least one field within said change data table;
creating a flag in said record header of said data signaling said change to said at least one field within said change data table; and
linking successive versions of said database together such that a subscriber accessing said database can automatically view a current version of said database with said change by accessing said record header of said data and identifying said flag within said record header of said data.

US Pat. No. 10,474,677

RUN-TIME PERFORMANCE OF A DATABASE

Embarcadero Technologies,...

1. A method for improving run-time performance of a database, said method comprising:accessing a non-production database, at a computer system, during a design phase of said non-production database, wherein said non-production database will be converted to a production database after said design phase, said non-production database comprising code;
testing said code of said non-production database against an existing production database, said testing said code comprising:
testing a query written for said non-production database against said production database, wherein said query is tested against performance metrics of said production database;
generating data statistics, at said computer system, based on said testing said code, said data statistics based on said performance metrics of how said non-production database would perform as said production database;
displaying said data statistics, at said computer system, to a developer of said non-production database during said design phase; and
offering at least one suggestion to said developer, at said computer system, to implement into a code of said non-production database to improve a performance of said non-production database.

US Pat. No. 10,558,439

AUTOMATIC REFERENCE COUNTING

Embarcadero Technologies,...

1. A method for automatic reference counting, said method comprising:executing source code with automatic reference counting, such that said source code executes an object destructor on demand irrespective of whether there are live references to an object, wherein said automatic reference counting marks said object as disposed without freeing a portion of memory associated with said object and without impacting validity of a reference to said object; and
executing said object destructor on demand during said executing said source code, wherein said object destructor is for use in an explicit disposal process of a reference associated with said source code, wherein said object destructor collects a reference, removes said reference from being a live reference, and marks said object as disposed of.

US Pat. No. 10,489,167

DYNAMICALLY BINDING DATA IN AN APPLICATION

Embarcadero Technologies,...

1. A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer system to perform a method for dynamically binding data in an application, the method comprising:receiving an expression describing a relation between a first property of a first data of the application to a first property of a second data of the application;
evaluating the first data and the second data at run time to discover the first property of the first data and the first property of the second data;
creating a binding between the first data and the second data based on the relation, the first property of the first data, and the first property of the second data;
propagating a change to the first property of the second data based on a change to the first property of the first data, the propagating comprising converting a data type of the second data to a different data type;
determining when to execute the expression in the application;
altering a property of the second data based on the binding; and
altering a property of a third data bound to the second data based on the altering the property of the second data.

US Pat. No. 10,768,909

DEVELOPMENT SYSTEM WITH IMPROVED METHODOLOGY FOR CREATION AND REUSE OF SOFTWARE ASSETS

Embarcadero Technologies,...

1. A computer-implemented method for facilitating creation of a reusable application, the method comprising:during development of the reusable application, receiving a plurality of artifacts associated with source code of the reusable application, wherein an artifact of the plurality of artifacts comprises developer gained knowledge for guiding development of the reusable application;
maintaining the plurality of artifacts as metadata for the source code of the reusable application, the metadata comprising at least one script guiding subsequent developers in use and modification of the source code for the reusable application and a template facilitating pattern-based replacement of portions of the source code based on input data;
creating a recipe for the reusable application, the recipe comprising a list of application resources and the template;
generating an application module comprising the source code of the reusable application, the metadata, and the recipe, wherein the application module is configured for use by a developer for facilitating creation of a new version of the reusable application based on the recipe, wherein the metadata is attached to the source code, and wherein the metadata is accessible by the developer during the creation of the new version of the reusable application for accessing the developer gained knowledge for guiding the development of the reusable application such that during the creation of the new version of the reusable application instructions that specify coding sequences that facilitate creation of the new version of the reusable application are executed based on the metadata, the application module comprising:
a first set of information comprising a preview portion of the reusable application for previewing items of the reusable application without reference to code of the reusable application;
a second set of information comprising an active portion mode of the reusable application; and
a third set of information comprising the metadata comprising the at least one script and the recipe.

US Pat. No. 10,754,531

DISPLAYING A THREE DIMENSIONAL USER INTERFACE

Embarcadero Technologies,...

1. An electronic device comprising:a display;
an accelerometer;
a processor; and
a memory having computer readable program code embedded therein for causing the processor to execute a three dimensional interface at the display, the three dimensional interface comprising:
a scene comprising a foreground, a background, and at least one sidewall;
a three dimensional user interface control set in the scene, wherein the three dimensional user interface control comprises three dimensional effects based on a virtual depth of the three dimensional user interface control relative to the scene; and
a shadow rendered on the background and the at least one sidewall, the shadow caused by the three dimensional user interface control, wherein the shadow presents a visual effect that simulates the shadow on the at least one sidewall as tapering away from the foreground of the scene to the background;
wherein the accelerometer is configured to detect a change in position of the electronic device; and
wherein the processor is configured to render the three dimensional user interface control and the shadow within the scene in a new perspective with a change in the three dimensional effects based on the change in position of the electronic device.

US Pat. No. 10,523,792

UNIVERSAL FRAMEWORK FOR CONNECTIVITY OF DEVICES AND DEVELOPMENT TOOLS

Embarcadero Technologies,...

1. A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer system to perform a method for developing an object for connecting multiple platforms to a universal framework, said method comprising:providing an interface for developing an object at a computer system;
providing a plurality of developer tools for a universal framework at said interface for use in designing said object, wherein said tools automatically make use of data by said object, and wherein said data is generated by a plurality of devices using a plurality of different protocols;
receiving a selection of a developer tool from said plurality of developer tools at said interface; and
compiling said object with said developer tool such that said object will execute at a target device and make use of said data from said plurality of devices using said plurality of different protocols in said universal framework.