From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.tangents Subject: Re: crdt.el: proposal that server enforces the mode\ Date: Thu, 22 Oct 2020 03:12:03 +0300 Message-ID: References: <20201018092201.GG9782@protected.rcdrun.com> <2F36D10F-A179-445D-9417-65194F1CF2F1@mit.edu> <241BE8A8-1CCE-403F-B9D8-41B01DD1967D@mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8552"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/+ (1036f0e) (2020-10-18) Cc: "emacs-tangents@gnu.org" To: Qiantan Hong Original-X-From: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Thu Oct 22 02:12:56 2020 Return-path: Envelope-to: get-emacs-tangents@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kVODw-00029Y-U1 for get-emacs-tangents@m.gmane-mx.org; Thu, 22 Oct 2020 02:12:56 +0200 Original-Received: from localhost ([::1]:38468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kVODv-0001hj-FW for get-emacs-tangents@m.gmane-mx.org; Wed, 21 Oct 2020 20:12:55 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51088) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kVODR-0001hX-NX for emacs-tangents@gnu.org; Wed, 21 Oct 2020 20:12:26 -0400 Original-Received: from static.rcdrun.com ([95.85.24.50]:39351) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kVODM-0004yf-PO for emacs-tangents@gnu.org; Wed, 21 Oct 2020 20:12:24 -0400 Original-Received: from localhost ([::ffff:41.202.241.51]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002A0B42.000000005F90CE61.00007906; Thu, 22 Oct 2020 00:12:17 +0000 Content-Disposition: inline In-Reply-To: <241BE8A8-1CCE-403F-B9D8-41B01DD1967D@mit.edu> Received-SPF: pass client-ip=95.85.24.50; envelope-from=bugs@gnu.support; helo=static.rcdrun.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/21 17:52:21 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-tangents@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-tangents" Xref: news.gmane.io gmane.emacs.tangents:418 Archived-At: * Qiantan Hong [2020-10-22 03:05]: > I thought about exactly this, and this come up when I was > discussing read-only mode with my friends. Currently it doesn’t > interact well with crdt.el > > Currently artist-mode works fine with crdt.el (and it’s fun!), but > if variables like tab-width have different value on different peers > it doesn’t behave well. You need to make set of variables that will be dictated by server and buffer local set on each of clients. This list may grow with the time. > See the crdt-org-sync-overlay-mode as a prototypical example. It's > powered by the synchronization of overlays (also based on CRDT). IMO > once the synchronization of buffer text, text-properties, overlays, > markers and buffer-local-variables (with annotation) is all > implemented, it could be much more powerful than any existing > collaborative environment. Exactly that is it. > I’m not sure about the idea of letting the server “dictate” > anything. Emotionally I don’t like it — I try to avoid power > hierarchy. And technically, I can synchronize Boolean variable also > using CRDT. dictate * Overview of verb dictate The verb dictate has 3 senses (first 2 from tagged texts) 1. (8) order, prescribe, dictate -- (issue commands or orders for) 2. (1) dictate -- (say out loud for the purpose of recording; "He dictated a report to his secretary") 3. dictate -- (rule as a dictator) My usage of dictate is in the sense of definition 1, not 3, so when you press a key in Emacs you already issue some commands, if you share a buffer, you dictate that it is shared, right? crdt.el shall be collaborative, with many factors in synchronization. My proposal is directed for those using ses mode, table modes, org mode, and maybe other dismal mode or other spreadsheet modes, as that is what people use on proprietary software, like Microsoft Excell. If that feature is implemented, then subset of those people could start using free software.