*** pub/sgnus/lisp/gnus-ems.el Sun Apr 7 20:58:45 1996 --- sgnus/lisp/gnus-ems.el Tue Apr 9 01:43:36 1996 *************** *** 41,46 **** --- 41,47 ---- (defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window) (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names) (defalias 'gnus-make-local-hook 'make-local-hook) + (defalias 'gnus-character-to-event 'identity) (eval-and-compile (autoload 'gnus-xmas-define "gnus-xmas") *************** *** 52,72 **** ;;; Mule functions. - (defun gnus-mule-truncate-string (str width) - (let ((w (string-width str)) - (col 0) (idx 0) (p-idx 0) chr) - (if (<= w width) - str - (while (< col width) - (setq chr (aref str idx) - col (+ col (char-width chr)) - p-idx idx - idx (+ idx (char-bytes chr)) - )) - (substring str 0 (if (= col width) - idx - p-idx))))) - (defun gnus-mule-cite-add-face (number prefix face) ;; At line NUMBER, ignore PREFIX and add FACE to the rest of the line. (if face --- 53,58 ---- *************** *** 89,95 **** (valstr (if (numberp val) (int-to-string val) val))) (if (> (length valstr) (, max-width)) ! (gnus-truncate-string valstr (, max-width)) valstr)))) (eval-and-compile --- 75,81 ---- (valstr (if (numberp val) (int-to-string val) val))) (if (> (length valstr) (, max-width)) ! (truncate-string valstr (, max-width)) valstr)))) (eval-and-compile *************** *** 205,213 **** ((boundp 'MULE) ;; Mule definitions ! (defalias 'gnus-truncate-string ! (if (fboundp 'truncate-string) ! 'truncate-string 'gnus-mule-truncate-string)) (fset 'gnus-summary-make-display-table (lambda () nil)) (fset 'gnus-cite-add-face 'gnus-mule-cite-add-face) --- 191,197 ---- ((boundp 'MULE) ;; Mule definitions ! (defalias 'gnus-truncate-string 'truncate-string) (fset 'gnus-summary-make-display-table (lambda () nil)) (fset 'gnus-cite-add-face 'gnus-mule-cite-add-face) *************** *** 229,235 **** (format "%4d: %-20s" gnus-tmp-lines (if (> (length gnus-tmp-name) 20) ! (gnus-truncate-string gnus-tmp-name 20) gnus-tmp-name)) gnus-tmp-closing-bracket) (point)) --- 213,219 ---- (format "%4d: %-20s" gnus-tmp-lines (if (> (length gnus-tmp-name) 20) ! (truncate-string gnus-tmp-name 20) gnus-tmp-name)) gnus-tmp-closing-bracket) (point)) *** pub/sgnus/lisp/gnus-gl.el Sun Apr 7 20:58:45 1996 --- sgnus/lisp/gnus-gl.el Tue Apr 9 02:22:40 1996 *************** *** 59,94 **** ;; As of version 2.5, grouplens now works as a minor mode of ;; gnus-summary-mode. To get make that work you just need a couple of ;; hooks. ! ;; In addition, there are a few gnus-*-hooks that need to be set: ! ;; (add-hook 'gnus-startup-hook 'bbb-login) ! ;; (add-hook 'gnus-summary-mode-hook 'gnus-grouplens-mode) ! ;; ! ;; If you want to see grouplens scores using our format you might want to ! ;; add a %uG to the gnus-summary-line-format. For example, I use: ! ;; (setq gnus-summary-line-format "%U%R%uG%I%(%[%4L: %-20,20uB%]%) %s\n") ! ;; The above format also assumes that you are using gnus-bbdb You can ! ;; just as easily ad %uG to whatever format string you use. Or add ! ;; a %i to just see a simple numeric version of the predictions that ! ;; uses less space on the summary line. If you use %uG you have several ! ;; choices for how things look. See the doc string for the ! ;; grouplens-prediction-display variable. ! ;; (setq grouplens-prediction-display 'prediction-bar) ! ;; ! ;; If you use %uI on your group-line-format you will get (GroupLens Enhanced) ! ;; after the names of newsgroups supported by GroupLens. ! ;; (setq gnus-group-line-format "%M%S%p%5y: %(%g%) %uI\n") ;; ;; (setq gnus-summary-default-score 0) ;; - ;; In addition there are some GroupLens user variables to set - ;; (setq grouplens-pseudonym "foobar") - ;; If you are using a bbb other than twain.cs.umn.edu you will need to - ;; set the grouplens-bbb-host variable, and possibly the - ;; grouplens-bbb-port variable. - ;; - ;;(setq grouplens-newsgroups '("comp.lang.c++" "rec.humor" "rec.food.recipes")) - ;; This sets up the groups for which you will get predictions and ratings. - ;; ;; USING GROUPLENS ;; How do I Rate an article?? ;; Before you type n to go to the next article, hit a number from 1-5 --- 59,70 ---- ;; As of version 2.5, grouplens now works as a minor mode of ;; gnus-summary-mode. To get make that work you just need a couple of ;; hooks. ! ;; (setq gnus-use-grouplens t) ! ;; (setq grouplens-pseudonym "") ! ;; (setq grouplens-bbb-host "grouplens.cs.umn.edu") ;; ;; (setq gnus-summary-default-score 0) ;; ;; USING GROUPLENS ;; How do I Rate an article?? ;; Before you type n to go to the next article, hit a number from 1-5 *************** *** 776,782 **** ;; BUG REPORTING ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ! (defconst gnus-gl-version "gnus-gl.el 2.10") (defconst gnus-gl-maintainer-address "grouplens-bug@cs.umn.edu") (defun gnus-gl-submit-bug-report () "Submit via mail a bug report on gnus-gl" --- 752,758 ---- ;; BUG REPORTING ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ! (defconst gnus-gl-version "gnus-gl.el 2.11") (defconst gnus-gl-maintainer-address "grouplens-bug@cs.umn.edu") (defun gnus-gl-submit-bug-report () "Submit via mail a bug report on gnus-gl" *************** *** 860,866 **** '(lambda() (bbb-build-mid-scores-alist gnus-newsgroup-name)))) (make-local-variable 'gnus-summary-line-format) ! (if gnus-grouplens-override-scoring (setq gnus-summary-line-format gnus-summary-grouplens-lab-line-format)) (make-local-variable 'gnus-summary-line-format-spec) --- 836,842 ---- '(lambda() (bbb-build-mid-scores-alist gnus-newsgroup-name)))) (make-local-variable 'gnus-summary-line-format) ! (if (null gnus-grouplens-override-scoring) (setq gnus-summary-line-format gnus-summary-grouplens-lab-line-format)) (make-local-variable 'gnus-summary-line-format-spec) *** pub/sgnus/lisp/gnus-setup.el Sun Apr 7 20:58:47 1996 --- sgnus/lisp/gnus-setup.el Mon Apr 8 19:11:30 1996 *************** *** 161,167 **** (if gnus-use-sc (progn (add-hook 'mail-citation-hook 'sc-cite-original) ! (setq message-cite-function 'sc-cite-original))) ;;;### (autoloads (gnus-batch-score gnus-fetch-group gnus gnus-slave gnus-no-server gnus-update-format) "gnus" "lisp/gnus.el" (12473 2137)) ;;; Generated autoloads from lisp/gnus.el --- 161,168 ---- (if gnus-use-sc (progn (add-hook 'mail-citation-hook 'sc-cite-original) ! (setq message-cite-function 'sc-cite-original) ! (autoload 'sc-cite-original "supercite"))) ;;;### (autoloads (gnus-batch-score gnus-fetch-group gnus gnus-slave gnus-no-server gnus-update-format) "gnus" "lisp/gnus.el" (12473 2137)) ;;; Generated autoloads from lisp/gnus.el *** pub/sgnus/lisp/gnus-xmas.el Sun Apr 7 20:58:50 1996 --- sgnus/lisp/gnus-xmas.el Tue Apr 9 01:43:36 1996 *************** *** 424,429 **** --- 424,430 ---- 'gnus-xmas-appt-select-lowest-window) (fset 'gnus-mail-strip-quoted-names 'gnus-xmas-mail-strip-quoted-names) (fset 'gnus-make-local-hook 'make-local-variable) + (fset 'gnus-character-to-event 'character-to-event) (add-hook 'gnus-group-mode-hook 'gnus-xmas-group-menu-add) (add-hook 'gnus-summary-mode-hook 'gnus-xmas-summary-menu-add) *** pub/sgnus/lisp/gnus.el Sun Apr 7 20:58:51 1996 --- sgnus/lisp/gnus.el Tue Apr 9 02:11:48 1996 *************** *** 1695,1701 **** "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "September Gnus v0.67" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1695,1701 ---- "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "September Gnus v0.68" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 14283,14294 **** "Show the next page of the article." (interactive) (when (gnus-article-next-page) ! (gnus-article-read-summary-keys nil ?n))) (defun gnus-article-goto-prev-page () "Show the next page of the article." (interactive) ! (if (bobp) (gnus-article-read-summary-keys nil ?n) (gnus-article-prev-page nil))) (defun gnus-article-next-page (&optional lines) --- 14283,14294 ---- "Show the next page of the article." (interactive) (when (gnus-article-next-page) ! (gnus-article-read-summary-keys nil (gnus-character-to-event ?n)))) (defun gnus-article-goto-prev-page () "Show the next page of the article." (interactive) ! (if (bobp) (gnus-article-read-summary-keys nil (gnus-character-to-event ?n)) (gnus-article-prev-page nil))) (defun gnus-article-next-page (&optional lines) *************** *** 15610,15616 **** info active (and method (fboundp (intern (concat (symbol-name (car method)) ! "-request-scan")))))) ;; The group couldn't be reached, so we nix out the number of ;; unread articles and stuff. (gnus-set-active group nil) --- 15610,15616 ---- info active (and method (fboundp (intern (concat (symbol-name (car method)) ! "-request-update-info")))))) ;; The group couldn't be reached, so we nix out the number of ;; unread articles and stuff. (gnus-set-active group nil) *** pub/sgnus/lisp/message.el Sun Apr 7 20:58:53 1996 --- sgnus/lisp/message.el Tue Apr 9 00:47:59 1996 *************** *** 62,69 **** king@grassland.com (Elvis Parsley) If `angles', they look like: Elvis Parsley ! Otherwise, most addresses look like `angles', but they look like `parens' ! if `angles' would need quoting and `parens' would not.") ;;;###autoload (defvar message-syntax-checks --- 62,70 ---- king@grassland.com (Elvis Parsley) If `angles', they look like: Elvis Parsley ! ! Otherwise, most addresses look like `angles', but they look like ! `parens' if `angles' would need quoting and `parens' would not.") ;;;###autoload (defvar message-syntax-checks *************** *** 1635,1643 **** (defun message-make-address () "Make the address of the user." ! (or user-mail-address (concat (user-login-name) "@" (message-make-domain)))) (defun message-make-fqdm () "Return user's fully qualified domain name." (let ((system-name (system-name))) --- 1636,1651 ---- (defun message-make-address () "Make the address of the user." ! (or (message-user-mail-address) (concat (user-login-name) "@" (message-make-domain)))) + (defun message-user-mail-address () + "Return the pertinent part of `user-mail-address'." + (when (string-match + "\\(\\`\\|[ \t]\\)\\([^ \t@]+@[^ \t]+\\)\\(\\'\\|[ \t]\\)" + user-mail-address) + (match-string 2 user-mail-address))) + (defun message-make-fqdm () "Return user's fully qualified domain name." (let ((system-name (system-name))) *************** *** 1649,1655 **** ((string-match "@\\([^\\s-]+\\)\\(\\'\\|\\W\\)" user-mail-address) (match-string 1 user-mail-address)) ;; Try `mail-host-address'. ! (mail-host-address mail-host-address) ;; Default to this bogus thing. (t (concat system-name ".i-have-a-misconfigured-system-so-shoot-me"))))) --- 1657,1665 ---- ((string-match "@\\([^\\s-]+\\)\\(\\'\\|\\W\\)" user-mail-address) (match-string 1 user-mail-address)) ;; Try `mail-host-address'. ! ((and (boundp 'mail-host-address) ! mail-host-address) ! mail-host-address) ;; Default to this bogus thing. (t (concat system-name ".i-have-a-misconfigured-system-so-shoot-me"))))) *** pub/sgnus/lisp/nndoc.el Sun Apr 7 20:58:53 1996 --- sgnus/lisp/nndoc.el Mon Apr 8 20:35:22 1996 *************** *** 63,69 **** (head-begin . "^[0-9].*\n")) (forward (article-begin . "^-+ Start of forwarded message -+\n+") ! (body-end . "^-+ End of forwarded message -+\n")) (clari-briefs (article-begin . "^ \\*") (body-end . "^\t------*[ \t]^*\n^ \\*") --- 63,70 ---- (head-begin . "^[0-9].*\n")) (forward (article-begin . "^-+ Start of forwarded message -+\n+") ! (body-end . "^-+ End of forwarded message -+\n") ! (prepare-body . nndoc-unquote-dashes)) (clari-briefs (article-begin . "^ \\*") (body-end . "^\t------*[ \t]^*\n^ \\*") *************** *** 77,83 **** (body-end-function . nndoc-digest-body-end) (body-begin . "^ ?$") (file-end . "^End of") ! (prepare-body . nndoc-prepare-digest-body)) (mime-digest (article-begin . "") (head-end . "^ ?$") --- 78,84 ---- (body-end-function . nndoc-digest-body-end) (body-begin . "^ ?$") (file-end . "^End of") ! (prepare-body . nndoc-unquote-dashes)) (mime-digest (article-begin . "") (head-end . "^ ?$") *************** *** 86,92 **** (standard-digest (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+")) (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+")) ! (prepare-body . nndoc-prepare-digest-body) (body-end-function . nndoc-digest-body-end) (head-end . "^ ?$") (body-begin . "^ ?\n") --- 87,93 ---- (standard-digest (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+")) (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+")) ! (prepare-body . nndoc-unquote-dashes) (body-end-function . nndoc-digest-body-end) (head-end . "^ ?$") (body-begin . "^ ?\n") *************** *** 438,444 **** (count-lines body-begin body-end)) nndoc-dissection-alist)))))) ! (defun nndoc-prepare-digest-body () "Unquote quoted non-separators in digests." (while (re-search-forward "^- -"nil t) (replace-match "-" t t))) --- 439,445 ---- (count-lines body-begin body-end)) nndoc-dissection-alist)))))) ! (defun nndoc-unquote-dashes () "Unquote quoted non-separators in digests." (while (re-search-forward "^- -"nil t) (replace-match "-" t t))) *** pub/sgnus/lisp/nnml.el Sun Apr 7 20:58:53 1996 --- sgnus/lisp/nnml.el Mon Apr 8 19:05:45 1996 *************** *** 97,103 **** (nnml-current-directory nil) (nnml-generate-active-function ,nnml-generate-active-function) (nnml-article-file-alist nil) ! (nnml-prepare-save-mail-hook nil) (nnml-current-group nil) (nnml-inhibit-expiry ,nnml-inhibit-expiry) (nnml-status-string "") --- 97,103 ---- (nnml-current-directory nil) (nnml-generate-active-function ,nnml-generate-active-function) (nnml-article-file-alist nil) ! (nnml-prepare-save-mail-hook ,nnml-prepare-save-mail-hook) (nnml-current-group nil) (nnml-inhibit-expiry ,nnml-inhibit-expiry) (nnml-status-string "") *** pub/sgnus/lisp/nnvirtual.el Sun Apr 7 20:58:54 1996 --- sgnus/lisp/nnvirtual.el Tue Apr 9 02:11:51 1996 *************** *** 267,273 **** (if (cdadr mr) (setq mr (cdr mr)) (setcdr mr (cddr mr)))) ! ;; Enter these new marks into the info of the group. (if (nthcdr 3 info) (setcar (nthcdr 3 info) marks) --- 267,273 ---- (if (cdadr mr) (setq mr (cdr mr)) (setcdr mr (cddr mr)))) ! ;; Enter these new marks into the info of the group. (if (nthcdr 3 info) (setcar (nthcdr 3 info) marks) *************** *** 325,330 **** --- 325,338 ---- (let ((inf t)) (when (or (not (equal group nnvirtual-current-group)) check) + (setq inf (assoc group nnvirtual-group-alist)) + (when nnvirtual-current-group + ;; Push the old group variables onto the alist. + (setq nnvirtual-group-alist + (cons (list nnvirtual-current-group + nnvirtual-component-groups + nnvirtual-mapping) + (delq inf nnvirtual-group-alist)))) (if check ;; We nix out the variables. (setq nnvirtual-current-group nil *************** *** 333,346 **** nnvirtual-group-alist (delq (assoc group nnvirtual-group-alist) nnvirtual-group-alist)) - (setq inf (assoc group nnvirtual-group-alist)) - (when nnvirtual-current-group - ;; Push the old group variables onto the alist. - (setq nnvirtual-group-alist - (cons (list nnvirtual-current-group - nnvirtual-component-groups - nnvirtual-mapping) - (delq inf nnvirtual-group-alist)))) (setq nnvirtual-current-group nil nnvirtual-component-groups nil nnvirtual-mapping nil) --- 341,346 ---- *************** *** 420,426 **** 'nconc (mapcar (lambda (g) ! (when (setq active (gnus-activate-group g)) (setq unreads (gnus-list-of-unread-articles g) marks (gnus-uncompress-marks (gnus-info-marks (gnus-get-info g)))) --- 420,427 ---- 'nconc (mapcar (lambda (g) ! (when (and (setq active (gnus-activate-group g)) ! (> (cdr active) (car active))) (setq unreads (gnus-list-of-unread-articles g) marks (gnus-uncompress-marks (gnus-info-marks (gnus-get-info g)))) *** pub/sgnus/lisp/ChangeLog Sun Apr 7 20:59:00 1996 --- sgnus/lisp/ChangeLog Tue Apr 9 02:22:39 1996 *************** *** 1,4 **** --- 1,49 ---- + Tue Apr 9 00:15:43 1996 Brad Miller + + * gnus-gl.el: New version. + + Mon Apr 8 23:55:19 1996 Lars Magne Ingebrigtsen + + * nnvirtual.el (nnvirtual-create-mapping): Would include `(0 . 0)' + groups. + + Tue Apr 9 01:40:56 1996 Lars Magne Ingebrigtsen + + * gnus.el (gnus-article-goto-next-page): Would bug out under + XEmacs. + (gnus-get-unread-articles): Wouldn't update virtual groups. + + * gnus-ems.el ('gnus-character-to-event): New alias. + * gnus-xmas.el (gnus-xmas-redefine): Redefine. + + Mon Apr 8 21:55:15 1996 Lars Magne Ingebrigtsen + + * message.el (message-user-mail-address): New function. + (message-make-address): Use it. + + Mon Apr 8 19:18:14 1996 Lars Magne Ingebrigtsen + + * message.el (message-make-fqdm): mail-host-address may be + unbound. + + * nndoc.el (nndoc-type-alist): Unquote dashes in forwards. + + Mon Apr 8 19:14:05 1996 ISO-2022-JP + + * gnus-ems.el (gnus-mule-max-width-function): Use + `truncate-string'. + + Sat Apr 6 15:03:39 1996 Steven L. Baur + + * gnus-setup.el (gnus-use-sc): Arrange for autoload of supercite + if necessary. + + * nnml.el (nnml-server-variables): Obey user preferences for + nnml-prepare-save-mail-hook. + Sun Apr 7 20:14:50 1996 Lars Magne Ingebrigtsen + + * gnus.el: September Gnus v0.67 is released. * gnus.el (gnus-group-get-new-news-this-group): Would update groups twice. *** pub/sgnus/texi/gnus.texi Sun Apr 7 20:59:02 1996 --- sgnus/texi/gnus.texi Tue Apr 9 02:59:15 1996 *************** *** 10429,10434 **** --- 10429,10436 ---- * Buttons:: Get tendonitis in ten easy steps! * Daemons:: Gnus can do things behind your back. * NoCeM:: How to avoid spam and other fatty foods. + * Picons Pictures:: How to display pictures of what your reading. + * GroupLens:: Getting predictions on what you like to read. * Various Various:: Things that are really various. @end menu *************** *** 11190,11195 **** --- 11192,11460 ---- might then see old spam. @end table + + + @node Picons Pictures + @section Picons Pictures + + So... You want to slow down your news reader even more! This is a + good way to do so. Its also a great way to impress people staring + over your shoulder as you read news. + + @menu + * Picons:: What are Picons and How do I get them. + * Picons Requirements:: Don't go further if you aren't using XEmacs. + * Picons Easy:: Displaying Picons -- the easy way. + * Picons Hard:: The way you should do it. You'll learn something. + * Picons Configuration:: Other variables you can trash/tweak/munge/play with. + @end menu + + + @node Picons + @subsection Picons + + What are Picons? To quote directly from the Picons Web site + (@samp{http://www.cs.indiana.edu/picons/ftp/index.html}): + + @quotation + @dfn{Picons} is short for ``personal icons''. They're small, + constrained images used to represent users and domains on the net, + organized into databases so that the appropriate image for a given + e-mail address can be found. Besides users and domains, there are + picons databases for Usenet newsgroups and weather forecasts. The picons + are in either monochrome XBM format or color XPM and GIF formats. + @end quotation + + Please see the above mentioned web site for instructions on obtaining + and installing the picons databases, or the following ftp site: + @samp{http://www.cs.indiana.edu/picons/ftp/index.html}. + + @vindex gnus-picons-database + Gnus expects picons to be installed into a location pointed to by + @code{gnus-picons-database}. + + + @node Picons Requirements + @subsection Picons Requirements + + To use have gnus display Picons for you, you must be running XEmacs + 19.13 or greater since all other versions of Emacs aren't yet able to + display images. + + Additionally, you must have xpm support compiled into XEmacs. + + If you want to display faces from X-Face: headers, you must have the + netpbm utilities installed, or munge the + @code{gnus-picons-convert-x-face} variable to use something else. + + + @node Picons Easy + @subsection Picons Easy + + To enable the displaying of picons, simply put the followings line in + your @file{~/.gnus} file and start gnus. + + @lisp + (setq gnus-use-picons t) + (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t) + (add-hook 'gnus-summary-prepare-hook 'gnus-group-display-picons t) + (add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face) + @end lisp + + + @node Picons Hard + @subsection Picons Hard + + Gnus can display "Picons" for you as you enter and leave groups + and articles. It knows how to interact with three sections of the + picons database. Namely, it can display the picons newsgroup + pictures, author's face picture(s), and the authors domain. To enable + this feature, you need to first decide where to display them. + + @table @code + @item gnus-picons-display-where + @vindex gnus-picons-display-where + Where the Picons images should be displayed. It is @code{'picons} by + default (which by default maps to the buffer "*Picons*"). Other valid + places could be @code{'article}, @code{'summary}, or @code{"*scratch*"} + for all I care. Just make sure that you've made the buffer visible + using the @xref{Windows Configuration} routines. + + @end table + + Note: If you set @code{gnus-use-picons} to @code{t}, it will set up your + windows configuration for you to include the @code{picons} buffer. + + Now that you've made that decision, you need to add the following + functions to the appropriate hooks so these pictures will get + displayed at the right time. + + @table @code + @item gnus-article-display-picons + @findex gnus-article-display-picons + Looks up and display the picons for the author and the author's domain + in the @code{gnus-picons-display-where} buffer. Should be added to + the @code{gnus-article-display-hook}. + + @item gnus-group-display-picons + @findex gnus-article-display-picons + Displays picons representing the current group. This function should + be added to the @code{gnus-summary-prepare-hook} or to the + @code{gnus-article-display-hook} if @code{gnus-picons-display-where} + is set to @code{'article}. + + @item gnus-picons-article-display-x-face + @findex gnus-article-display-picons + Decodes and displays the X-Face header if present. This function + should be added to @code{gnus-article-display-hook}. + + @end table + + Note: You must append them to the hook, so make sure to specify 't' + to the append flag of @code{add-hook}: + + @lisp + (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t) + @end lisp + + @node Picons Configuration + @subsection Picons Configuration + + The following variables offer further control over how things are + done, where things are located, and other useless stuff you really + don't need to worry about. + + @table @code + @item gnus-picons-database + @vindex gnus-picons-database + The location of the picons database. Should point to a directory + containing the "news", "domains", "users", etc... subdirectories. + Defaults to "/usr/local/faces". + + @item gnus-picons-news-directory + @vindex gnus-picons-news-directory + Sub-directory of the faces database containing the icons for + newsgroups. + + @item gnus-picons-user-directories + @vindex gnus-picons-user-directories + List of subdirectories to search in @code{gnus-picons-database} for + user faces. Defaults to @code{'("local" "users" "usenix" + "misc/MISC")}. + + @item gnus-picons-domain-directories + @vindex gnus-picons-domain-directories + List of subdirectories to search in @code{gnus-picons-database} for + domain name faces. Defaults to @code{'("domains")}. Some people may + want to add @code{"unknown"} to this list. + + @item gnus-picons-convert-x-face + @vindex gnus-picons-convert-x-face + The command to use to convert the x-face header to a X bitmap (xbm). + Defaults to @code{(format "@{ echo '/* Width=48, Height=48 */'; uncompface; @} | icontopbm | pbmtoxbm > %s" gnus-picons-x-face-file-name)} + + @item gnus-picons-x-face-file-name + @vindex gnus-picons-x-face-file-name + Names a temporary file to store the x-face bitmap in. Defaults to + @code{(format "/tmp/picon-xface.%s.xbm" (user-login-name))}. + + @item gnus-picons-buffer + @vindex gnus-picons-buffer + The name of the buffer that @code{'picons} points to. Defaults to + "*Icon Buffer*". + + @end table + + + @node GroupLens + @section GroupLens + @cindex GroupLens + GroupLens is a collaborative filtering system that helps you work + together with other people to find the quality news articles out of the + huge volume of news articles generated every day. + + To accomplish this the GroupLens system combines your opinions about + articles you have already read with the opinions of others who have + done likewise and gives you a personalized prediction for each unread + news article. Think of GroupLens as a matchmaker. GroupLens watches + how you rate articles, and finds other people that rate articles the + same way. Once it has found for you some people you agree with it tells + you, in the form of a prediction, what they thought of the article. + You can use this prediction to help you decide whether or not you want + to read the article. + + @section Configuring gnus to use GroupLens + + To use GroupLens you must register a pseudonym with your local Better + Bit Bureau (BBB). At the moment the only better bit in town is at + @code{http://www.cs.umn.edu/Research/GroupLens/bbb.html}. + Once you have registered you'll need to set a couple of variables + @lisp + (setq gnus-use-grouplens t) + (setq grouplens-pseudonym my-pseudonym) + (setq grouplens-newsgroups "comp.lang.c++" "rec.humor") + @end lisp + + Thats the minimum of what you need to get up and running with + GroupLens. Once you've registered, GroupLens will start giving you + scores for articles based on the average of what other people think. + But, to get the real benefit of grouplens you need to start rating + articles yourself. Then the scores GroupLens gives you will be + personalized for you, based on how the people you usually agree with + have already rated. + + @section Rating Articles in GroupLens + In GroupLens, an article is rated on a scale from 1..5. Where 1 means + something like this article is a waste of bandwidth. and 5 means that + the article was really good. The basic question to ask yourself is, "on + a scale from 1 to 5 would I like to see more articles like this one?" + There are four ways to enter a rating for an article in GroupLens. + @table @kbd + + @item r + @findex bbb-summary-rate-article + This function will prompt you for a rating on a scale of one-to five + + @item N n + @findex grouplens-next-unread-article + Rate the article and go to the next unread article. + + @item N n + @findex grouplens-best-unread-article + Rate the article and go to the next unread article with the highest score + + @item k + @findex grouplens-score-thread + This function will prompt you for a rating, and rate all the articles in + the thread. This is really useful for some of those long running giant + threads in rec.humor. + + @end table + + @section Displaying predictions in grouplens + There are two ways to display predictions in grouplens. One is to have + the grouplens scores contribute to, or override the regular gnus scoring + mechanism. This behavior is the default; however, some people prefer to + see the gnus scores plus the grouplens scores. To get the separate + scoring behavior you need to set + @code{(setq gnus-grouplens-override-scoring nil)} + + In either case, GroupLens gives you a few choices for how you would like + to see your predictions displayed. The display of predictions is + controlled by the variable @code{grouplens-prediction-display} + + prediction-spot -- an * corresponding to the prediction between 1 and 5, + confidence-interval -- a numeric confidence interval + prediction-bar -- |##### | the longer the bar, the better the article, + confidence-bar -- | ----- | the prediction is in the middle of the bar, + confidence-spot -- | * | the spot gets bigger with more confidence, + prediction-num -- plain-old numeric value, + confidence-plus-minus -- prediction +/i confidence") + + ---------------------------------------------------------------- + In particular, I'm pretty sure these last few lines will not look very + pretty without some additional texinfo magic, magic that is beyond me at + this time of the day. @node Various Various *** pub/sgnus/texi/ChangeLog Sun Apr 7 20:59:01 1996 --- sgnus/texi/ChangeLog Tue Apr 9 02:22:37 1996 *************** *** 1,3 **** --- 1,11 ---- + Tue Apr 9 00:17:33 1996 Brad Miller + + * gnus.texi (GroupLens): New section. + + Mon Apr 8 22:48:46 1996 Wes Hardaker + + * gnus.texi (Picons Pictures): New section. + Sat Mar 9 07:00:48 1996 Lars Magne Ingebrigtsen * gnus.texi (Fancy Mail Splitting): Addition.