Storing logical units of program code generated using a dynamic programming notebook user interface
First Claim
1. A computer-implemented method comprising:
- under control of a hardware computing device configured with specific computer executable instructions;
receiving, on behalf of a user interacting with a programming notebook user interface in a programming session, a request to execute a unit of program code associated with a program cell in the programming notebook user interface, wherein the unit of program code comprises one or more units of program code;
executing, on behalf of the user, the unit of program code to obtain an output result associated with execution of the unit of program code;
automatically determining, based at least in part on an attribute of the output result, one or more data visualizations, wherein the one or more data visualizations provide various ways of visualizing data of the output result, and wherein the attribute includes at least a data type of the output result;
in response to determining that the data type is a date, determining a time series as at least one of the one or more data visualizations;
in response to determining that the data type is a geographic unit of measurement, determine a map as at least one of the one or more data visualizations;
transforming the output result into one or more formats to generate the one or more data visualization based on the output result;
generating, for each of the one or more data visualizations, respective interactive thumbnails of the one or more data visualizations;
providing the output result and the interactive thumbnails of the one or more data visualizations for display immediately below the program cell and side-by-side in the programming notebook user interface, wherein each of the interactive thumbnails is individually interactive and selectable to view respective larger versions of the respective data visualizations corresponding to the respective interactive thumbnails, and wherein the program cell and the interactive thumbnails of the one or more data visualizations are displayed simultaneously in the programming notebook user interface;
maintaining a session history of requests to execute units of program code received in association with a programming notebook user interface;
receiving a request to generate a program code card for the programming session;
providing a program code card editor user interface including at least an aggregate listing of the units of program code associated with the session history, wherein the aggregate listing includes, for each unit of program code, an indicator label of the associated program cell in the programming notebook user interface;
receiving, via the program code card editor user interface, user input comprising a selection of program code for the program code card; and
generating the program code card based at least in part on the user input.
8 Assignments
0 Petitions
Accused Products
Abstract
The programming notebook system, methods, and user interfaces described herein provide software developers with enhanced tools by which a programming notebook workflow and session history associated with code cells in a programming notebook may be tracked and maintained. As a developer progresses through a development workflow, the developer can select an option to save a program code card representing some or all of the program code cell inputs. A card editor user interface may present an aggregated listing of all program code the developer has provided across multiple code cells during the current session which the developer can edit, refine, and/or comment. The card editor may also allow the developer to add associated user interface code to display a UI component associated with the program code card, and allow the developer to add a description and tags for the card so that the card can be searched for and reused.
484 Citations
13 Claims
-
1. A computer-implemented method comprising:
under control of a hardware computing device configured with specific computer executable instructions; receiving, on behalf of a user interacting with a programming notebook user interface in a programming session, a request to execute a unit of program code associated with a program cell in the programming notebook user interface, wherein the unit of program code comprises one or more units of program code; executing, on behalf of the user, the unit of program code to obtain an output result associated with execution of the unit of program code; automatically determining, based at least in part on an attribute of the output result, one or more data visualizations, wherein the one or more data visualizations provide various ways of visualizing data of the output result, and wherein the attribute includes at least a data type of the output result; in response to determining that the data type is a date, determining a time series as at least one of the one or more data visualizations; in response to determining that the data type is a geographic unit of measurement, determine a map as at least one of the one or more data visualizations; transforming the output result into one or more formats to generate the one or more data visualization based on the output result; generating, for each of the one or more data visualizations, respective interactive thumbnails of the one or more data visualizations; providing the output result and the interactive thumbnails of the one or more data visualizations for display immediately below the program cell and side-by-side in the programming notebook user interface, wherein each of the interactive thumbnails is individually interactive and selectable to view respective larger versions of the respective data visualizations corresponding to the respective interactive thumbnails, and wherein the program cell and the interactive thumbnails of the one or more data visualizations are displayed simultaneously in the programming notebook user interface; maintaining a session history of requests to execute units of program code received in association with a programming notebook user interface; receiving a request to generate a program code card for the programming session; providing a program code card editor user interface including at least an aggregate listing of the units of program code associated with the session history, wherein the aggregate listing includes, for each unit of program code, an indicator label of the associated program cell in the programming notebook user interface; receiving, via the program code card editor user interface, user input comprising a selection of program code for the program code card; and generating the program code card based at least in part on the user input. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A computing system for providing a programming notebook, the computing system comprising:
-
a non-transitory storage medium storing software modules; and one or more hardware computer processors configured to execute software modules to cause the one or more hardware computer processors to; receive, on behalf of a user interacting with a programming notebook user interface in a programming session, a request to execute a unit of program code associated with a program cell in the programming notebook user interface, wherein the unit of program code comprises one or more lines of program code; execute, on behalf of the user, the unit of program code to obtain an output result associated with execution of the unit of program code; analyze the output result to determine the attributes or values of output data comprising the output result, wherein the attributes or values include at least a data type of the output result; automatically determine, based at least in part on the attributes or values of the output result, a plurality of data visualizations, wherein the plurality of data visualizations comprise a plurality of built in formats for displaying and visualizing the output data of the output result; in response to determining that the data type is a date, determine a time series as at least one of the plurality of data visualizations; in response to determining that the data type is a geographic unit of measurement, determine a map as at least one of the plurality of data visualizations; transform the output result using one or more of the formats to generate the plurality of data visualization based on the output result; generate, for each of the plurality of data visualizations, respective interactive thumbnails of the plurality of data visualizations; provide the output result and the interactive thumbnails of the plurality of data visualizations for display immediately below the program cell and side-by-side in the programming notebook user interface, wherein each of the interactive thumbnails is individually interactive and selectable to view respective larger versions of the respective data visualizations corresponding to the respective interactive thumbnails, and wherein the program cell and the interactive thumbnails of the plurality of data visualizations are displayed simultaneously in the programming notebook user interface; maintain a session history of a plurality of requests of previously executed units of program code and associated output results; receive a request to generate a program code card for the programming session; provide a program code card editor user interface including at least an aggregate listing of lines of program code associated with respective units of program code associated with requests of the session history; receive, via the program code card editor user interface, user input comprising a selection of program code for the program code card; generate the program code card based at least in part on the user input; and add the program code card to a selectable list of program code cards included in the programming notebook user interface. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
Specification