Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on IRC.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/irc.e>
#           or at <http://angg.twu.net/e/irc.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.dancer»			(to "dancer")
# «.rcirc-localhost»		(to "rcirc-localhost")
# «.irc-protocol»		(to "irc-protocol")
# «.identd»			(to "identd")
# «.tkirc»			(to "tkirc")
# «.zenirc»			(to "zenirc")
# «.xchat»			(to "xchat")
# «.registering»		(to "registering")
# «.cgiirc»			(to "cgiirc")
# «.cgiirc-twu»			(to "cgiirc-twu")
# «.cgiirc-disconnects»		(to "cgiirc-disconnects")
# «.rcirc-print»		(to "rcirc-print")
# «.ii-and-sic»			(to "ii-and-sic")
# «.ngircd»  			(to "ngircd")
# «.registering-a-channel»	(to "registering-a-channel")
# «.operator»			(to "operator")
# «.ircds»			(to "ircds")
# «.SASL»			(to "SASL")
# «.SASL-circe»			(to "SASL-circe")
# «.charybdis»			(to "charybdis")
# «.irssi»			(to "irssi")
# «.webchat»			(to "webchat")
# «.weechat»			(to "weechat")
# «.irccloud»			(to "irccloud")
# «.liberachat»			(to "liberachat")
# «.MemoServ»			(to "MemoServ")





#####
#
# the dancer irc server
# 2004oct09
#
#####

# «dancer»  (to ".dancer")

# (find-status   "dancer-ircd")
# (find-vldifile "dancer-ircd.list")
# (find-udfile   "dancer-ircd/")
# (find-status   "dancer-ircd-doc")
# (find-vldifile "dancer-ircd-doc.list")
# (find-udfile   "dancer-ircd-doc/")
# (find-udfile "dancer-ircd/dancer-oper-guide.txt.gz")
# (find-udfile "dancer-ircd/dancer-user-guide.txt.gz")

# file:///usr/share/doc/dancer-ircd/dancer-oper-guide.html/index.htm
# file:///usr/share/doc/dancer-ircd-doc/dancer-oper-guide.html
# file:///usr/share/doc/dancer-ircd-doc/dancer-user-guide.html

# file:///usr/share/doc/dancer-ircd/dancer-oper-guide.html/index.htm
# file:///usr/share/doc/dancer-ircd/dancer-user-guide.html/index.htm



firefox /usr/share/doc/dancer-ircd/dancer-oper-guide/html/index.html &
firefox /usr/share/doc/dancer-ircd/dancer-user-guide/html/index.html &

# (find-man "8 dancer-ircd")
# (find-udfile "dancer-ircd/README.Debian")




#####
#
# connecting to localhost with rcirc
# 2006jul14
#
#####

# «rcirc-localhost»  (to ".rcirc-localhost")

(rcirc-connect "localhost" "6667" "edrx"
               "Eduardo Ochs <http://angg.twu.net/>"
               "Eduardo Ochs <http://angg.twu.net/>"
	       nil)



#####
#
# IRC protocol: rfc1459
# 2004oct11
#
#####

# «irc-protocol»  (to ".irc-protocol")
# IRC protocol: (find-rfcfile "rfc1459.txt")
#          and: (find-rfcfile "rfc2810.txt")
# (find-fline "/etc/services")
# http://ezine.daemonnews.org/199907/irchack.html
# (erc-select  :server "127.0.0.1")
# (with-current-buffer "127.0.0.1:ircd" (erc-cmd-JOIN "a-channel"))
#*

eeg -f =(<<'%%%'
PASS pass
NICK nick
USER user localhost localhost :I.m the user "user", with nick "nick"
JOIN #a-channel
NAMES #a-channel
PRIVMSG #a-channel :Hi guys...Sup?
WHOIS nick
WHOIS edrx
QUIT
%%%) telnet 127.0.0.1 6667 \
  |& tee ~/o

# (find-fline "~/o")

#*





#####
#
# identd
# 2004oct11
#
#####

# «identd»  (to ".identd")
# Connecting to dancer-ircd takes a long time if there's no identd
# running.
#
# (erc-select :server "127.0.0.1")

# (find-available "nullidentd")
# (find-status   "nullidentd")
# (find-vldifile "nullidentd.list")
# (find-udfile   "nullidentd/")
# (find-udfile "nullidentd/README")
# (find-man  "8 nullidentd")
# (find-man  "8 nullidentd" "foobar")

# Identd protocol: (find-rfcfile "rfc1413.txt")

# There isn't any type of QUIT command in nullidentd, but it will exit
# with a timeout error after a few seconds.
#*
eeg -f =(<<'%%%'
2222, 23

QUIT
%%%) telnet 127.0.0.1 113

#*

# (find-available "slidentd")







#####
#
# tkirc
# 2000jun10
#
#####

# «tkirc»  (to ".tkirc")

# (find-status "tkirc")
# (find-vldifile "tkirc.list")
# (find-fline "/usr/share/doc/tkirc/")
# (find-fline "/usr/share/doc/tkirc/readme.gz")
# (find-fline "/usr/share/doc/tkirc/sample.tkircrc.gz")
# (find-fline "/usr/bin/tkirc")

# (find-fline "~/.tkircrc")





#####
#
# ircII
# 2000jun10
#
#####

# (find-status "ircii")
# (find-vldifile "ircii.list")
# (find-fline "/usr/doc/ircii/")

# (eeman "ircII")

cd /usr/share/ircII/
agrep -i rfc $(find *)
for i in $(find * -type f | grep 'gz$'); do
  echo $i:
  zcat $i | grep -i rfc
done




#####
#
# bitchX
# 2000jun10
#
#####

# (find-status "bitchx")
# (find-vldifile "bitchx.list")
# (find-fline "/usr/doc/bitchx/")

cd /usr/doc/bitchx/
agrep -i rfc $(find *)
for i in $(find * -type f | grep 'gz$'); do
  echo $i:
  zcat $i | grep -i rfc
done




#####
#
# tinyirc
# 2000jun10
#
#####

# (find-status "tinyirc")
# (find-vldifile "tinyirc.list")
# (find-fline "/usr/doc/tinyirc/")




#####
#
# liece (emacs IRC client)
# 2000jun10
#
#####

# (find-status "liece")
# (find-vldifile "liece.list")
# (find-fline "/usr/doc/liece/")
# (find-fline "/usr/share/emacs/site-lisp/liece/")

# (find-status "liece-dcc")
# (find-vldifile "liece-dcc.list")
# (find-fline "/usr/doc/liece-dcc/")



#####
#
# zenirc (emacs IRC client)
# 2000jun10
#
#####

# «zenirc»  (to ".zenirc")
# (find-status "zenirc")
# (find-vldifile "zenirc.list")
# (find-fline "/usr/doc/zenirc/")
# (find-fline "/usr/doc/zenirc/RFC1459.gz")
# (find-fline "/usr/doc/zenirc/examples/")
# (find-fline "/usr/doc/zenirc/examples/zenirc-example.el")
# (find-fline "/usr/doc/zenirc/zenirc.ascii.gz")

# (code-c-d "zenirc" "/usr/share/emacs/site-lisp/zenirc/" "zenirc")
# (find-zenircfile "")
# (find-zenircfile "zenirc.el")
# (find-zenircnode "The zenirc-server-alist way." "setq zenirc-server-alist")

(setq zenirc-server-alist 
      '(("irc.debian.org" nil nil "grothendieck" nil)))
(zenirc)
(load-library "zenirc-format")
(load-library "zenirc-color")

# (find-zenircnode "Non ZenIRC specific commands.")
# (find-zenircnode "ZenIRC specific commands." "/query")

# (find-zenircfile "")
# (find-zenircfile "zenirc-format.el")
# (find-zenircfile "zenirc-color.el")
# (find-zenircfile "zenirc-play.el")


cd /usr/share/emacs/site-lisp/zenirc/
etags *.el





#####
#
# Some samples of IRC discussions
# 2000aug27
#
#####

rm -Rv /tmp/ircdocs/
mkdir  /tmp/ircdocs/
print -l       /var/lib/dpkg/info/*{irc,bitch}*.list
for i in $(cat /var/lib/dpkg/info/*{irc,bitch}*.list); do
  if [[ -f $i ]]; then
    cp -Pv $i /tmp/ircdocs/
  fi
done

cd /tmp/ircdocs/
gzip -dvr *

cd /tmp/ircdocs/
agrep -i wasting $(find * -type f)
agrep -i 'hi ' $(find * -type f) |& l -S


# (find-fline "/usr/doc/zenirc/FAQ.gz")
# (find-fline "/usr/doc/zenirc/tour.of.irc.gz" "A greeting channel is a channel where >50%")




#####
#
# xchat
# 2000oct18
#
#####

# «xchat»  (to ".xchat")
# (find-status "xchat")
# (find-vldifile "xchat.list")
# (find-fline "/usr/doc/xchat/")

# (find-status "xchat-common")
# (find-vldifile "xchat-common.list")
# (find-fline "/usr/doc/xchat-common/")

# (find-status "xchat-text")
# (find-vldifile "xchat-text.list")
# (find-fline "/usr/doc/xchat-text/")

# (find-fline "/usr/share/doc/xchat-common/html/")
# (find-fline "/usr/doc/xchat-common/html/")
# (find-w3 "/usr/doc/xchat-common/html/xchat.html")

# (find-fline "~edrx/.xchat/")
# (find-fline "~edrx/.xchat/commands.conf" "join5")
# (find-fline "~edrx/.xchat/xchat.conf" "nickname2")



#####
#
# registering a nickname
# 2000nov16 / 2008sep19
#
#####

# «registering»  (to ".registering")
/msg nickserv help register
/msg nickserv register XXXXX

# (find-fline "~edrx/.xchat/serverlist.conf" "irc.debian.org")
# Or in the button "edit" of the connect menu

/msg chanserv help
/msg chanserv help register
/ctcp tcn version

/me for messages with the pink ball


*** 506 #lua Please register with services and use the IDENTIFY
        command (/msg nickserv help) to speak in this channel
/msg nickserv help
-NickServ- ***** NickServ Help *****
-NickServ- NickServ allows users to 'register' a nickname, and stop
-NickServ- others from using that nick. NickServ allows the owner
           of a
-NickServ- nickname to disconnect a user from the network that is
           using
-NickServ- their nickname.
-NickServ-  
-NickServ- For more information on a command, type:
-NickServ- /msg NickServ help <command>
-NickServ- For a verbose listing of all commands, type:
-NickServ- /msg NickServ help commands
-NickServ-  
-NickServ- The following commands are available:
-NickServ- GHOST           Reclaims use of a nickname.
-NickServ- GROUP           Adds a nickname to your account.
-NickServ- UNGROUP         Removes a nickname from your account.
-NickServ- IDENTIFY        Identifies to services for a nickname.
-NickServ- INFO            Displays information on registrations.
-NickServ- LISTCHANS       Lists channels that you have access to.
-NickServ- REGISTER        Registers a nickname.
-NickServ- SET             Sets various control flags.
-NickServ- RELEASE         Releases a services enforcer.
-NickServ-  
-NickServ- Other commands: DROP, HELP, ID, LOGOUT, MYACCESS,
           SETPASS, 
-NickServ-                 ACC, STATUS, TAXONOMY, VERIFY
-NickServ- ***** End of Help *****

<edrx> register edrx
-NickServ- Insufficient parameters for REGISTER.
-NickServ- Syntax: REGISTER <password> <email>
(edrx) register P4ssw0rd eduardoochs@gmail.com

/msg NickServ VERIFY REGISTER edrx2 qmpqklhcolym
<edrx2> VERIFY REGISTER edrx2 qmpqklhcolym
-NickServ- edrx2 has now been verified.
-NickServ- Thank you for verifying your e-mail address! You have
           taken steps in ensuring that your registrations are not
           exploited.





#####
#
# epic
# 2000dec04
#
#####

# (find-status "epic")
# (find-vldifile "epic.list")
# (find-fline "/usr/share/doc/epic/")
# (find-fline "/usr/lib/epic/")




#####
#
# cgi:irc
# 2006jun30
#
#####

# «cgiirc»  (to ".cgiirc")
# http://cgiirc.sourceforge.net/
# http://optusnet.dl.sourceforge.net/sourceforge/cgiirc/cgiirc-0.5.9.tar.gz
# (code-c-d "cgiirc" "~/usrc/cgiirc-0.5.9/")
# (find-cgiircfile "")
# (find-cgiircfile "README")
# (find-cgiircfile "cgiirc.config")
# (find-cgiircfile "cgiirc.config.full")
#*
rm -Rv ~/usrc/cgiirc-0.5.9/
tar -C ~/usrc/ -xvzf \
  $S/http/optusnet.dl.sourceforge.net/sourceforge/cgiirc/cgiirc-0.5.9.tar.gz
cd     ~/usrc/cgiirc-0.5.9/
mv -iv cgiirc.config cgiirc.config.orig

# Prepare to run it locally:

cat > cgiirc.config <<'---'
# (find-cgiircfile "")
# (find-cgiircfile "cgiirc.config.orig")
default_server = localhost
default_port = 6667
default_channel = #emacs
default_name = CGI:IRC User
default_nick=CGI???
image_path = images
script_nph = nph-irc.cgi
script_form = client-perl.cgi
script_login = irc.cgi
#
# (find-cgiircfile "cgiirc.config.full")
allow_non_default = 1
access_channel = .*
session_timeout = 18000
---

#*
# (find-fline "/var/www/")
ln -sf ~/usrc/cgiirc-0.5.9 /var/www/cgiirc
# Acess one of these URLs to 
# http://localhost/
# http://localhost/cgiirc/
# http://localhost/cgiirc/irc.cgi

#*





#####
#
# cgi:irc at twu
# 2006jul03
#
#####

# «cgiirc-twu»  (to ".cgiirc-twu")
* (eebgTWU)
zsh
rm -Rv   ~/slow_html/tmp/cgiirc/
rm -Rv ~/public_html/tmp/cgiirc/
mkdir  ~/public_html/tmp/cgiirc/
cd     ~/public_html/tmp/cgiirc/
wget http://optusnet.dl.sourceforge.net/sourceforge/cgiirc/cgiirc-0.5.9.tar.gz
ln -s . cgiirc-0.5.9
tar -xvzf cgiirc-0.5.9.tar.gz
rm -v   cgiirc-0.5.9
laf

mv -iv cgiirc.config cgiirc.config.orig
cat > cgiirc.config <<'---'
default_server = irc.freenode.net
default_port = 6667
default_channel = #emacs
default_name = Eduardo Ochs
default_nick=edrx??
image_path = images
script_nph = nph-irc.cgi
script_form = client-perl.cgi
script_login = irc.cgi
allow_non_default = 1
access_channel = .*
session_timeout = 18000
---

rm -Rv ~/slow_html/tmp/cgiirc/
mv -iv ~/public_html/tmp/cgiirc/ ~/slow_html/tmp/

# (find-node "(tar)")
# (find-sh "tar --help" "--strip-path=")

# http://angg.twu.net/ tmp/cgiirc/irc.cgi





#####
#
# cgi:irc: disconnects (in thttpd)
# 2006jun30
#
#####

# «cgiirc-disconnects»  (to ".cgiirc-disconnects")
# Cgiirc displays this:
# *** Disconnected from IRC (click to reconnect)
# From: http://cvs.cgiirc.org/wiki?p=StreamProblems

CGI:IRC relies on 'streaming' so it can display the text in the main
window. To check that streaming is working there is a script at
http://cgiirc.sourceforge.net/files/teststream.pl.txt (rename it to
teststream.cgi and set permissions to 755 on it).

If streaming is not working there are several areas where the problem
can be:

Server
------
The main script is a nph (non-parsed header) script, some web servers
(notably Cobalt Raqs, older versions of lighttpd and early versions of
Apache 2) don't support these, however this is easily worked around,
simply rename nph-irc.cgi to something like main.cgi and update
script_nph in cgiirc.config.


# From: http://cvs.cgiirc.org/wiki?p=InstallationIssues

Connection dies when chat is idle
---------------------------------
This happenes a lot for many reasons, but you might want to check if
your apache has mod_security which you should disable.





#####
#
# rcirc-print
# 2006oct05
#
#####

# «rcirc-print»  (to ".rcirc-print")
;; (find-angg ".emacs" "defalias-hard-maybe")
;; (find-efunction 'rcirc-print)
(defalias-hard-maybe 'rcirc-print-orig 'rcirc-print)

(defun rcirc-print (process sender response target text &optional activity)
  "Print TEXT in the buffer associated with TARGET.
Format based on SENDER and RESPONSE.  If ACTIVITY is non-nil,
record activity.
This is the debug version (by Edrx) that calls `rcirc-print-orig'.
Cancel with: (defalias-hard 'rcirc-print 'rcirc-print-orig)"
  (message "%S" `(rcirc-print-orig ,process ,sender ,response ,target ,text ,activity))
  (rcirc-print-orig process sender response target text activity))

;; (rcirc-print-orig #<process im.bitlbee.org> "marcelo" #("QUIT" 0 4 (face (rcirc-server))) "&bitlbee" "Leaving..." nil)
;; (rcirc-print-orig #<process irc.freenode.net> "edrx" "PRIVMSG" "#eev" "hi" nil)
;; (rcirc-print-orig #<process im.bitlbee.org> "root" #("MODE" 0 4 (face (rcirc-server))) "&bitlbee" "-v danielle" nil)
;; (rcirc-print-orig #<process irc.freenode.net> "bpalmer`" #("JOIN" 0 4 (face (rcirc-server))) "#emacs" "" nil)
;; (rcirc-print-orig #<process im.bitlbee.org> "biabrum" #("JOIN" 0 4 (face (rcirc-server))) "&bitlbee" "" nil)
;; (rcirc-print-orig #<process im.bitlbee.org> "root" #("MODE" 0 4 (face (rcirc-server))) "&bitlbee" "+v biabrum" nil)




#####
#
# ii and sic
# 2008jan11
#
#####

# «ii-and-sic»  (to ".ii-and-sic")
# http://www.suckless.org/wiki/tools/irc/irc_it
# http://www.suckless.org/wiki/tools/irc/simple_irc_client
# http://www.suckless.org/download/ii-1.3.tar.gz
# http://www.suckless.org/download/sic-0.9.tar.gz
#*
rm -Rv ~/usrc/ii-1.3/
tar -C ~/usrc/ -xvzf \
  $S/http/www.suckless.org/download/ii-1.3.tar.gz
cd     ~/usrc/ii-1.3/

#*
rm -Rv ~/usrc/sic-0.9/
tar -C ~/usrc/ -xvzf \
  $S/http/www.suckless.org/download/sic-0.9.tar.gz
cd     ~/usrc/sic-0.9/

#*
# (code-c-d "sic" "~/usrc/sic-0.9/")
# (find-sicfile "")
# (code-c-d "ii" "~/usrc/ii-1.3/")
# (find-iifile "")




#####
#
# ngircd
# 2012may16
#
#####

# «ngircd»  (to ".ngircd")
http://ngircd.barton.de/index.php.en




#####
#
# Registering a channel (#eev)
# 2012nov25
#
#####

# «registering-a-channel» (to ".registering-a-channel")
# (find-fline "~/LOGS/2012nov25.eev")
# (find-fline "~/LOGS/2012nov25.freenode")
# http://blog.freenode.net/2012/06/group-registration-closure/

# /msg chanserv register #eev
#  -->
<edrx> register #eev
-ChanServ- #eev is now registered to edrx.
-ChanServ-  
-ChanServ- Channel guidelines can be found on the freenode website
-ChanServ- (http://freenode.net/channel_guidelines.shtml).
-ChanServ- freenode is a service of Peer-Directed Projects Center,
           a
-ChanServ- not-for-profit organisation registered in England and
           Wales.
-ChanServ- This is a primary namespace channel as per
-ChanServ- http://freenode.net/policy.shtml#primarychannels
-ChanServ- If you do not own this name, please consider
-ChanServ- dropping #eev and using ##eev instead.
(edrx) 

# /msg ChanServ help set guard
#  -->
<edrx> help set guard
-ChanServ- ***** ChanServ Help *****
-ChanServ- Help for SET GUARD:
-ChanServ-  
-ChanServ- SET GUARD allows you to have ChanServ join your channel.
-ChanServ-  
-ChanServ- Syntax: SET <#channel> GUARD ON|OFF
-ChanServ-  
-ChanServ- Example:
-ChanServ-     /msg ChanServ SET #atheme GUARD ON
-ChanServ- ***** End of Help *****
(edrx) 

/topic News at: http://angg.twu.net/#eev
*** 482 #eev You're not a channel operator




#####
#
# Channel Operators
# 2012dec01
#
#####

# «operator» (to ".operator")
# http://www.irchelp.org/irchelp/opguide.html
# http://www.irchelp.org/irchelp/faq.html
# http://www.irchelp.org/irchelp/ircprimer.html
# http://www.irchelp.org/irchelp/irctutorial.html
# http://www.quakenet.org/help/general/nobody-has-ops-in-my-channel-what-can-i-do
# http://answers.yahoo.com/question/index?qid=20090121234903AAVg8ZW

<Tau> usa o /chanserv op #eev edrx
<Tau> ou o /chanserv topic #eev novo_topico




#####
#
# ircds (more recent than dancer)
# 2013sep05
#
#####

# «ircds» (to ".ircds")
# (find-zsh "availabledebs | sort | grep ircd")

*** cameron.freenode.net 001 Welcome to the freenode Internet Relay
                             Chat Network edrx
*** 002 Your host is cameron.freenode.net[84.240.3.129/6667],
        running version ircd-seven-1.1.3
*** 003 This server was created Sat Feb 25 2012 at 17:22:16 EET
*** 004 cameron.freenode.net ircd-seven-1.1.3 DOQRSZaghilopswz
        CFILMPQSbcefgijklmnopqrstvz bkloveqjfI

# http://freenode.net/seven.shtml
# http://www.atheme.org/project/charybdis
# http://en.wikipedia.org/wiki/Comparison_of_IRC_daemons
# http://irc.netsplit.de/




#####
#
# SASL
# 2019apr05
#
#####

# «SASL» (to ".SASL")

freenode Notice -- You need to identify via SASL to use this server

-adams.freenode.net- *** Looking up your hostname...
-adams.freenode.net- *** Checking Ident
-adams.freenode.net- *** Couldn't look up your hostname
-adams.freenode.net- *** No Ident response
-adams.freenode.net- *** Notice -- You need to identify via SASL to
                     use this server
!!! Closing Link: 2804:18:500e:5b7d:e409:9219:7575:4027 (SASL
    access only)
!!! irc.freenode.net: connection broken by remote peer (closed)
(edrx) 

# https://freenode.net/kb/answer/sasl
# https://freenode.net/kb/answer/registration
# https://github.com/nicferrier/shoes-off/issues/6
# https://emacs.stackexchange.com/questions/tagged/rcirc?sort=unanswered

<edrx> hey, anyone here uses SASL authentication in rcirc? I
       discovered that when I try to connect to freenode using USB
       tethering on my cell phone I need SASL...
<edrx> I googled around and the one page that seems/seemed to have
       detailed instructions is
       http://www.erkafil.com.tr/vltoiexz/fbiekxl.php?altr=Using-Emacs-with-RCIRC-and-easygpg-for-automatic-authenthication
       - that is 404-ing.



#####
#
# SASL-circe
# 2019aug25
#
#####

# «SASL-circe» (to ".SASL-circe")
# (find-es "emacs" "rudybot")
# (find-es "emacs" "circe")
# (find-fline "~/LOGS/2019aug25.emacs")

<edrx> hey, is there anyone here who uses rcirc and who has managed
       to identify via SASL at freenode?
<edrx> I am in a cafe where I can only scp if I plug my cellphone
       to the computah and turn on tethering... but then freenode
       starts to ask for identification via SASL, and the
       instructions that I found on that are too terse... my notes
       are here: http://angg.twu.net/e/irc.e.html#SASL
<edrx> so here I can't use scp without disconnecting from irc =(
<offby1> I use circe but I imagine the steps are analogous
<offby1> lemme see if I can figure out how I did it.
<offby1> I also taught rudybot to do it
<offby1> I think both circe and rudybot are using the sophisticated
         encryption algorithm known as "rot13", so it's tewtally
         insecure
<edrx> thanks!!!!
<offby1> circe: http://ix.io/1TsX
<offby1> nothing to it, really
<offby1> https://gitlab.com/offby1/rudybot/commit/69098f905185feeb66c672041c615abec90dbbb5
         <-- not self-explanatory but you can probably figure it
         out

(let ((freenode-password-file
       (expand-file-name
	(concat user-emacs-directory "freenode-password"))))
  (when (file-readable-p freenode-password-file)
    (setq circe-network-options
	  `(("Freenode"
	     :sasl-username "offby1"
	     :sasl-password  ,(with-temp-buffer
				(insert-file-contents
				 freenode-password-file)
				(buffer-string)))))))

> offby1: hey, thanks, I am using circe now, and I think that I just
    have to redefine irc-send-AUTHENTICATE to add logging to discover
    how to authenticate with SASL in a low-level way =)





#####
#
# charybdis
# 2019aug25
#
#####

# «charybdis» (to ".charybdis")
# (find-es "emacs" "circe")
# (find-es "emacs" "circe" "charybdis")
# https://github.com/charybdis-ircd/charybdis

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# rm -Rfv ~/usrc/charybdis/
cd      ~/usrc/
git clone https://github.com/charybdis-ircd/charybdis
cd      ~/usrc/charybdis/

git branch --list -a
git for-each-ref
PAGER=cat git log --oneline --graph --all -20

# (find-fline "~/usrc/")
# (find-fline "~/usrc/charybdis/")
# (find-gitk  "~/usrc/charybdis/")

# (code-c-d "charybdis" "~/usrc/charybdis/")
# (find-charybdisfile "")
# (find-charybdisgrep "grep --color -nirH -e sasl doc/*")
# (find-charybdisfile "doc/features/sasl.txt")



#####
#
# irssi
# 2021dec04
#
#####

# «irssi»  (to ".irssi")
# (find-status   "irssi")
# (find-vldifile "irssi.list")
# (find-udfile   "irssi/")



#####
#
# webchat
# 2019apr05
#
#####

# «webchat» (to ".webchat")
# (find-esgrep "grep --color -nH -e freenode *.e | grep http")
# https://webchat.freenode.net/?channels=eev
# https://webchat.freenode.net/?channels=libreboot



#####
#
# weechat
# 2021dec06
#
#####

# «weechat»  (to ".weechat")




#####
#
# irccloud
# 2020mar28
#
#####

# «irccloud» (to ".irccloud")
# (find-es "agda" "dependent")
# https://www.irccloud.com/irc/freenode/channel/%23%23categorytheory
# https://www.irccloud.com/irc/freenode/channel/%23%23dependent




#####
#
# liberachat
# 2021jun12
#
#####

# «liberachat»  (to ".liberachat")
# https://libera.chat/
# https://web.libera.chat/

https://en.wikipedia.org/wiki/Freenode#Ownership_change_and_conflict

Emacs-related IRC channels moving to Libera.Chat:
https://lists.gnu.org/archive/html/emacs-tangents/2021-06/msg00001.html
https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00005.html
https://www.fsf.org/news/fsf-and-gnu-move-official-irc-channels-to-libera-chat-network



#####
#
# MemoServ
# 2022nov21
#
#####

# «MemoServ»  (to ".MemoServ")

-MemoServ- ***** MemoServ Help *****
-MemoServ-
-MemoServ- MemoServ allows users to send memos to registered users.
-MemoServ-
-MemoServ- The following commands are available:
-MemoServ-
-MemoServ- DEL  Alias for DELETE
-MemoServ- DELETE  Deletes memos.
-MemoServ- FORWARD  Forwards a memo.
-MemoServ- HELP  Displays contextual help information.
-MemoServ- IGNORE  Ignores memos.
-MemoServ- LIST  Lists all of your memos.
-MemoServ- READ  Reads a memo.
-MemoServ- SEND  Sends a memo to a user.
-MemoServ- SENDOPS  Sends a memo to all ops on a channel.
-MemoServ-
-MemoServ- For more information on a MemoServ command, type:
-MemoServ- /msg MemoServ HELP <command>
-MemoServ-
-MemoServ- ***** End of Help *****







http://0branch.com/highlight/snippets/rcirc-dot-emacs.el
http://wiki.znc.in/ZNC

http://www.jibble.org/irc-analysis/


matrix-client.el | Matrix.org
https://matrix.org/docs/projects/client/matrix-client-el

https://koshka.love/babel/irc-forever.html
https://susam.net/simplicity-of-irc.html
https://news.ycombinator.com/item?id=39689090 Simplicity of IRC (2022) (susam.net)




#  Local Variables:
#  coding:               utf-8-unix
#  modes:                (fundamental-mode emacs-lisp-mode)
#  End: