Difference between revisions of "IRC channel"

From HaskellWiki
Jump to navigation Jump to search
(move silcnet almost-spam to bottom of page. would like to know if this channel really exists?)
(→‎Related channels: add #haskell-id)
(227 intermediate revisions by 50 users not shown)
Line 2: Line 2:
 
of users among various irc networks.
 
of users among various irc networks.
   
The Freenode IRC network has a #haskell channel, as of November 2005, we
+
The Freenode IRC network hosts the very large #haskell channel, and we've had
  +
up to 1046
average about one hundred eighty people, and we have some excellent
 
  +
concurrent users, making the channel consistently
discussions. As of 2006-01 our high water mark is 206 unique clients
 
  +
[http://irc.netsplit.de/channels/details.php?room=%23haskell&net=freenode one of the most popular]
(though that's including at least three bots, including [[Lambdabot]]).
 
  +
of the thousands of channels on freenode. One famous
 
  +
resident is [[Lambdabot]], another is [http://hpaste.org hpaste] (see
Currently we have about half newbies learning from the experienced half,
 
  +
the [[#Bots|Bots]] section below).
but any Haskell related conversation is welcome.
 
   
 
The IRC channel can be an excellent place to learn more about Haskell,
 
The IRC channel can be an excellent place to learn more about Haskell,
Line 14: Line 14:
 
new developments in the Haskell world first appear on the irc channel.
 
new developments in the Haskell world first appear on the irc channel.
   
  +
Since 2009, the Haskell channel has grown large enough that we've split it in two parts:
== History ==
 
   
The #haskell channel appeared in the late 90s, and really got going
+
* #haskell, for all the usual things
  +
* #haskell-in-depth , for those seeking in depth, or more theoretical discussion
in early 2001, with the help of Shae Erisson (aka shapr). At least a
 
  +
year earlier, in 2000, Julian Assange
 
  +
As always, #haskell remains the primary place for new user questions.
[http://www.cse.unsw.edu.au/~dons/haskell-1990-2000/msg07185.html created] irc.haskell.org,
 
  +
it seems not to have flourished.
 
  +
{| border="0" align="right"
  +
|+ '''#haskell visualized'''
  +
|-
  +
| [[Image:Haskell-current.png|thumb|The social graph, Jan 2008]]
  +
| [[Image:Irc-raw.png|thumb|Daily traffic since 2004]]
  +
|-
  +
| [[Image:Nick-activity.png|thumb|Growth]]
  +
| [[Image:Haskell-wordle-irc.png|thumb|Noun map]]
  +
|}
   
 
== Getting there ==
 
== Getting there ==
   
If you point your irc client to [irc://chat.freenode.net/haskell chat.freenode.net] and then join the #haskell channel, you'll be there.
+
If you point your irc client to [irc://chat.freenode.net/haskell chat.freenode.net] and then join the #haskell channel, you'll be there. Alternately, you can try http://java.freenode.net/ or http://webchat.freenode.net/ which connects inside the browser.
   
  +
Example, using [http://www.irssi.org/ irssi]:
== Related Info ==
 
  +
  +
$ irssi -c chat.freenode.net -n myname -w mypassword
  +
/join #haskell
  +
  +
Tip, if you're using Emacs to edit your Haskell sources then why not use it to chat about Haskell? Check out [http://www.emacswiki.org/cgi-bin/wiki/EmacsIRCClient ERC], The Emacs IRC client. Invoke it like this and follow the commands:
  +
  +
M-x erc-select
  +
...
  +
/join #haskell
  +
  +
[[Image:Irc--haskell-screenshot.png|frame|A screenshot of an irssi session in #haskell]]
  +
  +
== Principles ==
  +
  +
The #haskell channel is a very friendly, welcoming place to hang out,
  +
teach and learn. The goal of #haskell is to encourage learning and
  +
discussion of Haskell, functional programming, and programming in
  +
general. As part of this we welcome newbies, and encourage teaching of
  +
the language.
  +
  +
Part of the #haskell success comes from the fact that the community
  +
is quite tight knit — we know each other — it's not just a homework
  +
channel. As a result, many collaborative projects have arisen between
  +
Haskell irc channel citizens.
  +
  +
To maintain the friendly, open culture, the following is required:
  +
  +
* Low to zero tolerance for ridiculing questions. Insulting new users is unacceptable. New Haskell users should feel entirely comfortable asking questions.
  +
  +
* Helpful answers should be encouraged with <code>name++</code> karma points, in public, as a reward for providing a good answer.
  +
  +
* Avoid getting frustrated by negative comments and ambiguous questions. Approach them by asking for details (i.e. [http://en.wikipedia.org/wiki/Socratic_method Socratic questioning]), rather than challenging the competence of the writer (ad hominem). As the channel grows, we see a diverse range of people with different programming backgrounds getting accustomed to Haskell. Be patient and take satisfaction from spreading knowledge.
  +
  +
== History ==
  +
  +
The #haskell channel appeared in the late 90s, and really got going
  +
in early 2001, with the help of Shae Erisson (aka shapr).
  +
  +
A fairly extensive analysis of the traffic on #haskell over the years is
  +
[http://www.cse.unsw.edu.au/~dons/irc/ kept here]
  +
  +
== Related channels ==
   
 
In addition to the main Haskell channel there are also:
 
In addition to the main Haskell channel there are also:
   
  +
{| border="1" cellspacing="0" cellpadding="5" align="center"
* #haskell.es - Spanish speakers
 
  +
! Channel
* #haskell.it - Italian speakers
 
  +
! Purpose
* #haskell.se - Swedish speakers
 
  +
|-
* #gentoo-haskell - Gentoo/Linux specific
 
* #haskell-overflow - Overflow conversations
+
| #haskell-br
  +
| Brazilian Portuguese (pt_BR) speakers
* #haskell-blah - Haskell people talking about anything except Haskell itself
 
  +
|-
  +
| #haskell.cz
  +
| Czech speakers (UTF-8)
  +
|-
  +
| #haskell.de
  +
| German speakers
  +
|-
  +
| #haskell.dut
  +
| Dutch speakers
  +
|-
  +
| #haskell.es
  +
| Spanish speakers
  +
|-
  +
| #haskell.fi
  +
| Finnish speakers
  +
|-
  +
| #haskell-fr (note the hyphen!)
  +
| French speakers
  +
|-
  +
| #haskell.hr
  +
| Croatian speakers
  +
|-
  +
| #haskell-id (note the hyphen!)
  +
| Indonesian speakers
  +
|-
  +
| #haskell.it
  +
| Italian speakers
  +
|-
  +
| #haskell.jp
  +
| Japanese speakers
  +
|-
  +
| #haskell.no
  +
| Norwegian speakers
  +
|-
  +
| #haskell.pt
  +
| Portuguese speakers
  +
|-
  +
| #haskell-pl
  +
| Polish speakers
  +
|-
  +
| #haskell.ru
  +
| Russian speakers. Seems that most of them migrated to Jabber conference (haskell@conference.jabber.ru).
  +
|-
  +
| #haskell_ru
  +
| Russian speakers again, in UTF-8. For those, who prefer good ol' IRC channel with a lambdabot.
  +
|-
  +
| #haskell.se
  +
| Swedish speakers
  +
|-
  +
| #haskell.tw
  +
| Chinese speakers (mainly in Taiwan)
  +
|-
  +
| #haskell-blah
  +
| Haskell people talking about anything except Haskell itself
  +
|-
  +
| #haskell-game
  +
| The hub for Haskell-based [[Game Development|game development]]
  +
|-
  +
| #haskell-in-depth
  +
| slower paced discussion of use, theory, implementation etc with no monad tutorials!
  +
|-
  +
| #haskell-iphone
  +
| Haskell-based [[iPhone]] development
  +
|-
  +
| #haskell-apple
  +
| projects that target iOS or OS X using Haskell.
  +
|-
  +
| #haskell-lisp
  +
| [[Haskell Lisp]] - projects that are creating Lisps written in Haskell, or Haskell implementations written in Lisps.
  +
|-
  +
| #haskell-llvm
  +
| For projects using Haskell and LLVM
  +
|-
  +
| #haskell-overflow
  +
| Overflow conversations
  +
|-
  +
| #haskell-web
  +
| Friendly, practical discussion of haskell web app/framework/server development
  +
|-
  +
| #haskell-robotics
  +
| Discussion about the use of Haskell for robotics applications.
  +
|-
  +
| '''Platform-specific:'''
  +
|
  +
|-
  +
| #arch-haskell
  +
| [[Arch Linux]]/ specific Haskell conversations
  +
|-
  +
| #fedora-haskell
  +
| [[Fedora]] Haskell SIG
  +
|-
  +
| #gentoo-haskell
  +
| [[Gentoo]]/Linux specific Haskell conversations
  +
|-
  +
| '''Projects using haskell:'''
  +
|
  +
|-
  +
| #darcs
  +
| [[Darcs]] revision control system
  +
|-
  +
| #diagrams
  +
| [[Diagrams]] EDSL
  +
|-
  +
| #hackage
  +
| Haskell's software distribution infrastructure
  +
|-
  +
| #haskell-lens
  +
| [[Lens]] discussions
  +
|-
  +
| #happs
  +
| [http://happstack.com Happstack] web framework
  +
|-
  +
| #hledger
  +
| [http://hledger.org hledger] accounting tools and library
  +
|-
  +
| #leksah
  +
| [http://leksah.org Leksah] IDE for Haskell development
  +
|-
  +
| #perl6
  +
| [http://www.pugscode.org Perl 6] development (plenty of Haskell chat there too)
  +
|-
  +
| #snapframework
  +
| [http://snapframework.com/ Snap] web framework
  +
|-
  +
| #xmonad
  +
| [http://xmonad.org Xmonad] tiling window manager
  +
|-
  +
| #yesod
  +
| [http://yesodweb.com Yesod] web framework
  +
|-
  +
| #chicagohaskell
  +
| [http://chicagohaskell.com Chicago Haskell] programmers group
  +
|}
  +
  +
== Logs ==
  +
  +
'''Logs''' are kept at http://tunes.org/~nef/logs/haskell/ and can be searched at http://ircbrowse.net/browse/haskell
  +
  +
<!-- anywhere else? ircbrowse.com is a goner, apparently -->
  +
  +
== Bots ==
  +
  +
There are various bots on the channel. Their names and usage are described here.
  +
  +
=== lambdabot ===
  +
  +
[[Lambdabot]] is both the name of a software package and a bot on the channel. It provides many useful services for visitors to the IRC channel. It is available as a haskell package and can be integrated into ghci. Details on the software are found on a [[Lambdabot|separate wiki page]].
  +
  +
Here is its interface for the IRC user:
  +
  +
lambdabot's commands are prepended by a '@' sign.
  +
  +
{| border="1" cellspacing="0" cellpadding="5" align="center"
  +
! Command
  +
! Usage
  +
|-
  +
| @help
  +
| display help to other commands, but help text is not available for all commands.
  +
|-
  +
| @type EXPR or ':t' EXPR
  +
| shows the type of an expression
  +
|-
  +
| @kind TYPECONSTRUCTOR
  +
| shows the kind of a type constructor
  +
|-
  +
| @run EXPR or '>' EXPR
  +
| evaluates EXPR
  +
|-
  +
| @pl FUNCTION
  +
| shows a [[pointfree]] version of FUNCTION
  +
|-
  +
| @pointful FUNCTION or '@unpl' FUNCTION
  +
| shows a 'pointful' version of FUNCTION
  +
|-
  +
| @tell <nick> <msg> -- same as @ask
  +
| Next time <nick> speaks in channel they will be notified they have a message pending and how to receive it.
  +
|}
  +
  +
=== preflex ===
  +
  +
is the name of a lambdabot with more commands/plugins enabled. It is run by ?? To talk to preflex, write <tt>preflex: command ARGS</tt>
  +
  +
{| border="1" cellspacing="0" cellpadding="5" align="center"
  +
! Command
  +
! Usage
  +
|-
  +
| help COMMAND
  +
| displays help to other commands.
  +
|-
  +
| list
  +
| lists all plugins with their commands
  +
|-
  +
| NICK++ / NICK--
  +
| in/decrements the karma of NICK.
  +
|-
  +
| karma NICK
  +
| shows the karma of NICK
  +
|-
  +
| seen NICK
  +
| shows information about the last message of a user
  +
|-
  +
| tell / ask
  +
| sends NICK MSG a message when she becomes active.
  +
|-
  +
| xseen
  +
| ''see 'seen' ?? any difference ?''
  +
|-
  +
| quote NICK
  +
| prints a random quote of NICK
  +
|-
  +
| remember NAME QUOTE
  +
| associates NAME with quote. can be accessed by 'quote'
  +
|-
  +
| ...
  +
| ...
  +
|}
  +
  +
=== hpaste ===
  +
The hpaste bot provides a notification interface to the [http://hpaste.org hpaste pastebin]. [[Hpaste.el|Emacs integration]] is available.
  +
  +
''Usage?''
  +
  +
''Not online often !? ''
  +
  +
=== hackage ===
  +
The hackage bot provides real-time notifications of new package uploads to [http://hackage.haskell.org Hackage].
  +
  +
== Locations ==
   
  +
To get an overview of where everybody on the channel might
'''Logs''' are kept at a few places, including [http://tunes.org/~nef/logs/haskell/ tunes.org] and [http://meme.b9.com/clog/haskell/ meme]
 
  +
be, physically, please visit [[Haskell user locations]].
   
== SILC ==
 
   
  +
[[Category:Community]]
SILC is an alternative protocol for irc-like interaction. More
 
information can be found at [http://www.silcnet.org/ silcnet.org]. The
 
SILC network has a haskell channel (Name: haskell). Connect to
 
silc.silcnet.org and then join the channel haskell.
 

Revision as of 18:44, 28 May 2014

Internet Relay Chat is a worldwide text chat service with many thousands of users among various irc networks.

The Freenode IRC network hosts the very large #haskell channel, and we've had up to 1046 concurrent users, making the channel consistently one of the most popular of the thousands of channels on freenode. One famous resident is Lambdabot, another is hpaste (see the Bots section below).

The IRC channel can be an excellent place to learn more about Haskell, and to just keep in the loop on new things in the Haskell world. Many new developments in the Haskell world first appear on the irc channel.

Since 2009, the Haskell channel has grown large enough that we've split it in two parts:

  • #haskell, for all the usual things
  • #haskell-in-depth , for those seeking in depth, or more theoretical discussion

As always, #haskell remains the primary place for new user questions.

#haskell visualized
The social graph, Jan 2008
Daily traffic since 2004
Growth
Noun map

Getting there

If you point your irc client to chat.freenode.net and then join the #haskell channel, you'll be there. Alternately, you can try http://java.freenode.net/ or http://webchat.freenode.net/ which connects inside the browser.

Example, using irssi:

   $ irssi -c chat.freenode.net -n myname -w mypassword
   /join #haskell

Tip, if you're using Emacs to edit your Haskell sources then why not use it to chat about Haskell? Check out ERC, The Emacs IRC client. Invoke it like this and follow the commands:

   M-x erc-select
   ...
   /join #haskell
A screenshot of an irssi session in #haskell

Principles

The #haskell channel is a very friendly, welcoming place to hang out, teach and learn. The goal of #haskell is to encourage learning and discussion of Haskell, functional programming, and programming in general. As part of this we welcome newbies, and encourage teaching of the language.

Part of the #haskell success comes from the fact that the community is quite tight knit — we know each other — it's not just a homework channel. As a result, many collaborative projects have arisen between Haskell irc channel citizens.

To maintain the friendly, open culture, the following is required:

  • Low to zero tolerance for ridiculing questions. Insulting new users is unacceptable. New Haskell users should feel entirely comfortable asking questions.
  • Helpful answers should be encouraged with name++ karma points, in public, as a reward for providing a good answer.
  • Avoid getting frustrated by negative comments and ambiguous questions. Approach them by asking for details (i.e. Socratic questioning), rather than challenging the competence of the writer (ad hominem). As the channel grows, we see a diverse range of people with different programming backgrounds getting accustomed to Haskell. Be patient and take satisfaction from spreading knowledge.

History

The #haskell channel appeared in the late 90s, and really got going in early 2001, with the help of Shae Erisson (aka shapr).

A fairly extensive analysis of the traffic on #haskell over the years is kept here

Related channels

In addition to the main Haskell channel there are also:

Channel Purpose
#haskell-br Brazilian Portuguese (pt_BR) speakers
#haskell.cz Czech speakers (UTF-8)
#haskell.de German speakers
#haskell.dut Dutch speakers
#haskell.es Spanish speakers
#haskell.fi Finnish speakers
#haskell-fr (note the hyphen!) French speakers
#haskell.hr Croatian speakers
#haskell-id (note the hyphen!) Indonesian speakers
#haskell.it Italian speakers
#haskell.jp Japanese speakers
#haskell.no Norwegian speakers
#haskell.pt Portuguese speakers
#haskell-pl Polish speakers
#haskell.ru Russian speakers. Seems that most of them migrated to Jabber conference (haskell@conference.jabber.ru).
#haskell_ru Russian speakers again, in UTF-8. For those, who prefer good ol' IRC channel with a lambdabot.
#haskell.se Swedish speakers
#haskell.tw Chinese speakers (mainly in Taiwan)
#haskell-blah Haskell people talking about anything except Haskell itself
#haskell-game The hub for Haskell-based game development
#haskell-in-depth slower paced discussion of use, theory, implementation etc with no monad tutorials!
#haskell-iphone Haskell-based iPhone development
#haskell-apple projects that target iOS or OS X using Haskell.
#haskell-lisp Haskell Lisp - projects that are creating Lisps written in Haskell, or Haskell implementations written in Lisps.
#haskell-llvm For projects using Haskell and LLVM
#haskell-overflow Overflow conversations
#haskell-web Friendly, practical discussion of haskell web app/framework/server development
#haskell-robotics Discussion about the use of Haskell for robotics applications.
Platform-specific:
#arch-haskell Arch Linux/ specific Haskell conversations
#fedora-haskell Fedora Haskell SIG
#gentoo-haskell Gentoo/Linux specific Haskell conversations
Projects using haskell:
#darcs Darcs revision control system
#diagrams Diagrams EDSL
#hackage Haskell's software distribution infrastructure
#haskell-lens Lens discussions
#happs Happstack web framework
#hledger hledger accounting tools and library
#leksah Leksah IDE for Haskell development
#perl6 Perl 6 development (plenty of Haskell chat there too)
#snapframework Snap web framework
#xmonad Xmonad tiling window manager
#yesod Yesod web framework
#chicagohaskell Chicago Haskell programmers group

Logs

Logs are kept at http://tunes.org/~nef/logs/haskell/ and can be searched at http://ircbrowse.net/browse/haskell


Bots

There are various bots on the channel. Their names and usage are described here.

lambdabot

Lambdabot is both the name of a software package and a bot on the channel. It provides many useful services for visitors to the IRC channel. It is available as a haskell package and can be integrated into ghci. Details on the software are found on a separate wiki page.

Here is its interface for the IRC user:

lambdabot's commands are prepended by a '@' sign.

Command Usage
@help display help to other commands, but help text is not available for all commands.
@type EXPR or ':t' EXPR shows the type of an expression
@kind TYPECONSTRUCTOR shows the kind of a type constructor
@run EXPR or '>' EXPR evaluates EXPR
@pl FUNCTION shows a pointfree version of FUNCTION
@pointful FUNCTION or '@unpl' FUNCTION shows a 'pointful' version of FUNCTION
@tell <nick> <msg> -- same as @ask Next time <nick> speaks in channel they will be notified they have a message pending and how to receive it.

preflex

is the name of a lambdabot with more commands/plugins enabled. It is run by ?? To talk to preflex, write preflex: command ARGS

Command Usage
help COMMAND displays help to other commands.
list lists all plugins with their commands
NICK++ / NICK-- in/decrements the karma of NICK.
karma NICK shows the karma of NICK
seen NICK shows information about the last message of a user
tell / ask sends NICK MSG a message when she becomes active.
xseen see 'seen' ?? any difference ?
quote NICK prints a random quote of NICK
remember NAME QUOTE associates NAME with quote. can be accessed by 'quote'
... ...

hpaste

The hpaste bot provides a notification interface to the hpaste pastebin. Emacs integration is available.

Usage?

Not online often !?

hackage

The hackage bot provides real-time notifications of new package uploads to Hackage.

Locations

To get an overview of where everybody on the channel might be, physically, please visit Haskell user locations.