
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


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.

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.
