From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/79313 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.gnus.general Subject: Re: gnus sync Date: Fri, 1 Jul 2011 07:58:35 -0500 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <871uyajgxw.fsf@lifelogs.com> References: <9uhb77o73s.fsf@news.eternal-september.org> <87wrg3v0yi.fsf@lifelogs.com> <87boxebh2q.fsf@dod.no> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1309525318 8610 80.91.229.12 (1 Jul 2011 13:01:58 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 1 Jul 2011 13:01:58 +0000 (UTC) Cc: To: Ding Mailing List Original-X-From: ding-owner+M27609@lists.math.uh.edu Fri Jul 01 15:01:52 2011 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from util0.math.uh.edu ([129.7.128.18]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QcdLz-00058H-QT for ding-account@gmane.org; Fri, 01 Jul 2011 15:01:52 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by util0.math.uh.edu with smtp (Exim 4.63) (envelope-from ) id 1QcdLB-0007Mi-6m; Fri, 01 Jul 2011 08:01:01 -0500 Original-Received: from mx1.math.uh.edu ([129.7.128.32]) by util0.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1QcdLA-0007Ma-0u for ding@lists.math.uh.edu; Fri, 01 Jul 2011 08:01:00 -0500 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx1.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1QcdL4-00063Q-HG for ding@lists.math.uh.edu; Fri, 01 Jul 2011 08:00:59 -0500 Original-Received: from chirelay1o.jumptrading.com ([38.98.147.153] helo=chirelay1.jumptrading.com) by quimby.gnus.org with esmtp (Exim 4.72) (envelope-from ) id 1QcdL2-0005m2-MF for ding@gnus.org; Fri, 01 Jul 2011 15:00:52 +0200 Original-Received: from chirelay1.jumptrading.com (unknown [127.0.0.1]) by chirelay1.jumptrading.com (Symantec Mail Security) with ESMTP id E28EF32000D for ; Fri, 1 Jul 2011 08:00:47 -0500 (CDT) X-AuditID: 26629395-993dfbb000003e72-3d-4e0dc4ffdc28 Original-Received: from chiexchange02.w2k.jumptrading.com (unknown [38.98.147.140]) by chirelay1.jumptrading.com (Symantec Mail Security) with ESMTP id BB87C2DC009 for ; Fri, 1 Jul 2011 08:00:47 -0500 (CDT) Original-Received: from internalsmtp.w2k.jumptrading.com (10.2.4.29) by chiexchange02.w2k.jumptrading.com (10.2.4.71) with Microsoft SMTP Server id 8.1.291.1; Fri, 1 Jul 2011 07:58:36 -0500 Original-Received: from tzlatanov-ubuntu-desktop.jumptrading.com ([10.2.14.81]) by internalsmtp.w2k.jumptrading.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 1 Jul 2011 07:58:36 -0500 X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6;d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never Gmane-Reply-To-List: yes In-Reply-To: <87boxebh2q.fsf@dod.no> (Steinar Bang's message of "Fri, 01 Jul 2011 09:22:53 +0200") User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.50 (gnu/linux) X-OriginalArrivalTime: 01 Jul 2011 12:58:36.0697 (UTC) FILETIME=[974BC090:01CC37EE] X-Brightmail-Tracker: AAAAAA== X-Spam-Score: -1.9 (-) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:79313 Archived-At: On Fri, 01 Jul 2011 09:22:53 +0200 Steinar Bang wrote: >>>>>> Ted Zlatanov : >> On Thu, 30 Jun 2011 14:07:35 +0200 Richard Riley wrote: RR> I'm looking for a working sync solution for gnus amongst multple RR> machiens : specifically with the local nnml7archive backend. The problem RR> might be be that .newsrc.eld controls everything pretty much and yet I RR> would like "local" stuff to remain local. Stuff like imap and nntp are RR> not an issue - the .newsrc.eld marks are valid across machiens which I RR> currently sync with rsync. Any comments or pointers appreciated. >> It's on my TODO list for this release of Gnus. SB> In the meanwhile your first cut kinda works for me, as long as I accept SB> its limitations (ie. only read the file on gnus startup, stop each gnus SB> session when finished with it, and always being online when reading mail SB> and news (agent doesn't work anymore, so...)). SB> I've reenabled it and been running with it for some months now. Yeah, same here. It's definitely useful to have the functionality. My plan is the same as before: server-centric, accepts a few formats, does merge/intersection/reset, and outputs into JSON and Lisp expressions. It will be simple enough that other MUAs will be able to use it, which is where the *real* fun will begin. For example, NewsTap (one of my favorite applications on the iPad) could synchronize with this sync server. It already lets you synchronize the newsrc file directly. I've cc-ed Alexander Clauss, the NewsTap author, to see if he's interested in developing a standard for synchronization between NewsTap and Gnus and other newsreaders. I think the Gnus mailing list is the right place to discuss this (and hope Alexander doesn't mind the intrusion), but if there's a better forum I'll go there. I'd also love to get other newsreader authors involved. Alexander, if you need some background on this thread, please let me know and I'll fill you in. I'd love to make NewsTap work with Gnus to synchronize newsgroup subscriptions and article marks. This is purely selfish, since I use both, but I think it would benefit many users to develop an open standard for this that's better than the newsrc format. Also, if anyone knows of an existing standard for newsreader synchronization, please let me know. So far I've only seen solutions that synchronize the newsrc or use a proprietary format. My current idea for the structure is: subscription-set (just a name, only one per storage instance) params-list subscription-topic (e.g. "Programming" or "All") params-list group-name (e.g. "nntp servername.com groupname") params-list timestamp (floating-point unix epoch) "unread" unread-articles "read" read-articles "ticked" ticked-articles (favorites) mark1-name mark1-articles mark2-name mark2-articles ... So in Lisp this might look like this: (("Ted's sync" . (() ;; no parameters ("Programming" . (((created . 123.456)) ;; example parameter ("nntp gmane.org gmane.programming.articles" . (((level . 3)) ;; example parameter (timestamp . 123.456) ;; millisecond-precision (unread (10 200)) ;; seen but not read (read (1 9)) (ticked (3 4) 5) (specialmark1 (8))))))))) The equivalent JSON and XML representations would be trivial, though I think just JSON is enough. Let me know what you think. I hope to get this done by August, including the server side, and put up a free server that offers this service (with the source code open, so others can do the same). Thanks! Ted