Storing logical units of program code generated using a dynamic programming notebook user interface

US9870205B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9870205-B1
Application numberUS-201514845001-A
CountryUS
Kind codeB1
Filing dateSep 3, 2015
Priority dateDec 29, 2014
Publication dateJan 16, 2018
Grant dateJan 16, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The computer-implemented method of claim 1 , further comprising: under control of the hardware computing device configured with specific computer executable instructions: receiving a request, by the programming notebook user interface, to import the program code card into a second programming session; and importing the program code card into the second programming session, such that an end user can execute, by providing user input to the programming notebook user interface, the unit of program code associated with the program code card. 3. The computer-implemented method of claim 1 , further comprising receiving a request, via the programming notebook user interface, user input comprising one or more input parameters and an instruction to execute the program code card according to the one or more input parameters. 4. The computer-implemented method of claim 1 , wherein the one or more data visualizations are interactive. 5. The computer-implemented method of claim 1 , further comprising: under control of the hardware computing device configured with specific computer executable instructions: in response to a second user input selecting a first interactive thumbnail of the interactive thumbnails of the one or more data visualizations, providing for display a larger version of the data visualization corresponding to the first interactive thumbnail within the programming notebook user interface and below the program cell, wherein the larger version of the data visualization corresponding to the first thumbnail is interactive for at least one of: zooming in and out, manipulating parameters, or selecting portions. 6. The computer-implemented method of claim 5 , further comprising: under control of the hardware computing device configured with specific computer executable instructions: in response to a third user input selecting a portion of the larger version of the data visualization corresponding to the first thumbnail, filtering the output result and automatically determining an updated one or more data visualizations based on the filtered output result. 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 i

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9870205B1 cover?
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 repr…
Who is the assignee on this patent?
Palantir Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/33. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 16 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).