Prosecution Insights
Last updated: April 18, 2026
Application No. 18/482,567

HYBRID SPREADSHEET AND CODING ENVIRONMENT

Non-Final OA §103
Filed
Oct 06, 2023
Examiner
JEON, JAE UK
Art Unit
2193
Tech Center
2100 — Computer Architecture & Software
Assignee
Row Zero Inc.
OA Round
3 (Non-Final)
75%
Grant Probability
Favorable
3-4
OA Rounds
2y 8m
To Grant
99%
With Interview

Examiner Intelligence

Grants 75% — above average
75%
Career Allow Rate
296 granted / 395 resolved
+19.9% vs TC avg
Strong +47% interview lift
Without
With
+47.4%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
40 currently pending
Career history
435
Total Applications
across all art units

Statute-Specific Performance

§101
26.8%
-13.2% vs TC avg
§103
49.7%
+9.7% vs TC avg
§102
3.7%
-36.3% vs TC avg
§112
14.6%
-25.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 395 resolved cases

Office Action

§103
Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . DETAILED ACTION 1. This Office Action is in response to the amendment filed on 02/27/2026. Claims 1-22 are pending in this application. Claims 1, 18 and 20 are independent claims. Claims 21-22 are newly added. Claim Rejections - 35 USC § 103 2. In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 3. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. 4. Claims 1, 2, 5, 6 13, 16, 17, 18 and 20-22 are rejected under 35 U.S.C. 103 as being unpatentable over Stewart (US Patent 9582288), in view of Sagalovskiy (US PGPub 20200042588). As per Claim 1, Stewart teaches of a method of implementing a spreadsheet, the method comprising, by a processor: causing a display to display a user interface comprising: a first interface area for displaying one or more sheets of a spreadsheet containing multiple sheets, wherein: each of the sheets comprises a plurality of cells, and each of the cells is fillable with data, and (Fig. 4-5, Col 5, lines 38-42, The spreadsheet application 32 provides spreadsheets with cells 33 and one or more executable programs 35 that provide the spreadsheet application 32 with additional functionality or extends the capability of the same. Col 8, lines 5-10, In this manner, the build tool 28 when instructed to generate the executable program code 38 collects the meta data objects for all components currently loaded on the electronic device 12 as well as the mappings of inputs and outputs of cells in active worksheets and generates the Visual Basic code module. Col 12, lines 23-28, The third scrollable textbox 294 “Row Increment” and the fourth scrollable textbox 296 “Column Increment” allow the user to move, or increment rows and columns of cells up, down, left, and right in one or more worksheets of the spreadsheet application 32.) a second interface area comprising a coding window corresponding to one or more blocks of programming instructions, wherein the programming instructions, when executed, will cause a computing device to update one or more of the variables used in at least some of the cells; and (Col 7, lines 38-65, The build tool 28 based on input received from the user via the user interface 30 maps input and output arguments to selected ranges of cells 33 of the spreadsheet application 32 (Step 74). … At the user's option, the user can select a particular input variable of a function to react, watch or listen for change events that occur to that particular input. As such, when an input is mapped from a selected cell to the selected function in this manner, the method containing the variable is automatically re-executed each time the cell associated with that variable changes. It will be appreciated by those skilled in the art that the user is not limited to selecting a single cell for this feature and is able to define a range of cells so that if any cell in the range changes the method containing the variable automatically re-executes.); in response to receiving, via the user interface, a selected order of execution for each of the sheets and each of the blocks: executing the functions of the cells of each of the sheets and the programming instructions of the blocks in the selected order of execution to update values of the cells of each of the sheets, and (Col 2, lines 16-34, A portion of the information processing includes, mapping a first range of cells from the spreadsheet application environment to an input of the first component and mapping a second range of cells from the spreadsheet application environment to an output of the first component. The first range of cells having at least one cell and the second range of cells having at least one cell. The method is further capable of selecting a second component from the selected programming environment, ordering the first and second component in a desired order, the desired order defining an order of execution, and executing a function of the first and a function of second component in the desired order. Col 2, lines 48-58, the user interface allows a user of the electronic device to select one or more functions from the one or more selected components and sequence the selected functions in a desired order for execution by the electronic device from the second application program. Moreover, the user interface is capable of tracking the inputs of the user to determine a desired order of sequencing execution of one or more functions selected from the one or more components from the first application program and mapping one or more inputs and outputs of the selected functions to one or more locations in the second application.) updating a plurality of the cells displayed in the first interface area to include the updated values. (Col 7, lines 55-65, At the user's option, the user can select a particular input variable of a function to react, watch or listen for change events that occur to that particular input. As such, when an input is mapped from a selected cell to the selected function in this manner, the method containing the variable is automatically re-executed each time the cell associated with that variable changes. It will be appreciated by those skilled in the art that the user is not limited to selecting a single cell for this feature and is able to define a range of cells so that if any cell in the range changes the method containing the variable automatically re-executes. Col 10, lines 13-17, FIG. 7 illustrates the function properties window 170 with the second tab control element 190 selected. With the second tab control element 190 selected the user is able to edit the required arguments and the variable arguments of the outputs of the selected function.) Stewart does not specifically teaches, however Sagalovskiy teaches of wherein the first interface area and the second interface area are concurrently displayed; (Par 47-48 and Figs 7-8, An example of a directly user-alterable graphical element of the spreadsheet is shown as a presented visual construct 601, which may, in individual cases, be any graphical or other visual element that may be created and presented using a spreadsheet program. In the example provided in the figure, visual construct 601 includes a table 603, with one column 604 and two cells: heading cell 605 and empty data entry cell 607, directly beneath heading cell 605. As an example of a coding entry field, parallel coding window 609 is provided. Code entered by the user, or otherwise saved within the spreadsheet program (e.g., by entering it within coding window 609), and resulting in the presentation of table 603, appears within coding window 609. In some embodiments, such simplified code expressions are pre-populated in templates or other starting documents. In some such embodiments, such simplified code expressions are saved and managed by the control system implementing aspects of the present invention (e.g., according to instructions of a spreadsheet program implementing aspects of the present invention. Thus, for example, upon starting up the spreadsheet program implementing techniques of the invention, and selecting a “table” template, a user may be presented with visual construct 601 and parallel coding window 609, as shown in FIG. 6. In any event, in FIG. 7, the user has “clicked in” to parallel coding window 609, e.g., by hovering pointer 133 over it and clicking on it (e.g., using a mouse or other input device). At this point, a cursor 701 appears within parallel coding window 609, indicating that any typing by the user (e.g., using a data entry device, such as a keyboard) will result in coding, or coding attempts. Such coding attempts are parsed by validation steps of the present invention, in some embodiments. In such embodiments, as code is entered within parallel coding window 609, it is parsed and/or validated by a program implementing aspects of the present invention.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add wherein the first interface area and the second interface area are concurrently displayed, as conceptually seen from the teaching of Sagalovskiy, into that of Stewart because this modification can help facilitate the software development using coding window concurrently displaying along with the spreadsheet that shows the result. As per Claim 2, Stewart teaches of the method of claim 1, wherein receiving the selected order of execution comprises: displaying a list that includes each of the sheets and each of the blocks in a default order of execution; and. (Col 7, lines 2-18, When the user selects a desired component from the first application 34, the user interface 30 can display via the display device 20 the functions of the selected component and therefrom the user, in turn, selects desired functions of the selected component (Step 64). If the user so desires, the user via the user interface 30, sequences the selected functions in a desired order which represents an ordering sequence for execution of the functions by the electronic device 12 (Step 66). When the selected functions are in the desired order of execution, the build tool 28 integrates the selected functions into the spreadsheet application 32 as a COM compliant component (Step 68). Consequently, the spreadsheet application 32 is able to access functionality designed using the first application 34, for example, a MATLAB® application, without the need for the user to manually script or generate code to create the new component.) receiving, via the user interface, the selected order of execution as a modification to the default order of execution (Col 8, lines 52-67, The “Move Up” button 108 moves a selected function ahead in execution order when selected. The “Delete” button 110 deletes the selected function when selected. For example, in the main window 100 the function named “CHOLESKY” is the selected function and if the user selects the “Delete” button 110 the build tool 28 would delete the selected function from the list of currently loaded functions from the first application 34 accessible to the spreadsheet application 32. The “Rename” button 112 allows the user to rename a selected function when selected. The “Shift Cells” button 114 moves cells associated with the inputs and outputs of the selected function from a first location to a second location in a worksheet or in another worksheet of the spreadsheet application 32. The “Move Down” button 116 moves a selected function back in execution order when selected.) As per Claim 5. Stewart further teaches of the method of claim 1, wherein the coding window comprises: a code editor window that enables to enter and/or revise the one or more blocks of programming instructions; and (Col 7, line 65- Col 8, line 16, The build tool 28 is capable of generating an executable program code 38 at the request of the user (Step 78). The user is provided with a graphical object via the user interface 30 that allows the user to request the build tool 28 to generate a code module, such as a Visual Basic code module that reconstructs each method call as a visual basic subroutine. Col 9, lines 58-65, The first tab control element 176 includes a dialogue box 177 that displays selected function arguments for editing. The first tab control element 176 also includes a first push button element 178 for selecting required arguments and a second push button element 180 for selecting variable arguments of the function being edited, that is the selected function from the dialogue box 177.) an execution window comprising a plurality of execution bars, wherein the execution window enables a user to reorder the plurality of execution bars to define an order of execution of the code blocks. (Col 8, lines 52-67, The “Move Up” button 108 moves a selected function ahead in execution order when selected. The “Delete” button 110 deletes the selected function when selected. For example, in the main window 100 the function named “CHOLESKY” is the selected function and if the user selects the “Delete” button 110 the build tool 28 would delete the selected function from the list of currently loaded functions from the first application 34 accessible to the spreadsheet application 32. The “Rename” button 112 allows the user to rename a selected function when selected. The “Shift Cells” button 114 moves cells associated with the inputs and outputs of the selected function from a first location to a second location in a worksheet or in another worksheet of the spreadsheet application 32. The “Move Down” button 116 moves a selected function back in execution order when selected.) As per Claim 6. Stewart further teaches of the method of claim 5, wherein the execution window further comprises an additional plurality of execution bars and wherein the execution window enables the user to reorder the additional plurality of execution bars to define an order of execution of the multiple sheets of the spreadsheet. (Col 8, lines 52-60, The “Move Up” button 108 moves a selected function ahead in execution order when selected. The “Delete” button 110 deletes the selected function when selected. For example, in the main window 100 the function named “CHOLESKY” is the selected function and if the user selects the “Delete” button 110 the build tool 28 would delete the selected function from the list of currently loaded functions from the first application 34 accessible to the spreadsheet application 32.) As per Claim 13. Stewart further teaches of the method of claim 6, wherein receiving the selected order of execution comprises: displaying a list that includes each of the sheets and each of the blocks in a default order of execution; (Col 9, Lines 1-9, The “Execute” button 118 executes all active functions when selected. The functions are executed in the order they appear in the list of the display window 124 that is, from top to bottom although one skilled in the art will recognize that the build tool 28 can be programmed to execute all active functions in an order from bottom to top or in any other user defined order. The “Done” button 120 exits the user interface 30 and the “Help” button 122 invokes the help features of the build tool 28.) and receiving, via the user interface, the selected order of execution as a modification to the default order of execution. (Col 8, Lines 52-67, The “Move Up” button 108 moves a selected function ahead in execution order when selected. The “Delete” button 110 deletes the selected function when selected. For example, in the main window 100 the function named “CHOLESKY” is the selected function and if the user selects the “Delete” button 110 the build tool 28 would delete the selected function from the list of currently loaded functions from the first application 34 accessible to the spreadsheet application 32. The “Rename” button 112 allows the user to rename a selected function when selected. The “Shift Cells” button 114 moves cells associated with the inputs and outputs of the selected function from a first location to a second location in a worksheet or in another worksheet of the spreadsheet application 32. The “Move Down” button 116 moves a selected function back in execution order when selected.) As per Claim 16, Stewart further teaches of the method of claim 6, wherein the coding window comprises: a code editor window that enables a user to enter and/or revise the one or more blocks of programming instructions; and (Col 7, line 66-Col 8, line 16, The build tool 28 is capable of generating an executable program code 38 at the request of the user (Step 78). The user is provided with a graphical object via the user interface 30 that allows the user to request the build tool 28 to generate a code module, such as a Visual Basic code module that reconstructs each method call as a visual basic subroutine.) an execution window comprising a plurality of execution bars, wherein the execution window enables a user to reorder the plurality of execution bars to define an order of execution of the code blocks. (Col 8, Line 52- Col 9, line 9, The “Move Up” button 108 moves a selected function ahead in execution order when selected. The “Move Down” button 116 moves a selected function back in execution order when selected. The “Execute” button 118 executes all active functions when selected. The functions are executed in the order they appear in the list of the display window 124 that is, from top to bottom although one skilled in the art will recognize that the build tool 28 can be programmed to execute all active functions in an order from bottom to top or in any other user defined order. The “Done” button 120 exits the user interface 30 and the “Help” button 122 invokes the help features of the build tool 28.). As per Claim 17, Stewart further teaches of the method of claim 16, wherein the execution window further comprises an additional plurality of execution bars, and wherein the execution window enables the user to reorder the additional plurality of execution bars to define an order of execution of the multiple sheets of the spreadsheet. (Col 2, lines 48-58, The user interface allows a user of the electronic device to select one or more functions from the one or more selected components and sequence the selected functions in a desired order for execution by the electronic device from the second application program. Moreover, the user interface is capable of tracking the inputs of the user to determine a desired order of sequencing execution of one or more functions selected from the one or more components from the first application program and mapping one or more inputs and outputs of the selected functions to one or more locations in the second application. Col 5, lines 3-6, Moreover, the method and apparatus allow the user to define an execution sequence for the second programming environment to execute the selected portions of the components from the first programming environment. Also in Col 7, lines 6-13.) Re Claim 18, it is the product claim, having similar limitations of claim 1. Thus, claim 18 is also rejected under the similar rationale as cited in the rejection of claim 1. Re Claim 20, it is the product claim, having similar limitations of claim 1. Thus, claim 20 is also rejected under the similar rationale as cited in the rejection of claim 1. As per Claim 21, Stewart does not specifically teach, however Sagalovskiy teaches of the method of claim 1, wherein: the coding window of the second interface area displays the programming instructions of a selected block of programming instructions; (Par 48, In any event, in FIG. 7, the user has “clicked in” to parallel coding window 609, e.g., by hovering pointer 133 over it and clicking on it (e.g., using a mouse or other input device). At this point, a cursor 701 appears within parallel coding window 609, indicating that any typing by the user (e.g., using a data entry device, such as a keyboard) will result in coding, or coding attempts. Such coding attempts are parsed by validation steps of the present invention, in some embodiments. In such embodiments, as code is entered within parallel coding window 609, it is parsed and/or validated by a program implementing aspects of the present invention.) the second interface area further comprises a plurality of execution bars; (Par 3, Typically, these formulas allow users to apply arithmetic or other functions to the data. Generally, once a formula is entered within a cell, the result of the application of that formula (rather than the formula itself, or referenced source data processed by the formula) will then be presented in that cell. However, the formula itself, and the source data, may still be reviewed in various ways. For example, by viewing the “formula bar [execution bars],” near the top of the Excel GUI, and highlighting a cell, the underlying formula, if any, can be seen. Par 28, In some embodiments, the transformation facilitating tool 103 will so execute all of such a series of formulas upon the user activating a command-initiating control of the transformation facilitating tool 103.) each of the plurality of execution bars corresponds to one of the sheets or to one of the blocks of programming instructions; and each of the plurality of execution bars can be dragged and dropped to rearrange the order of execution for the plurality of execution bars. (Par 37, For example, in some embodiments, a user may alter the order by clicking on one formula with pointer 133, and dragging it to a new position, above or below another formula, resulting in it being re-ordered above or below that other formula. Par 38, Next, according to some embodiments, the user has placed pointer 133 over the transform button 217, and may actuate it (e.g., by clicking), commanding the control system to execute the formulae. Embodiments related to the results of such execution will be discussed further, below.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the coding window of the second interface area displays the programming instructions of a selected block of programming instructions; the second interface area further comprises a plurality of execution bars; each of the plurality of execution bars corresponds to one of the sheets or to one of the blocks of programming instructions; and each of the plurality of execution bars can be dragged and dropped to rearrange the order of execution for the plurality of execution bars, as conceptually seen from the teaching of Sagalovskiy, into that of Stewart because this modification can help facilitate the software development for the user coding using a coding window concurrently displaying along with the spreadsheet that shows the result of the coding. As per Claim 22, Stewart does not specifically teach, however Sagalovskiy teaches of the method of claim 21, wherein: the second interface area displays the plurality of execution bars in a default order of execution; and receiving the selected order of execution comprises receiving, via the user interface, the selected order of execution as a modification to the default order of execution. (Par 37, In some embodiments, a user may sort and alter the order (and order of execution) of the various formulae entered. For example, in some embodiments, a user may alter the order by clicking on one formula with pointer 133, and dragging it to a new position, above or below another formula, resulting in it being re-ordered above or below that other formula. Par 38, Next, according to some embodiments, the user has placed pointer 133 over the transform button 217, and may actuate it (e.g., by clicking), commanding the control system to execute the formulae. Embodiments related to the results of such execution will be discussed further, below.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the second interface area displays the plurality of execution bars in a default order of execution; and receiving the selected order of execution comprises receiving, via the user interface, the selected order of execution as a modification to the default order of execution, as conceptually seen from the teaching of Sagalovskiy, into that of Stewart because this modification can help facilitate the software development for the user coding using a coding window concurrently displaying along with the spreadsheet that shows the result of the coding. 5. Claims 3 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Stewart (US Patent 9582288), in view of Sagalovskiy (US PGPub 20200042588), and further in view of Miller (US PGPub 20190370322). As per Claim 3, neither Stewart nor Sagalovskiy specifically teaches, however Miller teaches of the method of claim 2, wherein: the default order of execution is saved to a memory as a directed acyclic graph; and the modification to the default order of execution comprises a modification to the directed acyclic graph. (Fig. 1-2 and Par 2, This is easily accomplished due to the fact that the contents of the spreadsheet can be represented as a directed acyclic graph (DAG) and the proper order of evaluation can be determined by performing a topological sort on the DAG. Par 27, A plurality of arrows or a plurality of edges between the nodes 202-212 represent the dependencies (for example, one or more arrows or one or more edges leading from one node to another node) defined by the node formulas. To determine the order of evaluation of the formula containing nodes, the spreadsheet software must compute a topological sort of the DAG 200. Par 65-66, To implement the spreadsheet recalculation algorithm 400, the method 1300 includes updating, with the electronic processor, one or more affected nodes of the plurality of nodes based on the change to the plurality of nodes, the one or more affected nodes being less than all of the plurality of nodes (at block 1306). In some examples, changing the plurality of nodes includes one of adding a node to the plurality of nodes or removing a node from the plurality of nodes. In other examples, changing the plurality of nodes includes changing a characteristic of a node of the plurality of nodes, the characteristic being one selected from a group consisting of an instruction, a source of one or more inputs, or a destination for an output.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the default order of execution is saved to a memory as a directed acyclic graph; and the modification to the default order of execution comprises a modification to the directed acyclic graph, as conceptually seen from the teaching of Miller, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions within a spreadsheet environment using directed acyclic graph (DAG) structure for their dependencies and relations. As per Claim 14, neither Stewart nor Sagalovskiy specifically teaches, however Miller teaches of the method of claim 13, wherein: the default order of execution is saved to a memory as a directed acyclic graph; and the modification to the default order of execution comprises a modification to the directed acyclic graph. (Fig. 1-2 and Par 2, This is easily accomplished due to the fact that the contents of the spreadsheet can be represented as a directed acyclic graph (DAG) and the proper order of evaluation can be determined by performing a topological sort on the DAG. Par 27, A plurality of arrows or a plurality of edges between the nodes 202-212 represent the dependencies (for example, one or more arrows or one or more edges leading from one node to another node) defined by the node formulas. To determine the order of evaluation of the formula containing nodes, the spreadsheet software must compute a topological sort of the DAG 200. Par 65-66, To implement the spreadsheet recalculation algorithm 400, the method 1300 includes updating, with the electronic processor, one or more affected nodes of the plurality of nodes based on the change to the plurality of nodes, the one or more affected nodes being less than all of the plurality of nodes (at block 1306). In some examples, changing the plurality of nodes includes one of adding a node to the plurality of nodes or removing a node from the plurality of nodes. In other examples, changing the plurality of nodes includes changing a characteristic of a node of the plurality of nodes, the characteristic being one selected from a group consisting of an instruction, a source of one or more inputs, or a destination for an output.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the default order of execution is saved to a memory as a directed acyclic graph; and the modification to the default order of execution comprises a modification to the directed acyclic graph, as conceptually seen from the teaching of Miller, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions within a spreadsheet environment using directed acyclic graph (DAG) structure for their dependencies and relations. 6. Claims 4, 10, 11 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Stewart (US Patent 9582288), in view of Sagalovskiy (US PGPub 20200042588), and further in view of Bahrami (US PGPub 20220035661). As per Claim 4, neither Stewart nor Sagalovskiy specifically teaches, however Bahrami teaches of the method of claim 1 further comprising: receiving, via the user interface, a selected programming language from a plurality of candidate programming languages, and wherein executing the functions of the cells and the programming instructions of the blocks comprises using functions in the spreadsheet formula language that reference functions or data in the selected programming language. (Par 105, At block 910, a target programming language may be selected. For example, an end-user (such as the end-user 130 of FIG. 1) may identify a particular programming language in which the API call is to be executed. As another example, an administrator (such as the administrator 120 of FIG. 1) may select a programming language when generating the task under which the task may be executed. In some embodiments, the programming language may be selected based on the capabilities of the endpoint to which the API call may be directed. Par 52, One example of such an integrated task includes an integrated task for creating a worksheet in a cloud-based spreadsheet program.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add receiving, via the user interface, a selected programming language from a plurality of candidate programming languages, and wherein executing the functions of the cells and the programming instructions of the blocks comprises using functions in the spreadsheet formula language that reference functions or data in the selected programming language, as conceptually seen from the teaching of Bahrami, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions using a spreadsheet environment to facilitate the software development. As per Claim 10, neither Stewart nor Sagalovskiy specifically teaches, however Bahrami teaches of the method of claim 6, wherein: one or more of the plurality of cells contains computer-readable code of a first programming language, which when read by the computing device can change the value or values displayed in one or more of the plurality of cells; and the first programming language is not installed on the processor of the computing device. (Par 99, When deploying the API call locally, the task system may generate the programming code as described above and execute the code locally. Par 42, In some embodiments, the end-user 130 may identify a particular cloud system 160 upon which the end-user 130 would like the task executed and/or in which the API call of the task is to be executed. For example, the end-user 130 may designate a task to be executed completely within a RUNMYPROCESS cloud system, an AMAZON WEB SERVICES (AWS) cloud system, a MICROSOFT cloud system, a GOOGLE cloud system, etc. In some embodiments, the entire task execution, including presenting of a user interface to obtain user input may be implemented via the cloud system 160. For example, the task system 110 may invoke an API of the cloud system 160a to cause the cloud system 160a to generate a user interface for presentation to the end-user 130 to obtain user input. Par 97, As another example, a given end point selected by the end-user (or by an administrator when generating the task) may utilize a particular programming language and the target programming language may correspond to the particular programming language.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add one or more of the plurality of cells contains computer-readable code of a first programming language, which when read by the computing device can change the value or values displayed in one or more of the plurality of cells; and the first programming language is not installed on the processor of the computing device, as conceptually seen from the teaching of Bahrami, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions using a spreadsheet environment to facilitate the software development. As per Claim 11, neither Stewart nor Sagalovskiy specifically teaches, however Bahrami teaches of the method of claim 6, further comprising: receiving, via the user interface, a selected programming language from a plurality of candidate programming languages; and wherein executing the functions of the cells comprises using functions in the spreadsheet formula language that reference functions or data in the selected programming language. (Par 105, At block 910, a target programming language may be selected. For example, an end-user (such as the end-user 130 of FIG. 1) may identify a particular programming language in which the API call is to be executed. As another example, an administrator (such as the administrator 120 of FIG. 1) may select a programming language when generating the task under which the task may be executed. In some embodiments, the programming language may be selected based on the capabilities of the endpoint to which the API call may be directed.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add receiving, via the user interface, a selected programming language from a plurality of candidate programming languages; and wherein executing the functions of the cells comprises using functions in the spreadsheet formula language that reference functions or data in the selected programming language, as conceptually seen from the teaching of Bahrami, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions using a spreadsheet environment to facilitate the software development. As per Claim 15, neither Stewart nor Sagalovskiy specifically teaches, however Bahrami teaches of the method of claim 6, further comprising: receiving, via the user interface, a selected programming language from a plurality of candidate programming languages, and wherein executing the functions of the cells and the programming instructions of the blocks comprises using functions in the spreadsheet formula language that reference functions or data in the selected programming language. (Par 97, At block 845, an API call to the API may be generated in a target programming language. For example, the end-user may identify a specific programming language in which they would like the API call to be implemented. As another example, a given end point selected by the end-user (or by an administrator when generating the task) may utilize a particular programming language and the target programming language may correspond to the particular programming language. Par 105, At block 910, a target programming language may be selected. For example, an end-user (such as the end-user 130 of FIG. 1) may identify a particular programming language in which the API call is to be executed. As another example, an administrator (such as the administrator 120 of FIG. 1) may select a programming language when generating the task under which the task may be executed. In some embodiments, the programming language may be selected based on the capabilities of the endpoint to which the API call may be directed.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add receiving, via the user interface, a selected programming language from a plurality of candidate programming languages, and wherein executing the functions of the cells and the programming instructions of the blocks comprises using functions in the spreadsheet formula language that reference functions or data in the selected programming language, as conceptually seen from the teaching of Bahrami, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions using a spreadsheet environment to facilitate the software development. 7. Claims 7 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Stewart (US Patent 9582288), in view of Sagalovskiy (US PGPub 20200042588) and further in view of McKenzie (US PGPub 20160055140). As per Claim 7, Stewart teaches of the method of claim 1, wherein executing the functions of the cells of each of the sheets and the programming instructions of the blocks comprises: identifying a remote server via which an active instance of the spreadsheet is available; transmitting the selected order of execution to the remote server; receiving, from the remote server, for each of the plurality of cells, a corresponding value to display in that cell, wherein the value resulted from executing the functions of the cells and the programming instructions of the blocks in the selected order of execution; (Col 5, lines 13-52, FIG. 1 illustrates an environment suitable for practicing an illustrative embodiment of the present invention. A computer system 10 includes an electronic device 12, a network 18, such as the Internet, an intranet, or other suitable network either wired, wireless or a hybrid of wired and wireless, and, optionally, a server 14 or other electronic device. The spreadsheet application 32 provides spreadsheets with cells 33 and one or more executable programs 35 that provide the spreadsheet application 32 with additional functionality or extends the capability of the same. The storage device 20, and hence the electronic device 12 further includes a user interface 30 and a build tool 28. The user interface 30 in conjunction with the build tool 28 provides a user of the system 10 with textual and graphical information that allow a user to browse and select software components developed with the first application 34 for integration into the spreadsheet applications 32. The user interface 30 and the build tool 28 are discussed below in more detail with reference to FIGS. 2-14. The server 14 coupled to the network 18 is adaptable to include the user interface 30 and the build tool 28.) and displaying, in each of the plurality of cells, the corresponding value (Col 4, lines 61-64, The method and apparatus of the present invention also allows the user to map via the graphical user interface inputs and outputs of selected portions of the selected components to locations in the second programming environment.) Neither Stewart nor Sagalovskiy specifically teaches, however McKenzie teaches of the corresponding value as received from the remote server without the computing device performing any function to calculate the corresponding value. (Par 89, The intermediary server may also host a webpage directly for the expert user. Such a webpage may be configured to provide all the same functionality as a spreadsheet plugin running from a client computer, without requiring a client to run a spreadsheet application or install a Data Inbox application.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the corresponding value as received from the remote server without the computing device performing any function to calculate the corresponding value, as conceptually seen from the teaching of McKenzie, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions using a spreadsheet environment to facilitate the software development. Re Claim 19, it is the product claim, having similar limitations of claim 7. Thus, claim 19 is also rejected under the similar rationale as cited in the rejection of claim 7. 8. Claims 8-9 are rejected under 35 U.S.C. 103 as being unpatentable over Stewart (US Patent 9582288), in view of Sagalovskiy (US PGPub 20200042588), in view of McKenzie (US PGPub 20160055140), and further in view of Parulkar (US Patent 10887276). As per Claim 8, none of Stewart, Sagalovskiy and McKenzie specifically teaches, however Parulkar teaches of the method of claim 7, wherein identifying the remote server comprises: identifying a plurality of data centers that each contain or provide a gateway to at least one active instance of the spreadsheet; sending messages to each of the data centers; receiving, from at least some of the data centers, responses to the messages; based on the responses, measuring message latency between the data centers from which responses were received and the computing device; and selecting the data center having a lowest message latency as the remote server. (Col 6, lines 36-45, The data plane 116A can also include one or more block store servers 108, which can include persistent storage for storing volumes of customer data as well as software for managing these volumes. These block store servers 108 can support a managed block storage service of the cloud provider network. The managed block storage service may be part of the control plane 114A, allowing customers to issue commands via the interface 104 (e.g., an API) to create and manage volumes for their applications running on compute instances. Col 23, lines 47-50, In some embodiments, in addition to selecting an application network address based on distance, the discovery coordinator service 506 can also utilize various health/status information to further fine-tune the selection process. Col 3, lines 16-25, By installing or deploying capacity within communications service provider networks, the cloud provider network operator can provide computing resources with dramatically lower access latency to end user devices—in some cases to single-digit millisecond latency. Such low latency access to compute resources is an important enabler to provide improved responsivity for existing cloud-based applications and to enable the next generation of applications for game streaming, virtual reality, real-time rendering, industrial automation, and autonomous vehicles. Col 19, lines 56-66, One benefit provided by the utilization of PSEs with backing cloud provider networks is that computing resources implemented within PSEs are “closer” to end users, and thus such architectures provide extremely low-latency interactions preferred by modern computing applications, such as in video gaming, communications, etc. Thus, systems employing PSEs should satisfy customer use cases requiring low client latency and should allow users a way to launch compute instances (and other computing resources) around geographic areas such that it guarantees reliable latencies for all clients in the coverage area.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add identifying a plurality of data centers that each contain or provide a gateway to at least one active instance of the spreadsheet; sending messages to each of the data centers; receiving, from at least some of the data centers, responses to the messages; based on the responses, measuring message latency between the data centers from which responses were received and the computing device; and selecting the data center having a lowest message latency as the remote server, as conceptually seen from the teaching of Parulkar, into that of Stewart, Sagalovskiy and McKenzie because this modification can help implement a sequence of functions using a spreadsheet environment on a remote server to facilitate the software development. As per Claim 9, none of Stewart, Sagalovskiy and McKenzie specifically teaches, however Parulkar teaches of the method of claim 7, wherein the remote server is an endpoint that provides a communication path to a workbook node from which the active instance of the spreadsheet is served. (Col 5, line 58-Col 6, line 3, The control plane components are typically implemented on a separate set of servers from the data plane servers, and control plane traffic and data plane traffic may be sent over separate/distinct networks. Col 11, lines 15-18, CP proxies provide a mechanism to expose remote servers on the cloud provider substrate while still protecting substrate security materials (e.g., encryption keys, security tokens) from leaving the cloud provider network 100. Col 34, line 55- Col 35, line 6, In some embodiments, block 1105 includes block 1110 and determining, for each of a plurality of compute instances associated with the plurality of endpoints, a number of active leases obtained for the compute instance, wherein the load value of each compute instance comprises the number of active leases or is based at least in part on the number of active leases (e.g., is an average or moving average over a recent period of time of the number of active leases). In some embodiments, block 1105 includes block 1115 and selecting one or more endpoints based at least in part the numbers of active leases associated with the endpoints, e.g., by selecting a top ‘n’ (e.g., 1, 3, 5) number of endpoints having the smallest number of active leases, smallest percentage of the maximum allowable leases being actively utilized, etc. In some embodiments, the selection is also based on determined estimated distances between the client device and the endpoints, e.g., based on determining a location of the client (via a network address and/or GPS coordinate)) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the remote server is an endpoint that provides a communication path to a workbook node from which the active instance of the spreadsheet is served, as conceptually seen from the teaching of Parulkar, into that of Stewart, Sagalovskiy and McKenzie because this modification can help implement a sequence of functions using a spreadsheet environment on a remote server to facilitate the software development. 9. Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Stewart (US Patent 9582288), in view of Sagalovskiy (US PGPub 20200042588) and further in view of Hutchison (US PGPub 20160291942). As per Claim 12, neither Stewart nor Sagalovskiy specifically teaches, however Hutchison teaches of the method of claim 6, wherein executing the functions in the selected programming language comprises: identifying, from a plurality of candidate formula evaluator modules, a formula evaluator module that is associated with the selected programming language; using the identified a formula evaluator module to process functions associated with the plurality of cells to generate, for at least a subset of the cells, a plurality of values; and (Par 158, FIG. 30 illustrates a lattice-based programming module. As shown, Function 30a=File(“x.csv”), function 30b=f(30a), function 30c=g(30a), function 30e=h(30b. 30c), function 30d=p(30a), and function 30f=q(30e, 30d). 30a. CSV is a file type (comma separated value) is a basic way of storing data in a text document readable by most spreadsheet interpreters (e.g. Excel). Thus function 30a is equal to whatever data is in X.csv. 30b. f(30a) means apply so random function fix) on the value of 30a. Thus this yields in this example f(“X.csv”) f(x) could be any function such as X-5 or it could be a series of complicated functions to transform the values in X.csv. 30c is very similar to 30b, except the function is g(x). f and g may be the same or different functions. Same applies for 30d, it's p(30a). 30e and 30f are compound functions. In simpler notation, 30e=h(x,y). After a compile 33 operation, elements 30a, 30b, 30c, 30d, 30e, and 30f are transformed into graph 37. Symbolically, elements 30a, 30b, 30c, 30d, 30e, and 30f may be written as a, b, c, d, e, and f respectively. In graph 37, process 31=f( ), process 32=g( ), process 33=q( ), process 34=h( ), and process 35=p( ). Processes 31 and 33 may be executed in parallel.) writing the plurality of values to a key-value store in association with keys that correspond to at least the subset of the cells. (Par 64, The Map stage can take a collection of key-value pairs or tuples (k.sub.1,v.sub.1) and applies a mapper function to each pair, producing zero or more tuples (k.sub.2,v.sub.2). The keys k.sub.2 can be hashed, and using the hash key, the pairs may then be redistributed by the Shuffle operation into shards for load leveling purposes. The GroupByKey operation may be used to find all (k.sub.2,v.sub.2) pairs that share a matching key, grouping the corresponding values for each unique key into a collection and producing a new collection of pairs (k.sub.2,{v.sub.2}) mapping the unique keys to the collection of corresponding values. The Reduce stage takes all the values (v.sub.2) corresponding to a specific given key k.sub.2 and applies a reduce or fold operation (a reducer function) to the collection to aggregate the set of values in some way, producing zero or more output values v, and outputting these values as key-value pairs (k.sub.3,v.sub.3).) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add identifying, from a plurality of candidate formula evaluator modules, a formula evaluator module that is associated with the selected programming language; using the identified a formula evaluator module to process functions associated with the plurality of cells to generate, for at least a subset of the cells, a plurality of values; and writing the plurality of values to a key-value store in association with keys that correspond to at least the subset of the cells, as conceptually seen from the teaching of Hutchison, into that of Stewart and Sagalovskiy because this modification can help implement a sequence of functions using a spreadsheet environment on a remote server to facilitate the software development. Response to Arguments 10. Applicant’s arguments with respect to claims 1, 18 and 20 and their dependent claims have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to JAE UK JEON whose telephone number is (571)270-3649. The examiner can normally be reached 9am-6pm. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Chat Do can be reached at 571-272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /JAE U JEON/Primary Examiner, Art Unit 2193
Read full office action

Prosecution Timeline

Oct 06, 2023
Application Filed
Jun 28, 2025
Non-Final Rejection — §103
Sep 29, 2025
Response Filed
Nov 26, 2025
Final Rejection — §103
Jan 15, 2026
Examiner Interview Summary
Feb 27, 2026
Request for Continued Examination
Mar 09, 2026
Response after Non-Final Action
Apr 04, 2026
Non-Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602216
SCHEMA REGISTRY FOR CLIENT-SERVER ENVIRONMENTS
2y 5m to grant Granted Apr 14, 2026
Patent 12596549
METHOD AND SYSTEM FOR ACCELERATION OF SLOWER DATA PROCESSING CODES IN MACHINE LEARNING PIPELINES
2y 5m to grant Granted Apr 07, 2026
Patent 12591433
COMPILER ALGORITHM FOR GPU PREFETCHING
2y 5m to grant Granted Mar 31, 2026
Patent 12586006
DEPLOYMENT OF SELF-CONTAINED DECISION LOGIC
2y 5m to grant Granted Mar 24, 2026
Patent 12579053
CONTEXTUAL TEST CODE GENERATION
2y 5m to grant Granted Mar 17, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
75%
Grant Probability
99%
With Interview (+47.4%)
2y 8m
Median Time to Grant
High
PTA Risk
Based on 395 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month