[06:19] <Guest60693> hi
[06:19] <Guest60693> I am a Java and Android Developer how can I contribute to Ubuntu Development
[06:19] <Guest60693> ?
[17:02] <AlanBell> Hello everyone
[17:02] <AlanBell> today we have Myrtti with an introductory session on being an operator
[17:02] <IdleOne> we can't send to channel
[17:02] <AlanBell> covering all sorts of interesting commands
[17:03] <Myrtti> so
[17:04] <Myrtti> hiya everyone, if everyone who are participating could give give me a hands up in the form hilight in the chat
[17:04] <Myrtti> that is, if you're not already joined in #ubuntu-classroom-chat, join and mention my nickname
[17:05] <Myrtti> I'm horribly late and disprepared this time, so I don't have channel access set up for our playground channel yet
[17:05] <Myrtti> so bear with me
[17:06] <Myrtti> !moderate
[17:07] <Myrtti> alright, that doesn't work then
[17:07] <Myrtti> nevermind then
[17:07] <Myrtti> so
[17:07] <Myrtti> I hope you've already registed your nickname
[17:07] <Myrtti> if you haven't, people in #freenode are happy to help
[17:07] <Myrtti> So let's start with dirty basics. I'm using irssi myself but this short primer is intended to be usable no matter what client you are using.
[17:08] <Myrtti> If you're planning to you some other client, like XChat, connect to freenode with the GUI tools, or wait a few minutes and I'll show how you can connect with the commands. I'll come back to how you can autoidentify to NickServ later on. I know many people like to use pidgin or other clients for IRC, but things are considerably easier if you use either irssi or XChat. Bitlbee can help you in the conversion from Pidgin/Empathy to ...
[17:08] <Myrtti> ... a proper IRC client, and you can ask about it later on, I can help with it a bit and I'm sure there's plenty of others who can help with it better than I can.
[17:09] <Myrtti> we're on a strict schedule so I hope you can wait for direct questions to me until end of the session
[17:09] <Myrtti> Also, if you notice a mistake in what I'm teaching to others or you have a suggestion on how to do things better, feel free to ask!
[17:10] <Myrtti> for reference, this session is an abbreviated version of the earlier session
[17:10] <Myrtti> http://irclogs.ubuntu.com/2012/03/12/%23ubuntu-classroom.html#t19:59
[17:10] <Myrtti> so if you want more hints on how to use irssi, or how to set it up, please refer to that
[17:11] <Myrtti> I should hope you know how to connect to the network using your preferred client
[17:12] <Myrtti> since you're here, you should know how to join channels
[17:12] <Myrtti> and how to message others in private
[17:12] <Myrtti> let's go to op basics. Before we start the actual business, some philosophical reminders about the job.
[17:13] <Myrtti> Escalation and catalysing are important things to remember. Person who breaks the guidelines should be warned first, and from there on the actions should be slowly be escalated if no reasonable result isn't achieved. Usually the route goes by *warning* -> *mute* -> *remove* -> *removeban*.
[17:13] <Myrtti> Freenode philosophy has an excellent essay about catalyzing, I wholeheartedly suggest everyone should read it. http://freenode.net/catalysts.shtml
[17:14] <Myrtti> The main point to be remembered is that mute/remove/ban isn't supposed to be considered a punishment, but rather a way of preventing more harm done. It should be possible for every single ban to be negotiated and resolved, if not by an op, then by the escalation process.
[17:14] <Myrtti> mind you - this doesn't mean that you need to entertain trolls.
[17:15] <Myrtti> if you are unsure how to act on people who appear to be acting like a troll, negotiate with other ops
[17:15] <Myrtti> or if none are available, with a freenode staff member - possibly in private
[17:16] <Myrtti> (we can be contacted in pm at any time without asking permission - although we do sleep and work occasionally=
[17:17] <Myrtti> Trolls don't need to be fed, so don't feed them. The cases where interacting with habitual trolls has benefited anyone are rare as chickens teeth
[17:18] <Myrtti> whatever you do... Remember: Everything that applies for normal user applies for supporter https://wiki.ubuntu.com/IrcGuidelines. Everything that applies for supporter of the channels applies for you https://wiki.ubuntu.com/IRC/SupportersGuide.
[17:18] <Myrtti> And most of all, both the normal and Leadership Code of Conduct applies to you as well. http://www.ubuntu.com/project/about-ubuntu/conduct and http://www.ubuntu.com/project/about-ubuntu/leadership-conduct. Behave accordingly. This session will not go into depth with these documents, so we'll move on to the actual training part.
[17:20] <Myrtti> if you have any questions, you can actually ask them now if you wish in the -chat, I'll answer them in FIFO order at the end
[17:21] <Myrtti> *IF* I can.
[17:21] <Myrtti> ;-)
[17:22] <Myrtti> unlike last time where we practiced the commands while I'm lecturing, this time we'll save that fun until the end
[17:22] <Myrtti> so we can clear out this channel for the next users in time
[17:22] <Myrtti> As per freenode recommendations, the IRC team has advised to op up (and stay opped) only when needed. This encourages users to not to ask for support specifically from the ops (in PM or publicly) and atleast in theory will facilitate non-op users to catalyse situations equally to the actual ops, creating a more equal atmosphere.
[17:23] <Myrtti> At the end of the lesson I will give a few aliases on how to automate opping up/down for certain commands. There are also scripts that will do the same functionality. About those later on. Now for the actual commands.
[17:24] <Myrtti> most of the op duties require interaction with ChanServ, because Chanserv manages the channel accesslists and what you can and can't do
[17:24] <Myrtti> if you wish to participate to the sandpit part at the end, please raise your hand in the -chat now, and I'll set up your access for the playpit
[17:25] <Myrtti> because the default status for an op on any Ubuntu IRC channel is to be unopped unless needed, we need to first op up
[17:25] <Myrtti> /msg chanserv op #ubuntu-sandpit nickname
[17:26] <Myrtti> Let's follow the escalation route and start with mute. Mute is a way to prevent users from sending to channel and/or others from seeing the text they send. Mute can be set with
[17:26] <Myrtti> /mode +q nickname*!*@*
[17:26] <Myrtti> once you've opped up
[17:27] <Myrtti> This prevents the user from sending messages to the channel. If the channelmodes include +z, then people opped can see what the muted say. We will return on what all the bits are on the command we used later on when we discuss bans more.
[17:28] <Myrtti> Some of you may be familiar with /kick - in Ubuntu IRC channels we usually use remove command. Some IRC clients, like irssi, don't include this command at all and don't pass command it doesn't recognize to the server directly, and so you have to give it as a direct command to the server with /quote. Thus, instead of /kick we use /quote remove.
[17:29] <Myrtti> Remove is used for few reasons, the most important one being that usually IRC clients do not include so-called "autorejoin on kick"-functionality. As the old proverb of the jungle says: "Kick is not an invite" - If we've decided to remove you from the channel for one reason or another, it is unlikely that things change in the split second you've rejoined.
[17:31] <Myrtti> Combined with a kick or remove, ban is the next up tool. Bans are set up just like quiets are, but as ban is available in all networks, users know how to bypass it by changing their nicknames and rejoining the channel. This is known as banevasion.
[17:32] <Myrtti> If a banevader is cloaked and is persistant enough in evasion, freenode may revoke their cloak and/or not issue a cloak as it would be possible to use the cloak as a tool of banevasion. Your client should know how to set bans based on only nicknames by using /ban command.
[17:32] <Myrtti> /ban nickname
[17:33] <Myrtti> If you are unfamiliar what a cloak - also known as vhost in other networks - is, please see http://freenode.net/faq.shtml#cloaks . Cloaks can be used as either a way just to hide your hostname part, or to show your affiliation to a project, and often by that rights to certain actions on channels.
[17:33] <Myrtti> Bans are set more generally against a hostmask, that is: nickname!username@hostmask, or more seldomly against a username or a realname. We will touch only the most common usecase of the aforementioned kind, if you need to ban someone by username or realname, ask for help when the need arises. When using a hostmask for banning people, please use appropriate * or ? wildcards.
[17:33] <Myrtti> For example, nickname?!?username@hostmask, nickname?!*@hostmask, *!*@hostmask, or different ip ranges. Cloaks can be wildcarded the same way IP addresses and hostmasks can, for example *!*@dsl-hkibrasgw*.dhcp.inet.fi would ban everyone connecting to IRC from the Helsinki gateway of Sonera, one of the biggest ISP's in Finland, while *!*@*.staffs.ac.uk bans everyone from Staffordshire University.
[17:34] <Myrtti> When using wildcards, try to include the smallest possible range that you think will prevent the user from evading their ban. If you do end up setting a ban on a large range of addresses then make it a banforward to #ubuntu-ops so anyone accidentally caught by it can be helped around it (more on banforwards coming up)
[17:34] <Myrtti> One thing to worth noting is the username field, the *!username@* part. If it does not start with a tilde ~, the user connects from a computer or server running identd. identd operates by looking up specific TCP/IP connections and returning the user name of the process owning the connection.
[17:35] <Myrtti> when a user is connecting from a host running identd, the user can't change the username on their clients and it is safe to assume that while they are connecting from that machine, their username stays the same.
[17:36] <Myrtti> Banforwards are used to guide users to other channels. Their main uses in Ubuntu IRC channels are to guide people to the #ubuntu-ops channel, or if a user has a client that is misbehaving disruptively (disconnecting and rejoining channel on quick succession in a way which is disturbing the discussion or channel itself) to ##fix_your_connection.
[17:36] <Myrtti> if you banforward someone to ##fix_your_connection, join the channel yourself to monitor, when their connection stabilises
[17:37] <Myrtti> Banforwards are set just like normal bans, but at the end of the banmask the channel you want the user to be forwarded to is appended by $<channelname>, for example $#ubuntu-ops. Since some clients use autorejoin on kick, this is one of the usecases where using kick instead of remove is valid. Just remember to set the banforward *before* kicking. The banforwards are set with
[17:37] <Myrtti> /mode +b nick!username@hostmask$##fix_your_connection
[17:38] <Myrtti> Run-by-trolling/spamming attack participants can be unbanned after few hours without discussing it with them, as nicknames, usernames and often ip's are throwaway ones or drone machines and they are unlikely to be used again, and freenode usually responds to big scale multiple channel attacks with K-lines (network bans).
[17:38] <Myrtti> It is important to try to keep the ban list as short as possible. Otherwise, unbanning should be done only after discussing with the banned person and telling them why they were removed and banned from the channels, either in PM or #ubuntu-ops. Unbanning can be done with
[17:39] <Myrtti> /mode -b nickname!username@hostmask
[17:39] <Myrtti> Unmuting is -q.
[17:40] <Myrtti> There is a bit more to being an op, but usually those situations are such that more than one operator are present and can help you. Please do ask for help.
[17:40] <Myrtti> You can unop yourself with two methods, one by doing it directly yourself and the other by asking chanserv to do it.
[17:40] <Myrtti> /mode -o nickname
[17:40] <Myrtti> /msg chanserv op #ubuntu-sandpit -nickname
[17:41] <Myrtti> are we still hanging on?
[17:42] <Myrtti> During the years of being an op in Ubuntu IRC channels, I've used both scripts and aliases to interface with nickserv and chanserv and to perform the ops tasks. For years I've used only aliases instead of scripts as I can better monitor and fix what they do. These aliases are for irssi, but you can modify them for XChat quite easily. There are some instructions on how in https://toxin.jottit.com/xchat_user_commands, irssi $C is ...
[17:42] <Myrtti> ... %c in XChat, irssi $N is %n in XChat, $0 is %1 in XChat and so on.
[17:42] <Myrtti> I will posted these aliases on my website and I'll give the link after I've explained them here first and finished the tutorial.
[17:43] <Myrtti> It is perfectly ok to use scripts instead of these aliases too. Other participants can later give you links to their scripts, tips and thoughts.
[17:44] <Myrtti> sadly inputting aliases isn't as simple or textbased in XChat as it is in irssi
[17:45] <Myrtti> /alias NS /^msg nickserv
[17:45] <Myrtti> How do aliases work? Alias sets a shortcode for combining or renaming commands. For example this one creates an alias called NS, which is /^msg nickserv - /^msg directs the command in irssi to the statuswindow (window 1) and doesn't log the messages if you've set to log all your private messages. Aliases can use parameters that you give while using the alias, or which irssi/Xchat takes from the environment. N is nick, C is ...
[17:45] <Myrtti> ... channel you're on, 0 and 1 in irssi and 1 and 2 in xchat are the next parameters.
[17:45] <Myrtti> /ns and /nickserv are also available as server-side commands, so clients that pass unknown commands to the server (which is most of them, not including irssi) will work with them by default.
[17:46] <Myrtti> other nickserv aliases are
[17:46] <Myrtti> /alias NSHELP /^msg nickserv help
[17:46] <Myrtti> /alias NSGHOST /^msg nickserv ghost
[17:46] <Myrtti> /alias NSIDENTIFY /^msg nickserv identify
[17:46] <Myrtti> /alias NSINFO /^msg nickserv info
[17:46] <Myrtti> /alias NSRELEASE /^msg nickserv release
[17:46] <Myrtti> these should be quite selfexplanatory
[17:47] <Myrtti> /alias BANS /mode +b;/mode +q
[17:47] <Myrtti> this command lists all the bans and quiets on the channel you are on, if you're allowed to see them by the channel flags.
[17:47] <Myrtti> /alias BANSEARCH /msg ubottu @bansearch
[17:47] <Myrtti> /alias BANLOGIN /^msg ubottu @login;/^msg ubottu @btlogin
[17:47] <Myrtti> if you've got access to ubottu's ban database, you might find these aliases useful. First one searches the database, but isn't too reliable. The latter combines both login commands, the one you need for the bot to recognise you and the second which gives you a link to the bantracker.
[17:48] <Myrtti> then we'll move to ChanServ aliases
[17:48] <Myrtti> /alias CS /^msg chanserv
[17:48] <Myrtti> /alias CSHELP /^msg chanserv help
[17:48] <Myrtti> /alias CSACCESS /^msg chanserv access $C list
[17:48] <Myrtti> this command gives you the access list of the channel you are on
[17:48] <Myrtti> /alias CSINFO /^msg chanserv info
[17:49] <Myrtti> /alias CSOP /^msg chanserv op $C $0
[17:49] <Myrtti> this command is short for the command that we used in the beginning of the session to op up or if given a nickname in the end, someone else. Usage:
[17:49] <Myrtti> /csop nickname
[17:49] <Myrtti> /alias CSDEOP /^msg chanserv op $C -$0
[17:49] <Myrtti> and this is the the deop command
[17:49] <Myrtti> /alias CSMODE /^msg chanserv op $C $N;/wait 2000;/mode $0;/^msg chanserv op $C -$N
[17:49] <Myrtti> this command will help you set channelmodes
[17:49] <Myrtti> /alias CSINVITE /^msg chanserv op $C $N;/wait 2000;/invite $0;/^msg chanserv op $C -$N
[17:49] <Myrtti> will invite someone to a channel you're on, if you're an op
[17:49] <Myrtti> /alias CSTOPIC /^msg chanserv op $C $N;/wait 2000;/topic $0-;/^msg chanserv op $C -$N
[17:49] <Myrtti> and this will help you change the topic. Please see /cshelp TOPICAPPEND and TOPICPREPEND for other ways of getting ChanServ help you with setting the topic.
[17:50] <ClassBot> There are 10 minutes remaining in the current session.
[17:50] <Myrtti> then to the actual opping stuff
[17:50] <Myrtti> /alias CSMUTE /^msg chanserv op $C $N;/wait 2000;/mode +zq $0;/^msg chanserv op $C -$N
[17:50] <Myrtti> this alias helps you mute
[17:50] <Myrtti> or rather, the channel management in bigger scale
[17:51] <Myrtti> /alias CSREMOVE /^msg chanserv op $C $N;/wait 2000;/quote remove $C $0 :$1-;/^msg chanserv op $C -$N
[17:51] <Myrtti> /alias CSREMOVEBAN /^msg chanserv op $C $N;/wait 2000;/quote remove $C $0 :$1-;/ban $0;/^msg chanserv op $C -$N
[17:51] <Myrtti> Remove and Removeban aliases:
[17:51] <Myrtti> /csremove nickname reason
[17:51] <Myrtti> /csremoveban nickname reason
[17:51] <Myrtti> and for canned, quickly usable reasons
[17:52] <Myrtti> /alias CSR /^msg chanserv op $C $N;/wait 2000;/quote remove $C $0 :Please see https://wiki.ubuntu.com/IrcTeam/AppealProcess if you feel mistreated;/^msg chanserv op  $C -$N
[17:52] <Myrtti> /alias CSRB /^msg chanserv op $C $N;/wait 2000;/quote remove $C $0 :Please see https://wiki.ubuntu.com/IrcTeam/AppealProcess if you feel mistreated;/ban $0;/^msg chanserv op  $C -$N
[17:52] <Myrtti> of course you can modify the canned responses to whatever you like, or make new ones.
[17:52] <Myrtti> Note that there are no quickaliases for unbanning, unmuting or doing banforwards as I find it better to do those manually without aliases.
[17:52] <Myrtti> irssi aliases: http://myrtti.fi/irssialiases
[17:52] <Myrtti> xchat aliases that you can't sadly input as easily as you would in irssi http://myrtti.fi/xchatalias
[17:53] <Myrtti> this is the end of the scripted show, those of you who wish to practice how to use the commands by kicking, banning and fooling around can join #ubuntu-sandpit, which I shall set up for our use
[17:54] <Myrtti> I will also invite you to continue whatever discussion we are in the middle of as the hour turns, there
[17:55] <ClassBot> There are 5 minutes remaining in the current session.
[17:57] <Myrtti> IdleOne asked earlier in the other channel what to do with persistant trolls that waste your harddrive space by filling it with logs
[17:58] <Myrtti> my personal favourite is ignoring them in one way or another
[17:58] <Myrtti> irssi even has a script that enables you to ignore in irssi but directing the input into a logfile
[17:58] <Myrtti> (if you prefer to still keep them filling your harddrive in log files)
[17:59] <Myrtti> that is, if they are trolling you in pm
[17:59] <Myrtti> just remember, not to feed the trolls
[18:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2012/07/26/%23ubuntu-classroom.html
[18:00] <Myrtti> le finis!
[18:01] <Myrtti> thank you everyone, and if you have questions I'm more than happy to answer them in the channels mentioned in the session, or in #ubuntu-irc
[18:01] <x1k> thanks!
[18:06] <Myrtti> huh. I actually thought that there'd be another session by someone else right after
[18:06] <Myrtti> oh well.
[18:06] <AlanBell> thanks Myrtti, excellent class and I know the logs will be referred to for many years to come
[18:06] <AlanBell> Myrtti: that ended up in a separate channel #ubuntu-on-air
[18:06] <Myrtti> ah right