Intro to IRC (Activity)

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
(Deliverables:)
(Changed IRC channel from GNOME's #a11y to any of Fedora's channels)
 
(35 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
{| border="1"
 
|-
 
|'''Title''' || Introduction to IRC
 
|-
 
|'''Overview''' || Learners will gain a basic understanding of IRC (Internet Relay Chat) as well as the role that IRC plays in open source software development. Participants will learn about IRC etiquette and explore the interactions that occur between members of an open source community.
 
|-
 
|'''Prerequisite Knowledge''' || None
 
|-
 
|'''Learning Objectives''' || Upon completion of this activity, participants should be able to: 1) Describe the importance of IRC as it relates to open source software development 2) Connect to an IRC server and join a channel 3) Parcipate in a brief interaction on an IRC channel
 
|}
 
  
=== Background: ===
+
{{Learning Activity Overview
IRC, which stands for Internet Relay Chat, is an essential tool used by open source software developers. It allows members of the community, or those interested in becoming involved in the community, to communicate 24/7, regardless of their geographic location. IRC is much like Instant Messaging with a group.  
+
|title=
 +
Intro to IRC (Internet Relay Chat)
 +
|overview=
 +
Learners will gain a basic understanding of IRC (Internet Relay Chat) as well as the role that IRC plays in open source software development.
 +
Participants will learn about IRC etiquette and explore the interactions that occur between members of an open source community.
 +
|prerequisites=
 +
None.
 +
|objectives=
 +
# Describe the importance of IRC as it relates to open source software development.
 +
# Connect to an IRC server and join a channel.
 +
# Participate in a brief interaction on an IRC channel.
 +
|process skills=
 +
}}
 +
 
 +
=== Background ===
 +
 
 +
IRC (Internet Relay Chat) is an essential tool used by open source software developers. It allows members of the community, or those interested in becoming involved in the community, to communicate 24/7, regardless of their geographic location. IRC is much like Instant Messaging with a group.  
  
 
Bear in mind that ‘talking’ is not always a requirement. You will learn a great deal by ‘listening’, especially in the beginning. When you join a channel, it is not necessary to identify yourself or to say hi, you can simply 'lurk'. Feel free to ask questions, and note that it is not necessary to ask first if you can ask a question.
 
Bear in mind that ‘talking’ is not always a requirement. You will learn a great deal by ‘listening’, especially in the beginning. When you join a channel, it is not necessary to identify yourself or to say hi, you can simply 'lurk'. Feel free to ask questions, and note that it is not necessary to ask first if you can ask a question.
Line 22: Line 28:
 
* [http://www.greenday.net/chat/commands.html More complete list of IRC Commands]
 
* [http://www.greenday.net/chat/commands.html More complete list of IRC Commands]
  
=== Directions: ===
+
=== Directions ===
 
+
Throughout this activity you will be asked to answer questions, make observations, and may wish to take notes. These should be posted to your wiki page.
  
 
==== Part 1 – Walk through of IRC Conversation ====
 
==== Part 1 – Walk through of IRC Conversation ====
Line 29: Line 35:
 
Download this sample [[Media:mouseTrapMeeting.pdf | IRC Conversation]]
 
Download this sample [[Media:mouseTrapMeeting.pdf | IRC Conversation]]
  
This conversation is part of a meeting being run with a '''meetbot'''. A [http://wiki.debian.org/MeetBot meetbot] is a type of "bot" (or program that simulates a human activity) that works in IRC channels to help take notes for a meeting. Note the dark green entries in the conversation that begin with a hashmark. These are meetbot commands.  
+
This conversation is part of a meeting being run with a '''meetbot'''.  
 +
A [http://wiki.debian.org/MeetBot meetbot] is a type of "bot" (or program that simulates a human activity) that works in IRC channels to help take notes for a meeting.  
 +
Note the dark green entries in the conversation that begin with a hashmark. These are meetbot commands.  
 
* The first line of the conversation shows "darci" starting the meeting.
 
* The first line of the conversation shows "darci" starting the meeting.
 
* "totally" is the name of the meetbot.
 
* "totally" is the name of the meetbot.
Line 38: Line 46:
 
# Ignore the technical terms.
 
# Ignore the technical terms.
 
# Accept that the content may be beyond your understanding at this point, your first step in being productively lost.
 
# Accept that the content may be beyond your understanding at this point, your first step in being productively lost.
# Place your answers to the following questions on your wiki page:
+
# Answer the following questions on your wiki page:
 
#* How do people interact?  
 
#* How do people interact?  
 
#* What is the pattern of communication? Is it linear or branched? Formal or informal? One-to-many, one-to-one or a mix?
 
#* What is the pattern of communication? Is it linear or branched? Formal or informal? One-to-many, one-to-one or a mix?
Line 46: Line 54:
 
#* Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?
 
#* Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?
  
==== Part 2 – Installing and Starting an IRC Client ====
+
==== Part 2 – Install and Start an IRC Client ====
  
 
There are many IRC clients to choose from, below is a brief list of suggestions:
 
There are many IRC clients to choose from, below is a brief list of suggestions:
 
# Windows and Linux: Hexchat (https://hexchat.github.io/) or Pidgin (https://pidgin.im/)
 
# Windows and Linux: Hexchat (https://hexchat.github.io/) or Pidgin (https://pidgin.im/)
 
# Mac OS X:  Colloquy (http://colloquy.info/)  
 
# Mac OS X:  Colloquy (http://colloquy.info/)  
# Firefox add-on: ChatZilla (https://addons.mozilla.org/en-US/firefox/addon/chatzilla/) is a multi-platform add-on that will work on Windows, Linux and Mac OS X
 
  
For example, if you have Firefox running, follow these steps to add ChatZilla.
+
Note that there are some locations or situations where the IRC port is blocked. In such cases you may want to use a web-based client:
 
+
# Click '''Tools''' from the main menu and then choose '''Add-ons'''. The Get Add-ons tab should be selected on the left. If you don’t see the main menu, click the down-arrow next to the Firefox button in the upper, left corner, hover over Options and select Menu Bar.
+
# Type ChatZilla in the search box found in the upper, right corner.
+
# Click the install button to the right of the ChatZilla add-on. Note that ChatZilla is available in a number of languages, so be sure to select the appropriate one.
+
# Restart Firefox.
+
 
+
Note that in some cases an institution may block the IRC port or you may be in a location where that port is blocked. In such cases you may want to use a web-based client:
+
 
# Kiwiirc, supports the freenode server and you can access the foss2serve channel from here. - https://kiwiirc.com/client/irc.freenode.net/
 
# Kiwiirc, supports the freenode server and you can access the foss2serve channel from here. - https://kiwiirc.com/client/irc.freenode.net/
 
# Mibbit, allows you to connect to a variety of servers. - http://www.mibbit.com/
 
# Mibbit, allows you to connect to a variety of servers. - http://www.mibbit.com/
  
 
==== Part 3 – Join and Observe Channel Discussion ====
 
==== Part 3 – Join and Observe Channel Discussion ====
 +
Observe the activity of two or three channels over a 24 hour period. You do not need to be physically present for this length of time. You can join the channel and let the IRC client record the communications that occur.
  
# Select an HFOSS project from the list of [[HFOSS_Communities | HFOSS projects]] (or use the project that your class is working with).  
+
Fedora uses a number of different channels: see https://fedoraproject.org/wiki/IRC . Join two or three of them.
# Join (one of) the project's channel(s) and observe the discussions that occur for 24 hours.
+
#* For example, you can join the Foss2serve channel by issuing the following commands.
+
# Connect to freenode.net: /server freenode.net
#** Connect to the server via the command: /server irc.freenode.net  
+
# Join a channel: /join #<channel-name> . For example, /join #fedora-devel
#** Join the foss2serve channel via the command: /join #foss2serve
+
# Summarize your observations on your wiki page.  
# Summarize your observations (of your selected HFOSS project).
+
#* Pay particular attention to the ways that the communication in this channel differs from the sample dialog you examined in Part 1
#* Pay particular attention to the ways that the selected project differs from the sample dialog you exampled in Part 1
+
  
 
==== Part 4 – (Optional - Make your own channel and experiment) ====
 
==== Part 4 – (Optional - Make your own channel and experiment) ====
 +
 
Sometimes the best way to figure out what's possible is just to play around and know you're not going to step on anyone's toes.  In IRC you can create a channel by typing
 
Sometimes the best way to figure out what's possible is just to play around and know you're not going to step on anyone's toes.  In IRC you can create a channel by typing
 
     /join #channelname   
 
     /join #channelname   
Line 86: Line 87:
 
* Remember to precede it with the /, as that's what tells the client that it's a command, not text to be sent.
 
* Remember to precede it with the /, as that's what tells the client that it's a command, not text to be sent.
 
* Invite another student to the your channel and try some of the commands that you can only do with Ops privileges  
 
* Invite another student to the your channel and try some of the commands that you can only do with Ops privileges  
* Record the commands you tried and what they did (in your own words)
+
* Record the commands you tried and what they did (in your own words) on your wiki page.
  
=== Deliverables: ===
+
=== Deliverables ===
POSSE Attendees: Be ready to participate in the IRC meeting:
+
 
 +
POSSE: Be ready to participate in the upcoming IRC meeting:
 
* Have the appropriate IRC client installed and running
 
* Have the appropriate IRC client installed and running
 
* Test that you can connect to the network
 
* Test that you can connect to the network
 
* Test that you can access freenode and the foss2serve channel
 
* Test that you can access freenode and the foss2serve channel
 +
** /server irc.freenode.net/
 +
** /join #foss2serve
  
Students will deliver:
+
POSSE and Students will deliver:
 
# For Part 1, their observations/answers to the following questions:
 
# For Part 1, their observations/answers to the following questions:
 
#* How do people interact?
 
#* How do people interact?
Line 103: Line 107:
 
#* Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?
 
#* Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?
 
# For Part 2: nothing to deliver, should have successfully installed IRC client
 
# For Part 2: nothing to deliver, should have successfully installed IRC client
# For Part 3: observations of the chosen IRC channel (either from chosen HFOSS channel or from project channel)
+
# For Part 3: observations of the #a11y channel communications and how they differed from the sample dialog in Part 1.
# For Part 4 (optional): a list of at least 5 commands that will work in the channel they have chosen, and what they mean.
+
# For Part 4 (optional): a list of at least 5 commands that will work in the channel that was created, and what they mean.
  
=== Assessment: ===
+
= Notes for Instructors =
 +
The remaining sections of this document are intended for the instructor.  They are not part of the learning activity that would be given to students.
 +
 
 +
=== Assessment ===
 
Some possible questions:
 
Some possible questions:
 
* For what purposes do FOSS projects use IRC channels?
 
* For what purposes do FOSS projects use IRC channels?
Line 114: Line 121:
  
  
{| border="1"
+
{| class="wikitable"
 
|-  
 
|-  
 
|'''Criteria''' ||'''Level 1 (fail)'''||'''Level 2 (pass)'''||'''Level 3 (good)'''||'''Level 4 (exceptional)'''  
 
|'''Criteria''' ||'''Level 1 (fail)'''||'''Level 2 (pass)'''||'''Level 3 (good)'''||'''Level 4 (exceptional)'''  
Line 126: Line 133:
 
|}
 
|}
  
=== Comments: ===
+
=== Comments ===
 +
 
 
* Some projects have multiple channels.  There may be one for developers, another for documentation and another still for end users. These should all be listed on the project website.  See, for example, [http://wiki.sahanafoundation.org/community/chat Sahana], which has:
 
* Some projects have multiple channels.  There may be one for developers, another for documentation and another still for end users. These should all be listed on the project website.  See, for example, [http://wiki.sahanafoundation.org/community/chat Sahana], which has:
 
** Sahana : for general Sahana developer or user support from the community (starting point for most discussions)
 
** Sahana : for general Sahana developer or user support from the community (starting point for most discussions)
Line 137: Line 145:
  
 
*Note that many of the POSSE and OpenFE team hang out in the foss2serve channel throughout the day:
 
*Note that many of the POSSE and OpenFE team hang out in the foss2serve channel throughout the day:
** Connect to the server via the command:    /server irc.freenode.net
+
** Connect to the server via the command:    /server irc.freenode.net/
 
** Join the foss2serve channel via the command: /join #foss2serve
 
** Join the foss2serve channel via the command: /join #foss2serve
 
** Come join us!!!
 
** Come join us!!!
  
=== Additional Information: ===
+
{{Learning Activity Info
{| border="1"
+
|acm unit=
|-
+
HCI/Collaboration and Communication, HCI/Foundations, SE/Software Project Management
|'''Knowledge Area/Knowledge Unit''' ||  HCI/Collaboration and Communication _and_ HCI/Foundations _and_ SE/Software Project Management
+
|acm topic=
|-
+
* Synchronous Group Communication
|'''Topic''' ||  Synchronous Group Communication _ and_ Social models that inform interaction design, e.g., culture, communication, networks and organizations (*why* IRC and not something else) _and_ Team Participation/Team Management
+
* Social models that inform interaction design, e.g., culture, communication, networks and organizations (*why* IRC and not something else)
|-
+
* Team Participation/Team Management
|'''Level of Difficulty''' || Easy  
+
|difficulty=
|-
+
Easy
|'''Estimated Time to Completion''' ||  60-75 minutes
+
|time=
|-
+
60-75 minutes
|'''Materials/Environment''' || Internet access, a Web browser and an IRC client.  
+
|environment=
|-
+
Internet access, a Web browser and an IRC client.
|'''Author''' || Darci Burge, Heidi Ellis & Gina Likins
+
|author=
|-
+
Darci Burdge, Heidi Ellis & Gina Likins
|'''Source''' || [http://xcitegroup.org/softhum/doku.php?id=f:assignments Communication and Community]
+
|source=
|-
+
[http://129.25.203.54/xcitegroup/softhum/doku.php?id=f:assignments Communication and Community]
|'''License''' || This work is licensed under a [http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
+
|license=
|}
+
{{License CC BY SA}}
 +
}}
 +
 
 +
=== Suggestions for the Open Source Project ===
  
=== Suggestions for the Open Source Project: ===
 
 
What channels does your project use? Which would be most useful for students to join?
 
What channels does your project use? Which would be most useful for students to join?
  
--------------------
+
[[Category:Instructor Activities]]
This work is licensed under a
+
[[Category:Learning Activity]]
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
+
[[Category:Communication and Tools]]
 
+
[[Category:IRC]]
[[File:CC_license.png]]
+
[[Category:CS Principles]]
 
+
[[Category:Ready to Use]]
--------------------
+
[[Category: Learning_Activity]]
+
[[Category: Communication_and_Tools]]
+
 
+
[[Category: CS Principles]]
+

Latest revision as of 13:34, 20 April 2019


Title

Intro to IRC (Internet Relay Chat)

Overview

Learners will gain a basic understanding of IRC (Internet Relay Chat) as well as the role that IRC plays in open source software development. Participants will learn about IRC etiquette and explore the interactions that occur between members of an open source community.

Prerequisites

None.

Learning
Objectives
After successfully completing this activity, the learner should be able to:
  1. Describe the importance of IRC as it relates to open source software development.
  2. Connect to an IRC server and join a channel.
  3. Participate in a brief interaction on an IRC channel.
Process Skills
Practiced


Background

IRC (Internet Relay Chat) is an essential tool used by open source software developers. It allows members of the community, or those interested in becoming involved in the community, to communicate 24/7, regardless of their geographic location. IRC is much like Instant Messaging with a group.

Bear in mind that ‘talking’ is not always a requirement. You will learn a great deal by ‘listening’, especially in the beginning. When you join a channel, it is not necessary to identify yourself or to say hi, you can simply 'lurk'. Feel free to ask questions, and note that it is not necessary to ask first if you can ask a question.

IRC resources:

Directions

Throughout this activity you will be asked to answer questions, make observations, and may wish to take notes. These should be posted to your wiki page.

Part 1 – Walk through of IRC Conversation

Download this sample IRC Conversation

This conversation is part of a meeting being run with a meetbot. A meetbot is a type of "bot" (or program that simulates a human activity) that works in IRC channels to help take notes for a meeting. Note the dark green entries in the conversation that begin with a hashmark. These are meetbot commands.

  • The first line of the conversation shows "darci" starting the meeting.
  • "totally" is the name of the meetbot.
  • The #topics command sets the topic of the conversation and is one of several commands.

As you review the conversation, you should:

  1. Pay attention to the interactions that occur between community members.
  2. Ignore the technical terms.
  3. Accept that the content may be beyond your understanding at this point, your first step in being productively lost.
  4. Answer the following questions on your wiki page:
    • How do people interact?
    • What is the pattern of communication? Is it linear or branched? Formal or informal? One-to-many, one-to-one or a mix?
    • Are there any terms that seem to have special meaning?
    • Can you make any other observations?
  5. Now look at the results of the meetbot. This shows you how each meetbot command is formatted into a legible page that summarizes the meeting. Some additional formatting may be needed, but it certainly provides a great starting point. Here's a link to the final version of the meeting notes.
    • Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?

Part 2 – Install and Start an IRC Client

There are many IRC clients to choose from, below is a brief list of suggestions:

  1. Windows and Linux: Hexchat (https://hexchat.github.io/) or Pidgin (https://pidgin.im/)
  2. Mac OS X: Colloquy (http://colloquy.info/)

Note that there are some locations or situations where the IRC port is blocked. In such cases you may want to use a web-based client:

  1. Kiwiirc, supports the freenode server and you can access the foss2serve channel from here. - https://kiwiirc.com/client/irc.freenode.net/
  2. Mibbit, allows you to connect to a variety of servers. - http://www.mibbit.com/

Part 3 – Join and Observe Channel Discussion

Observe the activity of two or three channels over a 24 hour period. You do not need to be physically present for this length of time. You can join the channel and let the IRC client record the communications that occur.

Fedora uses a number of different channels: see https://fedoraproject.org/wiki/IRC . Join two or three of them.

  1. Connect to freenode.net: /server freenode.net
  2. Join a channel: /join #<channel-name> . For example, /join #fedora-devel
  3. Summarize your observations on your wiki page.
    • Pay particular attention to the ways that the communication in this channel differs from the sample dialog you examined in Part 1

Part 4 – (Optional - Make your own channel and experiment)

Sometimes the best way to figure out what's possible is just to play around and know you're not going to step on anyone's toes. In IRC you can create a channel by typing

   /join #channelname  

(and you can make "channelname" whatever made up thing that you want!).

A variant of that is that if you type

   /join #yournick  

and no one has created the channel #yournick on that IRC server then a new channel called #yournick will be created and you'll automatically have Ops privileges. This is a fun way to experiment with Ops privs!

Next, try one of the most useful commands (for almost any system, anywhere): help

  • Remember to precede it with the /, as that's what tells the client that it's a command, not text to be sent.
  • Invite another student to the your channel and try some of the commands that you can only do with Ops privileges
  • Record the commands you tried and what they did (in your own words) on your wiki page.

Deliverables

POSSE: Be ready to participate in the upcoming IRC meeting:

  • Have the appropriate IRC client installed and running
  • Test that you can connect to the network
  • Test that you can access freenode and the foss2serve channel
    • /server irc.freenode.net/
    • /join #foss2serve

POSSE and Students will deliver:

  1. For Part 1, their observations/answers to the following questions:
    • How do people interact?
    • What is the pattern of communication?
    • Are there any terms that seem to have special meaning?
    • What advantages might IRC have over other real-time communication methods (like Google Chat or Facebook Messenger?) Are there potential disadvantages?
    • Can you make any other observations?
    • Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot?
  2. For Part 2: nothing to deliver, should have successfully installed IRC client
  3. For Part 3: observations of the #a11y channel communications and how they differed from the sample dialog in Part 1.
  4. For Part 4 (optional): a list of at least 5 commands that will work in the channel that was created, and what they mean.

Notes for Instructors

The remaining sections of this document are intended for the instructor. They are not part of the learning activity that would be given to students.

Assessment

Some possible questions:

  • For what purposes do FOSS projects use IRC channels?
  • Why choose IRC over another synchronous collaboration method (like a conference call)?
  • How can IRC be used to facilitate project management?
  • In your own words, explain how to find a channel and join it for whichever IRC client you prefer.


Criteria Level 1 (fail) Level 2 (pass) Level 3 (good) Level 4 (exceptional)
Understanding of importance of IRC in open source (from observations of IRC log) Did not attempt observations Minimum effort put into observations (one statement per question, for example) Complete observations Well thought-out observations that tie the material back to other knowledge (bonus question also a nice addition)
Ability to connect to an IRC server and join a channel Did not attempt Installed client but did not join channel Installed client, joined channel Installed client, joined channel, made good observations of project
Become familiar with the interactions that occur in an IRC channel (from Observations of HFOSS project) Did not attempt observations Minimum effort put into observations (one statement per question, for example) Complete observations Well thought-out observations that tie the material back to other knowledge

Comments

  • Some projects have multiple channels. There may be one for developers, another for documentation and another still for end users. These should all be listed on the project website. See, for example, Sahana, which has:
    • Sahana : for general Sahana developer or user support from the community (starting point for most discussions)
    • Sahana-Meeting : for scheduled Sahana meetings
    • Sahana-Agasti : for Sahana Agasti-specific developer discussions
    • Sahana-Eden : for Sahana Eden-specific developer discussions
    • Sahana-GIS : for Sahana GIS-specific discussions
  • Depending on the project, its size, and the amount of activity on a project's channel, it may be necessary to determine an appropriate day for this observation. If there is a specific day/tim that the developers meet, you might want to schedule your observation for this day. You can join the channel and identify yourself as _afk (away from keyboard, for example joe_afk using the /nick command). When you return the following day, you will be able to observe the communication that occurred during the previous 24 hour period.
  • Note that many of the POSSE and OpenFE team hang out in the foss2serve channel throughout the day:
    • Connect to the server via the command: /server irc.freenode.net/
    • Join the foss2serve channel via the command: /join #foss2serve
    • Come join us!!!
ACM BoK
Area & Unit(s)

HCI/Collaboration and Communication, HCI/Foundations, SE/Software Project Management

ACM BoK
Topic(s)
  • Synchronous Group Communication
  • Social models that inform interaction design, e.g., culture, communication, networks and organizations (*why* IRC and not something else)
  • Team Participation/Team Management
Difficulty

Easy

Estimated Time
to Complete

60-75 minutes

Environment /
Materials

Internet access, a Web browser and an IRC client.

Author(s)

Darci Burdge, Heidi Ellis & Gina Likins

Source

Communication and Community

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png


Suggestions for the Open Source Project

What channels does your project use? Which would be most useful for students to join?

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox