Etiquette for -women channels is a particularly sensitive topic due to the nature of the project, be familiar with core Ubuntu rules for Op conduct as well as the proper way of handling trolls in feminist spaces.
For basic Op commands, see: https://wiki.ubuntu.com/nhandler/OperatorGuide
1 === ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - http://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Current Session: Being an Op in Ubuntu Women channels - Instructor: pleia2 || Questions in #ubuntu-classroom-chat 2 [00:02] <pleia2> ok, let's get started 3 [00:02] <pleia2> Hi everyone! Welcome to a short class on being an operator (+o) in #ubuntu-women and #ubuntu-women-project 4 [00:03] <pleia2> We'll have a pretty informal class here, so please feel free to jump in at any time and ask questions :) 5 [00:03] <pleia2> who all is here for it? 6 [00:03] <MichelleQ> o/ 7 [00:04] * charlie-tca waves 8 [00:04] <arand> \o 9 [00:04] <pleia2> OK, we'll start off with some basics about opping in our channels 10 [00:04] <pleia2> Operator status in the channels is given to responsible volunteers who have a history with the project and we (current ops) feel we can trust. Addition is pretty informal so if you've been with us for a while you're welcome to ask me. 11 [00:05] <pleia2> this is not consistant across ubuntu namespace 12 [00:05] <pleia2> Now, this class will cover a lot of the basics of being an op so will be applicable to opping in other channels, but the etiquette section of this class will be targeted at handling the types of trolls our channels frequently encounter 13 [00:06] <pleia2> and for the other ops in the audience - if you have some information I missed (or get wrong!) please feel free to jump in and add/correct as needed 14 [00:06] <pleia2> = Class Outline = 15 [00:07] <pleia2> 1. Etiquette 16 [00:07] <pleia2> 2. Basic technical op basics: freenode and channel options, opping yourself, removing a user, banning a user 17 [00:07] <pleia2> 3. Writing good bans 18 [00:07] <pleia2> starting with the fun one :) 19 [00:07] <pleia2> = Etiquette = 20 [00:07] <pleia2> First and foremost, as an op you have a responsibility to the community to uphold the rules, tactfully handle abusive users and set an example for other members of the channel 21 [00:08] <pleia2> As an Ubuntu channel we are upheld to the standards of ops throughout the Ubuntu namespace: https://wiki.ubuntu.com/IRC/IrcTeam/OperatorGuidelines 22 [00:08] <pleia2> and of course to the Code of Conduct http://www.ubuntu.com/community/conduct 23 [00:09] <pleia2> Additionally, as our channel presents certain challenges, so we have our own guidelines which can be found here: http://wiki.ubuntu-women.org/IrcGuidelines and a page with further Op guidelines is here: http://wiki.ubuntu-women.org/IRCOpGuidelines 24 [00:10] <pleia2> As we frequently get trolled for being a feminist project, it's important to anticipate this kind of trolling and be informed about it, an interested document on the subject can be found here: http://rkcsi.indiana.edu/archive/CSI/WP/WP02-03B.html 25 [00:10] <pleia2> er, interesting 26 [00:11] <pleia2> I actually re-read this document last night while doing my final prep on this class, given the recent discussions about our channels, logging policies and safe spaces, it was even more enlightening and useful than the first time I read it :) 27 [00:11] <pleia2> so I'd strongly encourage everyone to have a look, even if they just skim it 28 [00:12] <pleia2> So, in our channel there is a delicate balance that we must seek to maintain to be welcoming to all and handling questions about the project from those who honestly wish to learn, while also protecting our members from users who wish to do harm 29 [00:12] <pleia2> this isn't easy, I still make mistakes sometimes - either by letting someone troll too long or removing too quickly 30 [00:12] <pleia2> to help us with this, if you ever have questions about whether a user should be removed or how to handle a situation, please don't hesitate to private message another op and ask their opinion 31 [00:13] <pleia2> we also have a number of current and former irc council members who spend time in the channel, and they're all friendly if you want an outside opinion :) 32 [00:13] <pleia2> Now, the escalation process for handling disruptive users: 33 [00:14] <pleia2> (again, this is not uniform across ubuntu namespace, this is the procedure we've developed in #ubuntu-women and #ubuntu-women-project) 34 [00:14] <pleia2> 1. If someone appears to be disruptive, try to get a handle on the core of their purpose. Maybe they are not intentionally be troublesome. 35 [00:15] <pleia2> so perhaps you ask why they joined, what interest they have in the project 36 [00:15] <pleia2> 2. Issue a warning 37 [00:15] <pleia2> this is often done privately if their behavior borderline as an attempt to nudge them back into respecting the intent of the channel 38 [00:16] <pleia2> but a public warning may be issued if the infraction is more overt - remember, part of our job is making sure our members feel safe, we want them to know that attentive ops are paying attention 39 [00:16] <pleia2> 3. Ask them to leave 40 [00:17] <pleia2> warnings may not be enough, so a simple "you're not welcome here" notice does actually get rid of some folks who are causing trouble 41 [00:17] <pleia2> 4. Remove them from the channel 42 [00:17] <pleia2> I typically just remove users rather than setting a ban right away, but it depends on the situation 43 [00:18] <pleia2> if they keep trolling... 44 [00:18] <pleia2> 5. Ban 45 [00:18] <pleia2> Once the user has been taken care of, please deop yourself 46 [00:19] <pleia2> this whole process can frequently be stressful (yep, even to seasoned ops!) so it's important that you work at friendly throughout this whole process 47 [00:19] <pleia2> ..even if they refuse to treat you with respect, even private message you after hurling insults, do your best to deal with this professionally too 48 [00:19] <pleia2> frequently trolls are looking for getting a reaction, acting reasonably and maturely to remove a problem counters this 49 [00:20] <pleia2> Any questions? Comments? 50 [00:21] <pleia2> ok, we'll get to the technical aspects we all came for :) 51 [00:21] <pleia2> = Basic technical op basics = 52 [00:21] <pleia2> First, we'll start off with the network itself. Ubuntu IRC channels reside on the freenode irc network - this is where you end up when you log on to irc.ubuntu.com 53 [00:21] <pleia2> The freenode network uses software called "ircd seven" and freenode has an excellent page to get you started learning how to use the network and the available channel and user modes here: http://freenode.net/using_the_network.shtml 54 [00:22] <pleia2> To quickly cover some important things, there are "user modes" on the network which determine attributes of a user, and "channel modes" which set attributes of channels on the network. Knowing what these are is pretty useful, so keep this document handy :) 55 [00:22] <Pici> May I add that its by no means necessary to memorize what all the different modes mean. 56 [00:23] * pleia2 memorizes very little, has memory capacity of a sieve 57 [00:23] <pleia2> thanks Pici 58 [00:23] <pleia2> Now, to cover some basics you'll need as an op, I have documented much of this over on a page I wrote a few years ago: http://wiki.ubuntu-women.org/Courses/IRCOp 59 [00:23] <pleia2> First, if you're an op in the channel, how do you op up? 60 [00:24] <pleia2> /msg chanserv op #ubuntu-women 61 [00:24] <pleia2> For more about what you can do with chanserv, /msg chanserv help 62 [00:24] <pleia2> How do you remove your op status? 63 [00:24] <pleia2> /msg chanserv deop #ubuntu-women 64 [00:25] <pleia2> How do you remove a user? 65 [00:25] <pleia2> /remove #ubuntu-women nickname 66 [00:25] <pleia2> ..but in some clients, like irssi, you will need to: /quote remove #ubuntu-women nickname 67 [00:25] <pleia2> just play around and see how your client works (we'll have a playing session over in ##pleia2 after this session) 68 [00:26] <pleia2> We like to "remove" rather than "kick" because this makes the client think it was a /part and so doesn't trigger auto-rejoin 69 [00:26] <pleia2> (and remove tends to be the "preferred freenode way") 70 [00:27] <pleia2> So, how do you ban a user? 71 [00:27] <pleia2> A simple ban can usually be added with: 72 [00:27] <pleia2> /ban nickname 73 [00:27] <pleia2> But often the automatic ban a client sets isn't good enough, so now we'll talk about writing good bans 74 [00:27] <pleia2> any questions before we get to that? 75 [00:30] <pleia2> so over in #ubuntu-classroom-chat someone asked about why /quote may need to be used 76 [00:30] <pleia2> ;) 77 [00:31] <pleia2> this is because /remove is not a command that irssi understands, and it won't automatically pass things it doesn't understand to the server 78 === ClassBot_ is now known as ClassBot 79 [00:32] <pleia2> so for commands like that in irssi you need to use /quote 80 [00:32] <pleia2> alright, let's move on 81 [00:32] <pleia2> (oh, and you don't need to ask questions in -chat, feel free to speak freely here :)) 82 [00:32] <pleia2> = Writing good bans = 83 [00:33] <pleia2> Writing bans is an intimidating topic at first, but it turns out that it's actually not that hard! 84 [00:33] <pleia2> When a user joins a channel, you'll typically see something like: 85 [00:33] <pleia2> MeanTroll (~email@example.com) has joined #ubuntu-women 86 [00:33] <pleia2> (in some clients you may need to enable viewing hostnames) 87 [00:34] <pleia2> There are 3 important pieces of this which can be targeted in a ban: nickname (MeanTroll), ident (verybad) and hostname (184.108.40.206-example.com) 88 [00:34] <pleia2> In a ban stanza, it would look like: nickname!ident@hostname 89 [00:35] <pleia2> notice that a ! separates nickname and ident, and the @ symbol is put before hostname 90 [00:35] <pleia2> there are more options with this, which nhandler will cover in a bit, but this is a basic ban 91 [00:36] <pleia2> So in this example, MeanTrollfirstname.lastname@example.org would be a ban exactly matching their nickname, ident and hostname 92 [00:36] <pleia2> Any questions so far? 93 [00:37] <pleia2> Ok, well, this is not a great ban, since the offending user could just change their nickname and get back in to the channel - we need to write a better ban 94 [00:37] <pleia2> It's easy to change a nickname (just "/nick SuperMeanTroll" and they get past our ban!) so here is how to ban based on ident and hostname: 95 [00:38] <pleia2> /mode +b *!email@example.com 96 [00:38] <pleia2> As you can see we put a * where the nickname used to be, this is a wildcard 97 [00:38] <pleia2> What if they decide to change their ident too? 98 [00:38] <pleia2> /mode +b *!*@220.127.116.11-example.com 99 [00:39] <pleia2> again, a * is put where the ident used to be 100 [00:39] <pleia2> the asterisk can be used in conjunction with other numbers and letters too, so if a person always has "bad" in their ident, you can do something like /mode +b *!*firstname.lastname@example.org 101 [00:40] <ClassBot> mhall119 asked: is * the only wildcard, or can do you some regex-style matching too? 102 [00:40] <erUSUL> what if they change nick ident and renew ip with his/her isp? back to square one ;) 103 [00:40] <pleia2> regarding mhall119's question - there are some options here, nhandler will cover them :) 104 [00:40] <pleia2> erUSUL: that's next! 105 [00:40] <pleia2> So, what if they get really desperate and reset their modem to get a new hostname? 106 [00:40] <pleia2> You can try: /mode +b *!*@*-example.com 107 [00:41] <pleia2> But be careful - this will ban everyone coming from the exmaple.com service provider 108 [00:41] <pleia2> and honestly this ban should only be put in place in emergencies and should be accompanied by joining #freenode and reporting that there is a user who is evading bans 109 [00:42] <pleia2> there are also users who evade by using "proxies" which make writing bans essentially useless, this too is against freenode policy and should be reported 110 [00:42] <ClassBot> mhall119 asked: is using proxies in general against freenode policy, or just to avoid bans? 111 [00:43] <pleia2> "proxy" is a broad term 112 [00:43] <pleia2> technically anyone who runs irssi from a server elsewhere is using a "proxy" since they aren't connecting from their originating connection 113 [00:43] <pleia2> and of course this is ok :) 114 [00:43] <pleia2> same with bouncers you run, etc 115 [00:44] <pleia2> I don't know the precise policy (maybe a freenode staffer can help me out here) but in general abusing proxies which frequently aren't yours to cause trouble is where freenode starts putting in rules 116 [00:44] <nhandler> freenode also bans open proxies 117 [00:45] <pleia2> there we go, thanks nhandler :) 118 [00:45] <nhandler> http://freenode.net/policy.shtml#proxies 119 [00:45] <pleia2> any more questions about basic bans before I hand things off to nhandler to explain extbans? 120 [00:46] <pleia2> alright, well, freenode also has "Extbans" which are discussed more at http://freenode.net/using_the_network.shtml which are used less frequently but you will see them 121 [00:46] <pleia2> nhandler: all yours! 122 [00:46] <nhandler> Thanks pleia2 123 [00:46] * pleia2 didn't know about these, and didn't have time to get up to speed :) 124 [00:47] <nhandler> Extbans are a new feature that came with ircd-seven. To quote http://freenode.net/using_the_network.shtml: 125 [00:47] <nhandler> "They take the form of: +b $type or +b $type:data 126 [00:47] <nhandler> 'type' is a single character (case insensitive) indicating the type of match, optionally preceded by a tilde (~) to negate the comparison." 127 [00:48] <nhandler> One of the most common uses of this type of ban is to replace the old +R channel mode which prevented unidentified users from talking in the channel. 128 [00:48] <nhandler> This can be done with: /mode #channel +q $~a 129 [00:49] <nhandler> Type 'a' matches the account name, and the ~ negates it. This command has the same result as setting channel mode +R used to have. 130 [00:49] <nhandler> Extbans can also be used to match the realname or gecos (type r, which is similar to the old +d channel mode) or to match against the full nick!username@host#gecos (type x) 131 [00:50] <ClassBot> There are are 10 minutes remaining in the current session. 132 [00:50] <nhandler> mhall119 wanted me to explain $~a a bit more 133 [00:51] <nhandler> Basically, $a is an extban that can be used to match people with a certain account name. For instance, You could set a ban on $a:nhandler* to ban all people with an account name beginning with nhandler 134 [00:51] <nhandler> The ~ negates that. So $~a:nhandler* could be used to ban everyone whose account name does not begin with nhandler 135 [00:52] <nhandler> $a with nothing after it is the same if I had used a wildcard 136 [00:53] <nhandler> $~a has the effect of matching all people not identified 137 [00:53] <nhandler> Examples of how to set these bans can be found on the freenode website: http://freenode.net/using_the_network.shtml 138 [00:53] <nhandler> That site also has a bit more information on what everything means 139 [00:54] <nhandler> Sometimes, you want a user to get forwarded to another channel when they attempt to join your channel. 140 [00:54] <nhandler> A common example of this is a user whose IRC client keeps quiting/joining, spamming the channel. 141 [00:55] <nhandler> You can append $#channel to the end of a ban to cause the user to get forwarded to #channel when they try and join your channel. 142 [00:55] <nhandler> You will need to either be an OP in #channel or the channel will need to have mode +F set in order to create this type of ban forward. 143 [00:55] <ClassBot> There are are 5 minutes remaining in the current session. 144 [00:55] <nhandler> An example of how to set this ban would be: /mode #mychannel +b $r:Foo*$#forwardtome 145 [00:56] <nhandler> This would prevent any user whose gecos begins with "Foo" (note the extban) from joining #mychannel. 146 [00:56] <nhandler> If they attempt to join #mychannel, they will get forwarded to #forwardtome 147 [00:56] <nhandler> Any questions? 148 [00:57] <erUSUL> why you use $r here ? can you explain that "type" ? 149 [00:58] <nhandler> erUSUL: $r matches on the realname field. So any users who had a real name that began with Foo in my example would be affected 150 [01:00] <mhall119> what is a "realname" in IRC? 151 [01:00] <mhall119> the ident? 152 [01:00] <nhandler> mhall119: Do a /whois on me. My real name is set to Nathan Handler 153 [01:01] <mhall119> ok, irssi is calling it "ircname" 154 [01:01] <pleia2> it calls it "real_name" in the settings 155 [01:01] <nhandler> Yep 156 [01:01] <pleia2> just to be confusing *pats irssi* 157 [01:03] <pleia2> for those of who who have their head spinning from nhandler's part - don't worry, this is advanced ban stuff that we covered to be thorough so you know they exist when you see them, I guarentee you that most of the ops out there don't know how to use them :) 158 [01:03] <pleia2> (like me, until now!) 159 [01:03] <stooj> Thank goodness :) 160 [01:03] <mhall119> that makes me feel better 161 [01:04] <nhandler> Yep. The only extban you will probably actually see/use would be $~a (to quiet unidentified users during a bot attack) 162 [01:05] <pleia2> any other questions? 163 [01:07] <pleia2> ok, well if anyone wants to test their new found skills, please feel free to nudge me and we'll hop over to ##pleia2 to play around 164 [01:07] <pleia2> we can kick and ban some stuff for sport! ;) 165 [01:08] <nigelb> haha, thanks for the class you folks :) 166 [01:08] <mhall119> yes, thanks pleia2 and nhandler 167 [01:08] <pleia2> thanks for coming, everyone 168 [01:08] <pleia2> we'll post the logs soon :) 169 [01:10] <stooj> Thanks pleia2 & nhandler 170 [01:11] <MichelleQ> braavo, pleia2 & nhandler 171 [01:11] <nhandler> :) 172 [01:13] <charlie-tca> Thanks very much