Emacs Gnus for following Usenet, mailing lists and RSS-feeds
     ============================================================

                             Emacs Gnus
                             ----------

Emacs  Gnus is  an Usenet newsreader and  email client,  and is  an
integral part of GNU Emacs.

Usenet started in  1980, it uses the NetWork  News Transfer Protocol
(NNTP) on  TCP port 119.  It is used  for announcements and  to have
online  discussions,  in  the  form  of  postings  into  threads  in
topic-focussed news groups.

Gnus is mature,  the first release was  in 1987 and is  still used a
lot.

People use Gnus to:

* Read and write email messages
* Read Usenet News and post new messages to Usenet
* Read web pages through RSS-feeds
* And more

The most common way to configure  Gnus is to place the configuration
items in the file "$HOME/.gnus.el".

                               Email
                               -----

Gnus functions also  as email client, it allows you  to read mail in
several different ways.

I use a local Maildir, together with fetchmail.

In order to send messages, Gnus  requires a SMTP server. You can use
your account  of the SMTP  server of  your internet provider,  or an
account on another SMTP server, or your own local SMTP server.

                               Usenet
                               ------

To access Usenet,  and to read Usenet messages, you  need an account
at an Usenet news-server.

You can get a free account on the news-server of 
eternal-september.org.

To use your news account, you have to do two things:

* Add the news-server to the Gnus config
* Put the authentication details in the file "$HOME/.authinfo".

               Add the news-server to the Gnus config
               ......................................

Add the following to your ~/.gnus.el:

(add-to-list 'gnus-secondary-select-methods
      '(nntp "news.eternal-september.org"
            (nntp-open-connection-function nntp-open-ssl-stream)
            (nntp-port-number 563)))
            
We  use  here  "gnus-secondary-select-methods", presuming  that  you
already have "gnus-select-method" in use for your email.

            Authentication details in "$HOME/.authinfo"
            ...........................................

Create the file ~/.authinfo and add a line:

  machine news.eternal-september.org login [username] force yes password [password]

And  replace  [username]  [password]  with your  real  username  and
password from your news-server account.

If  you have  more  than one  account, like  an  account at  another
news-server, you can add more lines, for each account a line.

                       Subscribing to groups
                       .....................

You can  now start  Gnus with M-x  gnus. After Gnus  has set  up the
connection  with  the  news-server  you  can  request  the  list  of
available news  groups (there  are a  lot of  those), first  hit '^'
(shift-6) to  see the list of  servers, set point on  "opened". Walk
through the list and subscribe to  some groups with 'u'. No worries,
you can always un-subscribe later (again with 'u' on the same line).

Many news groups  have a lot of history, download  only 100 messages
or so to  get a feel for  the kind of discussions  taking place. Hit
'c' ("catch up"), this will mark the messages as seen.

Close the news group with 'q', go back to the line of the news group
and hit 'c'.  This will mark all  the messages in the  news group as
seen.  The next  time  you start  Gnus, only  new  arrivals will  be
listed.

You can mark individual messages as  'expired' with 'E'. Use this if
you don't  want all the messages  in the current message  list to be
marked as seen.

With Gnus you can not only  read Usenet messages, you can also write
and post your own  too. First, make sure you have  read the rules of
your news-server about posting messages.

                 Follow mailing lists with gmane.io
                 ----------------------------------

gmane.io  (http://gmane.io/)  is a  brilliant  service that  provide
mailing lists  as news  groups. gmane.io acts  like any  Usenet nntp
news-server, so you can use any nntp news-reader.

There are many, many mailing lists that are made available this way.

For many of the open source applications you use, there is a mailing
list. Sometimes this is single mailing list aimed at the developers,
sometimes there a several mailing  list, aimed at the developers and
aimed at the users. Following these  lists can help you discover new
(to you) options, solve problems and so.

There are  some great advantages  to use  the NNTP protocol  to read
mailing list messages.

* By using gmane.io you don't need to be subscribed to these mailing
  lists to  read the  messages on  the list.  Of course,  almost all
  mailing lists require a subscription  before you can post messages
  your self.
  
* Usenet news-readers are  build to let you process  a large number
  of messages, and will remember the messages you have seen or have
  expired, so you get to see only new arrivals.

In  Gnus you  can choose  to get  a threaded  view of  the messages.
Following mailing lists this way is very efficient.

You don't  need an account  on gmane.io.  Just add the  following to
your ~/.gnus.el:

  (add-to-list 'gnus-secondary-select-methods '(nntp "news.gmane.io"))

Restart  Gnus and  request  the  list of  available  news groups  at
news.gmane.io. You  will see a  list of mailing lists  that gmane.io
provides. Choose a few lists and subscribe with 'u'.

The individual  messages in  the mailing list  will be  presented as
individual Usenet  postings. The  history of  some mailing  lists in
gmane.io can be quite large, so  again, start with just 100 messages
or so, and use 'catch up' ('c') to mark all messages as read.

The  next time  you start  Gnus, you  will be  informed of  only new
arrivals.

                  Follow RSS feeds with gwene.org
                  -------------------------------

The  services  of  gmane.io  has  been  extended  with  yet  another
brilliant service, a RSS-to-NNTP gateway.

This  means  you can  follow  a  lot of  RSS  feeds  in your  Usenet
news-reader.

* In new.gwene.org, each RSS feed is a news group.

* Each RSS item is shown as  a Usenet message, including the URL of
  the item, the link to the original web page.

Gwene.org also adds the link to the original web page as a header of
the specific  Usenet messages. This  link is embedded in  the header
"Archived-at".

There are many, many RSS feeds that are made available this way.

gwene.org  (http://gwene.org/) allows you to  add feeds, in case you
want to follow a feed that is not already on gwene.org.

You don't  need an account  on gmane.io.  Just add the  following to
your ~/.gnus.el:

      (add-to-list 'gnus-secondary-select-methods '(nntp "news.gwene.org"))

After this,  the procedure is  the same  as with gmane.io,  open the
list of  available news groups, which  are RSS feeds this  time, and
subscribe to your favorite feeds with 'u'.

                         Fast and efficient
                         ..................

Compared to the "normal" way of  reading RSS-feeds, you win a lot of
time.  There  is  no  feed-reader   fetching  and  parsing  all  the
individual RSS-files you are subscribed  to, gwene.org has done that
work for you. Gnus only has  to retreive the headers from gwene.org,
which hardly require any time.

Following RSS feeds with Gnus and gwene.org is again very efficient.
Gnus  shows only  the  news groups  (feeds in  this  case) with  new
messages. When you open a group (a  RSS feed in this case) you get a
list of new RSS items.

You only open the messages that  seems interesting to you. Opening a
messages shows the RSS item. Depending  on how the specific RSS feed
is constructed you get a complete  web page, sometimes only a little
teaser  followed by  a  link, and  sometimes only  just  a link,  or
anything in between that.

I use eww to open the links of the individual RSS items and read the
specific web page.

                                Eww
                                ---

Emacs comes  with a small web  browser built in, called  eww. I have
configured eww  to act  like text  mode web  browser, with  only the
standard  font and  no images,  comparable  with the  text mode  web
browser lynx.

This leads to:

* fast loading 
* good readability
* no advertising crap, no auto playing video and so on

When  just reading  text is  not enough,  or the  specific web  site
requires  JavaScript, just  hit '&'  (shift-7) and  Emacs opens  the
current  web page  in your  graphical  web browser  (like Chrome  or
Firefox).

                      Reading messages in Gnus
                      ------------------------
 
In the message list of the news  group (or mailing list or RSS feed)
you hit  'Enter' on a message.  A new window below  the message list
will be opened.

You can jump between the message  list window and the message window
with 'h'. **But most of the time you don't need to**:

* Without leaving the window with  the message list, you can scroll
  the text in the message window line by line with 'enter' and back
  with 'Alt-enter'  and screen by  screen with 'space',  and scroll
  back with 'backspace'.

* When you scroll  the text in the message window  with 'space' and
  you reach the end of the  message, hit `space' again, to open the
  next message.

* When you reach the end of the message list, hit 'space' again, to
  open the next news group.

              All in one place, and one user interface
              ----------------------------------------

Reading email, Usenet news messages,  mailing list messages, and RSS
feeds with Gnus all works the same and looks the same. The web pages
opened in eww also uses the same theme, font, and so on.

This means you have just one set of keys to remember and use.

Emacs is wonderful!

                               Thanks
                               ------

Gijs Hillenius  (https://hillenius.net/)   was   a  big   help   and
inspiration  at setting  up Gnus  and  pointing me  to gwane.io  and
gwene.org.

Last edited: $Date: 2023/01/24 13:45:57 $

                              * EOF *