fertlabs.blogg.se

Table of contents lyx
Table of contents lyx











  1. TABLE OF CONTENTS LYX UPDATE
  2. TABLE OF CONTENTS LYX CODE
  3. TABLE OF CONTENTS LYX OFFLINE

When he came online, I explained the situation to him.

TABLE OF CONTENTS LYX OFFLINE

My mentors was travelling so he was offline during this time. But at the end there was always a new corner case that popped up.

TABLE OF CONTENTS LYX UPDATE

  • What to do if there are multiple remote bufferviews? Who will update remote bufferview 1’s version, if remote bufferview 2 made some changes.
  • The responsibility of updating remote bufferview’s version by local was unnecessary.
  • This had a very complicated implementation.
  • Next time local is sending a LFUN to remote, it will send target as this number.
  • current_version -> For Local to synchronise with remote.
  • target_version -> Latest Local version of local bufferview that remote Bufferview knows about.
  • Remote machine will send (LFUN, target_version, current_version).
  • Local Bufferview changes will adjust remote bufferview’s cursor, and enqueue a new Version.
  • Each Remote BufferView will have past versions of its cursor, numbered based on Local Bufferview’s version.
  • table of contents lyx

  • Multiple Remote BufferViews (as established before).
  • Working of VCS/ History Table is shown here.Īpproaches Approach 1: send(LFUN, target_version, current_version) User1’s cursor will still be in paragraph 4, which is incorrect. U2’s cursor will be in next paragraph, where as his remote BufferView’s cursor will stay in the previous paragraph.Īnother example, User1 is editing in paragraph 4, User2 deletes paragraph 2. Now U1 starts typing some characters and U2 moves it’s cursor ‘right’ before receiving those LFUNs. Following 2 simple examples (where VCS is missing) show why VCS is vital.Ī failure scenario can be say User 1 and User 2’s cursors are at the end of a para. It is important to clarify which revision of the document each LFUN applies to. When a LFUN is dispatched on a remote BufferView, it acts on a version of the document that might be slightly different, as modified by the local user concurrently.

    table of contents lyx

    This ideas are easy to port over chat based protocol like xmpp.When a new client connects to the cluster, gets an identifier and the document.Upon receiving, the client will dispatch it on remote bufferview for ID.Changes made by a client (LFUN) are forwarded to every other client through the server (ID, LFUN).Every client holds remote BufferView for every other client.Each client is identified by an numeric id: ID.We use this main principle to create Collaborative Editor. Any LFUNs that are dispatched onto this remote users local BufferView will be sent through TCP onto local users computer and dispatched on local user’s remote BufferView. We introduce another BufferView for the second/remote user called “Remote BufferView”. Each user will have local buffer and local BufferView, this is default behaviour. Default behaviour for second cursor is already handled.įor this project I had used simple TCP connection in order to connect two computers.Much Simpler, no need to change BufferView Code.Would have to handle the behaviour of all other LFUNs for the second cursor.Would mean changing a lot of stable BufferView code.Now if 2 users want to work on a document, how do we do that?.Indicates location where BufferView is being edited currently.Actual actions are taken care in “dispatcher”.Represented as a string such as LFUN_COLLABORATE_CONNECT.Provides functionality for editing such as cursor, selection etc.No functionality for editing (no cursor, no selection, no undo/redo) This image shows how Lyx architecture is.This way multiple users can work on the same document over the internet. LyX is an open source Latex editor, where users can construct beautiful documents with just the powerful GUI, without having to know the intricacies of Latex. Approach 2: send(LFUN, target_version, current_version, cursor).Approach 1: send(LFUN, target_version, current_version).This was one of the most significant turning points of my life, because I understood the true potential and scope of a career in Computer Science and how fun and interesting it can be. I finished this project successfully in the span of 4 months with the help of my extremely supportive mentor. Also, dedicated mentors are assigned to help students succeed. Briefly, GSoC is an initiative to encourage Open Source development in Students.

    TABLE OF CONTENTS LYX CODE

    This was my Google Summer of Code 2014 project.

    table of contents lyx

    but it does deal with consensus, and I didn’t even realise it at the time. It doesn’t have all the delicious flavours of redundancy, scheduling, scalability etc. This was my first project on Distributed Systems.













    Table of contents lyx