Patents by Inventor Joshua Ari Danziger

Joshua Ari Danziger has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11853692
    Abstract: A method for obtaining server-side and client-side calculations performed in a document includes presenting, on a client computer, the document stored on a server and receiving an input, where the input causes a calculation in the document. The client computer performs the calculation on the client computer and sends the input to the server to concurrently perform the calculation on the server. The client computer obtains a first result from the calculation performed on the client computer and a second result from the calculation performed on the server, selects the first result or the second result as a selected result based on which of the first result or the second result is obtained quicker from the calculation performed on the client computer and the calculation performed on the server, and presents, in the document, the selected result to the user.
    Type: Grant
    Filed: May 13, 2019
    Date of Patent: December 26, 2023
    Assignee: Google LLC
    Inventors: Daniel Gundrum, Zachary Erik Lloyd, Joshua Ari Danziger, Amod Karve
  • Publication number: 20220237371
    Abstract: A first request of the first user device to perform a copy-past change to copy content from a source range to a destination range of a local model of the collaborative spreadsheet stored at the first user device is received by a first user device. An indication of a second request of a second user device to perform an intersecting change to modify one or more cells is received by the first user device. Responsive to receiving the indication of the second request of the second user device, the local model of the collaborative spreadsheet is transformed by the first user device. The transforming includes determining, among a plurality of intersecting change types, that the intersecting change qualifies as a first intersecting change type, and performing one or more transformation operations corresponding to the first intersecting change type to transform the local model of the collaborative spreadsheet.
    Type: Application
    Filed: February 7, 2022
    Publication date: July 28, 2022
    Inventors: Benjamin Wolfe Simon, Amod Karve, Joshua Ari Danziger, Zachary Erik Lloyd
  • Patent number: 11244105
    Abstract: Systems and methods are disclosed herein for editing a collaborative spreadsheets hosted on a server. Multiple users may edit the spreadsheet, resulting in situations of intersecting or conflicting edits. A change provided by one user may intersect the cells affected by a change provided by another user. In these cases, one user's change is transformed against the other user's change. In this manner, the conflict is resolved and both changes can be applied to the spreadsheet. Each user device may perform these transforms, and the server may also perform these transforms. This can result in transmission of a reduced volume of data over a network between the devices and the server, in comparison with other methods.
    Type: Grant
    Filed: December 4, 2014
    Date of Patent: February 8, 2022
    Assignee: Google LLC
    Inventors: Benjamin Wolfe Simon, Amod Karve, Joshua Ari Danziger, Zachary Erik Lloyd
  • Patent number: 10956667
    Abstract: Systems and methods are disclosed herein for an operational transformation proxy for a thin client. The systems and methods may be used for collaboratively editing an electronic object such as an electronic document from a thin client. A first request is received at an OT proxy from the thin client to make a first change to a first version of the electronic object. A first mutation, including the first change to the first version of the electronic document, is created. A second mutation is received at the OT proxy from the server. At the OT proxy, the second mutation of the electronic object is converted into a third mutation of the electronic object based on the first mutation.
    Type: Grant
    Filed: January 7, 2013
    Date of Patent: March 23, 2021
    Assignee: GOOGLE LLC
    Inventors: Joshua Ari Danziger, Amod Karve, Zachary Erik Lloyd, Yossi Kahlon
  • Patent number: 10289673
    Abstract: A method for obtaining server-side and client-side calculations performed in a document includes presenting, on a client computer, the document stored on a server and receiving an input, where the input causes a calculation in the document. The client computer performs the calculation on the client computer and sends the input to the server to concurrently perform the calculation on the server. The client computer obtains a first result from the calculation performed on the client computer and a second result from the calculation performed on the server, selects the first result or the second result as a selected result based on which of the first result or the second result is obtained quicker from the calculation performed on the client computer and the calculation performed on the server, and presents, in the document, the selected result to the user.
    Type: Grant
    Filed: December 13, 2017
    Date of Patent: May 14, 2019
    Assignee: GOOGLE LLC
    Inventors: Daniel Gundrum, Zachary Erik Lloyd, Joshua Ari Danziger, Amod Karve
  • Patent number: 9875226
    Abstract: A method for obtaining server-side and client-side calculations performed on a spreadsheet includes loading, on a client computer, a spreadsheet stored on a server and receiving an input from a user on the client computer, where the input causes a calculation of one or more cell values in the spreadsheet. The client computer performs the calculation of the one or more cell values on the client computer and sends the input to the server to perform the calculation of the one or more cell values on the server. The client computer then displays in the spreadsheet a result of the calculation of the one or more cell values to the user, where the result of the calculation is taken from the quicker of the calculation performed on the client computer or the calculation performed on the server.
    Type: Grant
    Filed: December 20, 2013
    Date of Patent: January 23, 2018
    Assignee: GOOGLE LLC
    Inventors: Daniel Gundrum, Zachary Erik Lloyd, Joshua Ari Danziger, Amod Karve
  • Patent number: 9720897
    Abstract: Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
    Type: Grant
    Filed: June 11, 2013
    Date of Patent: August 1, 2017
    Assignee: GOOGLE INC.
    Inventors: Joshua Ari Danziger, Amod Karve, Zachary Erik Lloyd, Yossi Kahlon, Manuel Tragut, Benjamin Wolfe Simon
  • Patent number: 9635105
    Abstract: Systems and methods for viewing filters on a collaborative spreadsheet stored on a cloud computing service include accessing, from each of a plurality of client computers, a first sheet of a spreadsheet stored on a cloud computing service, where a plurality of filters is associated with the first sheet. A first client computer in the plurality of client computers receives a command by a first user to apply a first filter in the plurality of filters to the first sheet, and applies the first filter to the first sheet on the first client computer. The filtered first sheet is displayed to the first user, and a second client computer in the plurality of client computers concurrently displays an unfiltered first sheet.
    Type: Grant
    Filed: May 31, 2016
    Date of Patent: April 25, 2017
    Assignee: Google Inc.
    Inventors: Benjamin Wolfe Simon, Manual Tragut, Zachary Erik Lloyd, Joshua Ari Danziger, Daniel Gundrum
  • Patent number: 9489367
    Abstract: Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
    Type: Grant
    Filed: June 4, 2013
    Date of Patent: November 8, 2016
    Assignee: Google Inc.
    Inventors: Joshua Ari Danziger, Amod Karve, Yossi Kahlon, Benjamin Wolfe Simon, Zachary Erik Lloyd
  • Patent number: 9460073
    Abstract: Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
    Type: Grant
    Filed: February 27, 2013
    Date of Patent: October 4, 2016
    Assignee: Google Inc.
    Inventors: Joshua Ari Danziger, Niklaus Haldimann, Amod Karve, Zachary Erik Lloyd, Asim Fazal
  • Patent number: 9462037
    Abstract: A method for managing a dynamically-sized chunked spreadsheet model on a server includes creating, on the server, a plurality of chunks representing a spreadsheet, where a first chunk in the plurality of chunks includes a first range of cells in the spreadsheet. The method further includes storing on the server a mutation log for the spreadsheet, and receiving a first plurality of mutations from a plurality of client computers, where the first plurality of mutations are stored in the mutation log. The method further includes applying the first plurality of mutations to the first chunk in response to a first client computer in the plurality of client computers requesting the first range of cells, and sending the first chunk to the first client computer.
    Type: Grant
    Filed: January 7, 2013
    Date of Patent: October 4, 2016
    Assignee: Google Inc.
    Inventors: Joshua Ari Danziger, Amod Karve, Zachary Erik Lloyd, Yossi Kahlon, Micah Lemonik
  • Publication number: 20160277487
    Abstract: Systems and methods for viewing filters on a collaborative spreadsheet stored on a cloud computing service include accessing, from each of a plurality of client computers, a first sheet of a spreadsheet stored on a cloud computing service, where a plurality of filters is associated with the first sheet. A first client computer in the plurality of client computers receives a command by a first user to apply a first filter in the plurality of filters to the first sheet, and applies the first filter to the first sheet on the first client computer. The filtered first sheet is displayed to the first user, and a second client computer in the plurality of client computers concurrently displays an unfiltered first sheet.
    Type: Application
    Filed: May 31, 2016
    Publication date: September 22, 2016
    Inventors: Benjamin Wolfe Simon, Manual Tragut, Zachary Erik Lloyd, Joshua Ari Danziger, Daniel Gundrum
  • Publication number: 20160162461
    Abstract: Systems and methods are disclosed herein for editing a collaborative spreadsheets hosted on a server. Multiple users may edit the spreadsheet, resulting in situations of intersecting or conflicting edits. A change provided by one user may intersect the cells affected by a change provided by another user. In these cases, one user's change is transformed against the other user's change. In this manner, the conflict is resolved and both changes can be applied to the spreadsheet. Each user device may perform these transforms, and the server may also perform these transforms. This can result in transmission of a reduced volume of data over a network between the devices and the server, in comparison with other methods.
    Type: Application
    Filed: December 4, 2014
    Publication date: June 9, 2016
    Inventors: Benjamin Wolfe Simon, Amod Karve, Joshua Ari Danziger, Zachary Erik Lloyd
  • Patent number: 9361287
    Abstract: Systems and methods for viewing filters on a collaborative spreadsheet stored on a cloud computing service include accessing, from each of a plurality of client computers, a first sheet of a spreadsheet stored on a cloud computing service, where a plurality of filters is associated with the first sheet. A first client computer in the plurality of client computers receives a command by a first user to apply a first filter in the plurality of filters to the first sheet, and applies the first filter to the first sheet on the first client computer. The filtered first sheet is displayed to the first user, and a second client computer in the plurality of client computers concurrently displays an unfiltered first sheet.
    Type: Grant
    Filed: May 22, 2013
    Date of Patent: June 7, 2016
    Assignee: Google Inc.
    Inventors: Benjamin Wolfe Simon, Manuel Tragut, Zachary Erik Lloyd, Joshua Ari Danziger, Daniel Gundrum
  • Patent number: 9298688
    Abstract: Systems and methods for processing user actions on a collaborative spreadsheet include accessing an unfiltered sheet of a spreadsheet stored on a server to display on a client computer, where a plurality of filters is associated with the unfiltered sheet, and receiving a selection by a user of a first filter in the plurality of filters to be applied to the unfiltered sheet. A filtered sheet is displayed to the user, where the filtered sheet is obtained by applying the first filter to the unfiltered sheet. User actions inputted by a user on the client computer are received that reference cells of the unfiltered sheet. User actions are sent to the server and transformed against the first filter. The display of the filtered sheet is updated based on the transformed user action.
    Type: Grant
    Filed: May 22, 2013
    Date of Patent: March 29, 2016
    Assignee: GOOGLE INC.
    Inventors: Benjamin Wolfe Simon, Manuel Tragut, Zachary Erik Lloyd, Joshua Ari Danziger, Daniel Gundrum
  • Publication number: 20150199327
    Abstract: Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
    Type: Application
    Filed: June 4, 2013
    Publication date: July 16, 2015
    Inventors: Joshua Ari Danziger, Amod Karve, Yossi Kahlon, Benjamin Wolfe Simon, Zachary Erik Lloyd
  • Publication number: 20150199328
    Abstract: Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
    Type: Application
    Filed: June 11, 2013
    Publication date: July 16, 2015
    Inventors: Joshua Ari Danziger, Amod Karve, Zachary Erik Lloyd, Yossi Kahlon, Manuel Tragut, Benjamin Wolfe Simon
  • Patent number: 8943142
    Abstract: Systems and methods for providing filters for collaborative spreadsheets include storing a spreadsheet on a server, where the spreadsheet comprises a plurality of sheets, granting a plurality of client computers concurrent access to the spreadsheet, and receiving from the plurality of client computers a plurality of filters to be applied to a first sheet in the plurality of sheets. The plurality of filters are stored on the server, and the plurality of filters is associated with the first sheet. The plurality of filters are provided to each client computer. When a user on a first client computer in the plurality of client computers applies a first filter in the plurality of filters to the first sheet, the display of the first sheet on a second client computer in the plurality of client computers is independent of the filter application on the first client computer.
    Type: Grant
    Filed: May 22, 2013
    Date of Patent: January 27, 2015
    Assignee: Google Inc.
    Inventors: Benjamin Wolfe Simon, Manuel Tragut, Zachary Erik Lloyd, Joshua Ari Danziger, Daniel Gundrum