From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/57329 Path: main.gmane.org!not-for-mail From: Lars Magne Ingebrigtsen Newsgroups: gmane.emacs.gnus.general Subject: Wizards! I mean, Assistants! Date: Sun, 16 May 2004 15:48:04 +0200 Organization: Programmerer Ingebrigtsen Sender: ding-owner@lists.math.uh.edu Message-ID: NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1084715395 2812 80.91.224.253 (16 May 2004 13:49:55 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 16 May 2004 13:49:55 +0000 (UTC) Original-X-From: ding-owner+M5868@lists.math.uh.edu Sun May 16 15:49:46 2004 Return-path: Original-Received: from malifon.math.uh.edu ([129.7.128.13]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BPM1S-0002Zc-00 for ; Sun, 16 May 2004 15:49:46 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1BPM0R-0001MI-00; Sun, 16 May 2004 08:48:43 -0500 Original-Received: from util2.math.uh.edu ([129.7.128.23]) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1BPM0K-0001MC-00 for ding@lists.math.uh.edu; Sun, 16 May 2004 08:48:36 -0500 Original-Received: from justine.libertine.org ([66.139.78.221] ident=postfix) by util2.math.uh.edu with esmtp (Exim 4.30) id 1BPM0I-0003qz-PU for ding@lists.math.uh.edu; Sun, 16 May 2004 08:48:34 -0500 Original-Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by justine.libertine.org (Postfix) with ESMTP id 598F83A003B for ; Sun, 16 May 2004 08:48:33 -0500 (CDT) Original-Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BPM0G-00078a-00 for ; Sun, 16 May 2004 15:48:32 +0200 Original-Received: from quimbies.gnus.org ([80.91.231.2]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 16 May 2004 15:48:32 +0200 Original-Received: from larsi by quimbies.gnus.org with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 16 May 2004 15:48:32 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: ding@gnus.org Original-To: ding@gnus.org Original-Lines: 77 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: quimbies.gnus.org Mail-Copies-To: never X-Now-Playing: Cabaret Voltaire's _Code_ User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:l1/vgq58qJKf1vy7B9MT2aZAcsc= Precedence: bulk Xref: main.gmane.org gmane.emacs.gnus.general:57329 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:57329 No, still no code. And I forgotten what conclusion (if any) we reached last time around. So, here's some thoughts, again. We want Gnus to be easy to set up for newbies. So when you start Gnus for the first time, you'd ideally be guided through some easy steps to get up and running. As a trivial example, Gnus would look around at the normal variables, ask if this is the right NNTP server to connect to, and if not, what's the address of the server; then it would check that the server exists and you can connect to it, and if not, it would say so. If everything's OK, it'd write these customizations to file and let you carry on with reading news. (We could imagine many similar, more complex wizards. (I don't really like that word, though. "Assistant"?) Setting up mail, spam filtering, scoring... Stuff that you can't do through M-x customize, because it's kinda interactive. You query the user, look if the response is reasonable, set stuff up. There are two areas of difficulty here: 1) Specifying these Assistants. If it's boring to write them, and they're difficult to maintain, that'd suck. And they'd not get written. 2) Rendering the Assistants. If they aren't pleasant to use, then that'd suck. For 2) I'd originally though "just use W3", but it might not be the best fit. It's too... free, in a way. We want to guide the user. Sternly. So perhaps a simpler renderer has to be written. Or several. There could be one buffer-based renderer, and one Gtk-based, etc. I'll just do the buffer-based one, though. For 1), I don't really have a clue. The specification language has to be easy to read and write, and will be a mix of code and text. I'll just type a bit and see if my fingers invent something usable: --------------- (!valid (let ((stream (condition-case err (open-network-stream "nntpd" nil server port) (error (setq error err))))) (if (memq (process-status stream) '(open run)) (progn (delete-process stream) t) nil))) (!result (gnus-select-method (list server port))) So you want to read news. The news server to use is (?server (gnus-getenv-nntpserver)); port number (?port 119). --------------- Er, that wasn't all that pleasant to write. The idea was that (?server) sets a variable that defaults to the argument, and then the user can edit the value. And the (!valid) thing is run when the user presses the "next" button, and does input validation. In this case, it checks whether you can connect to the server, and if not, it'll display the error message. If it validates, the (!result) is that you get a gnus-select-method set. Hm. Brainstorm, please. :-) -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen