[11:52] <jrib> hmm listen to LjL or go to gym...
[11:55] <LjL> i doubt i'm going to say anything much that you don't know jrib...
[11:59] <jrib> LjL: k, i'll read scrollback later then.  Have fun!
[12:01] <tomtiger11> Is it time?... :)
[12:02] <tomtiger11> nm
[12:06] <LjL> tomtiger11: in an hour i believe
[12:17] <tomtiger11> LjL: yea, I remembered the UK is in BST ;)
[13:01] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2012/08/02/%23ubuntu-classroom.html following the conclusion of the session.
[13:02] <LjL> Hello. In this session I'll give an introduction to the bots I'm familiar with, and the channels they use.
[13:03] <LjL> The three bots I'll cover are the FloodBots, MetaBot and BestBot.
[13:03] <LjL> FloodBots
[13:03] <LjL> ---------
[13:03] <LjL> First (and most involved), the FloodBots. They're multiple bots running the same code that you'll find in #ubuntu and #kubuntu, that serve multiple purposes; most importantly, like they name implies, they flood. No, I mean, they try to *prevent* floods and spam.
[13:03] <LjL> There are two things you probably have already noticed the FloodBots doing: setting a channel mode "+j" and "-q", and muting/unmuting people who post too many messages in a row.
[13:04] <LjL> The bots can be in one of two modes: "hooked", or normal mode, and "unhooked", or emergency mode. Of course these are just names I made up. When the bots are hooked, it means they think everything is alright with the freenode network and themselves, so they'll set "+j", mute flooders, and do other things.
[13:04] <LjL> If the bots think something is wrong, they'll "unhook", set "-j" and stop their normal operation. For you, that means basically the automatic handling of flood will not happen.
[13:04] <LjL> But what is "+j"? It's a channel mode that avoids situations where many people join the channel all at once. Why is that a problem? Because spambots are known to do that: they make very many clones join, and spam.
[13:05] <LjL> Where do people (or bots) who are stopped from joining end up? They end up in #ubuntu-unregged, the "overflow" channel. You can join it now if you want. The FloodBots will ask people who land there a very simple question (or give them a "captcha"), and if they reply correctly, they will be able to join #ubuntu or #kubuntu.
[13:06] <LjL> I'll stop for a moment to let you join #ubuntu-unregged if you want to peek in, and ask any questions if you have them (I believe you're supposed to use #ubuntu-classroom-chat to ask questions).
[13:07] <LjL> [15:07:11] <AlanBell> QUESTION: so people just need to be registered with nickserv to not end up in -unregged?
[13:08] <LjL> In general, people *don't* need to be registered to join #ubuntu. But if there's a "mass join", or (as I'll mention later) the channel is set "+r", then yes, they'll need to be registered with NickServ...
[13:08] <LjL> ... *or*, they can just answer the "captcha" question the FloodBots pose them.
[13:09] <LjL> In fact, #ubuntu-unregged also has another purpose, which is where its name come from: when the main channel is set +r (meaning that only registered users can join it), unregistered joiners end up in #ubuntu-unregged - and again, they get asked a question by the bots, so they can eventually join even if they choose not to register.
[13:10] <LjL> [15:10:03] <tomtiger11> QUESTION: What sort of system is in place to stop people spamming ubottu?
[13:11] <LjL> ubottu is a bit outside the scope of what I'm particularly familiar with (as in: I didn't write it), but as far as I know, ubottu ignores repeated requests. It can also be set to ignore certain users. I don't think there is very much beyond that.
[13:12] <LjL> Ok, I'll proceed with the FloodBots stuff...
[13:12] <LjL> When is the main channel set +r? During spambot attacks. This can happen automatically: the FloodBots try to detect when an attack is in progress, and they'll set "+r" for a little while.
[13:13] <LjL> Or an operator can do it manually: even then, I recommend telling the FloodBots to do it for you, and later I'll explain how you can do that.
[13:13] <LjL> As I said, the other thing you'll often see the FloodBots do is mute people who "flood". This may seem relatively trivial, but I want to answer some questions about it that I think might come natural:
[13:13] <LjL> * How do the bots know when the user is finished flooding? When they mute them, they also set channel mode "+z". That will let opped users (such as the FloodBots themselves) see what the muted user is saying. When the bots see silence from them, they'll remove the mute. This way, a user only stays muted for the necessary time.
[13:14] <LjL> * How many lines is considered "flooding"? I can't give this a definite answer, because the bots use various methods to determine that. Anyway, the bots warn users after a few lines, *before* the mute takes place, so if they're flooding, they have a chance of stopping.
[13:14] <LjL> * How do users know they've been muted? First, the bot warns them in the channel to stop flooding; then after the mute takes place, they warn them in private; when the mute is removed, they tell them in private that they can speak again.
[13:15] <LjL> Any questions about the muting? It's handled transparently, but it's possibly the main or most visible feature of the bots, so maybe there are more doubts about it.
[13:16] <LjL> Meanwhile, how can you interact with the floodbots? The general idea is that you shouldn't have to, and they'll work transparently, but there are always exceptions.
[13:16] <LjL> The channel to control them is #ubuntu-ops-monitor - it's a private channel, and you'll need an invite to join. If you are an operator in #ubuntu and you aren't there yet, feel free to ask me for an invite now or later.
[13:17] <LjL> The commands you can use in #ubuntu-ops-monitor are described at https://wiki.ubuntu.com/IRC/Floodbots - I just want to mention "protect", which sets "+r" for a while. You can use it if #ubuntu is being attacked by spammers, as I mentioned earlier.
[13:17] <LjL> The way to use it is to type, for example, "protect 15", which will set "+r" for 15 minutes. If you want to remove the "+r" before time, use "protect 0".
[13:18] <LjL> Another channel the FloodBots use is #ubuntu-read-topic, but that's honestly not very important :)
[13:19] <LjL> Another "exception" I'd like to mention concerns users who connect from the freenode webchat. Without going into the details too much, these users are "filtered" by the FloodBots, so that they can be banned like other users if needed, which wouldn't happen otherwise.
[13:19] <LjL> What does this mean for you? Simply put, if you "remove" (kick) a webchat user, they will automatically be banned by the FloodBots. If a ban wasn't really warranted. you will need to remove it yourself.
[13:20] <LjL> I'm done with the FloodBots (finally). Any questions about them, if not I'll proceed with a couple other much less "troublesome" bots to talk about.
[13:21] <LjL> [15:20:42] <JoseeAntonioR> QUESTION: Can you explain a little bit more about their functions in #u-unregged?
[13:21] <LjL> They mainly do two annoying things in #ubuntu-unregged:
[13:22] <LjL> They keep saying "Please register to join #ubuntu, because you've landed in the channel for unregistered users" or something like that (when +r is set, or for ~10 minutes after it was set)
[13:22] <LjL> And they ask individual users simple "captcha"-style questions like "what is 2+2?"
[13:22] <LjL> If the users answer these questions correctly, they get /INVITEd into #ubuntu.
[13:22] <LjL> Does this answer it?
[13:23] <LjL> I'll proceed with the other two bots I wanted to mention.
[13:23] <LjL> MetaBot
[13:23] <LjL> -------
[13:23] <LjL> MetaBot sits in #ubuntu, #kubuntu, #ubuntu+1 etc and monitors questions and answers. It uses mainly a Bayesian filter to attempt to determine what is a support question, and what is not.
[13:24] <LjL> Its purpose is to identify support questions that go unanswered. If you want to help answer them, join #ubuntu-meta and watch for them.
[13:24] <LjL> If you join #ubuntu-meta right now, chances are you'll see questions "piped" there within a couple of minutes.
[13:24] <LjL> In the topic of #ubuntu-meta you will find how to have MetaBot alert you of questions that concern specific topics. Just remember that MetaBot does what it can, but it's just a machine, and it's bound to mix up topics (or even think something is a question when it's not).
[13:25] <LjL> Do you want to help make it recognize questions better? Then join #metabot and help "train" the bot. This is recommended only if you're very bored!
[13:26] <LjL> ... and I'm done with MetaBot (told you it wasn't as involved as the FloodBots). But it's still a bit more complicated than this, so if you're curious, ask away.
[13:27] <LjL> [15:27:10] <tomtiger11> QUESTION: How is metabot trained? How is the training used by the bot?
[13:27] <LjL> If you join #metabot, you will see it basically pipes there every single thing that is said in #ubuntu and friends.
[13:28] <LjL> For each of those messages that get piped, you can give MetaBot commands that tell it "this message is a valid question and belongs to the category 'APT'" (for example)
[13:28] <LjL> Or "this message is nonsense, it's not a valid question and you should ignore it"
[13:30] <LjL> The syntax is explained if you type "help" in #metabot, but basically, "cat <category> <nickname>" to say something is a valid question of the given category, and "null <nickname>" and "spam <nickname>" to say it's not-a-question or nonsense.
[13:30] <LjL> By the way, this is virtually the same mechanism that your email client probably uses to filter out spam.
[13:31] <LjL> You "train" it to recognize spam from non-spam, and MetaBot is "trained" to recognize questions from non-questions (and additionally categorize them, which is not much different).
[13:31] <LjL> Ok, next bot:
[13:31] <LjL> BestBot
[13:31] <LjL> -------
[13:32] <LjL> BestBot sits in #ubuntu-bots. Its purpose is to answer a common kind of question that occurs in support channels, but that isn't really a valid support question: "What is the best program to do X?".
[13:32] <LjL> It's meant to be "fun", because people can vote - tell the bot what they think is the "best" program - and see how many people voted for various pieces of software.
[13:32] <LjL> #ubuntu-bots can also be used to play with some other bots (ubottu for starters), and there is also #ubuntu-bots-team as the backstage for various bots.
[13:33] <LjL> You can also ask BestBot to give you a *list* of all the programs in a given category: I think this is the particularly useful part, because a valid support question is "what can I use to do X?".
[13:33] <LjL> Try asking the bot (publicly in #ubuntu-bots, it doesn't work in private) to "list every IRC client" for example. You'll see it can, sort of, tell you about GNOME and KDE clients separately, or console clients, etc.
[13:33] <LjL> You can teach the bot new things, by voting or by simply saying (for example) "xchat is an IRC client". Its database is already relatively extensive (and unfortunately also a bit messed up, I should clean it up some time), but the repositories contain about 40000 packages, and there's certainly more to add!
[13:34] <LjL> Questions about BestBot? Don't expect it to understand commands, by the way, it's supposed to be "fun" so I made it to pretend to recognize natural language. Which is a mixed blessing, I suppose.
[13:36] <LjL> I've mentioned a few channels while talking about the bots. I'm sure you already know about #ubuntu-ops (if you're a core op you're there already, if not, you aren't supposed to idle in there, but you can always join for operator questions or issues), but remember there is also #ubuntu-irc, where everyone *can* idle, with a broader scope.
[13:36] <LjL> [15:35:36] <tomtiger11> QUESTION: Is BestBot's source available?
[13:37] <LjL> At the moment it's not available (it might be... somewhere, but it's almost certainly not the latest version). It's a very hacky bot, but if there's interest, I can just put the source somewhere.
[13:38] <LjL> Ok, I'll try to not be lazy, polish its source code a little, and upload it somewhere accessible :)
[13:38] <LjL> This question reminds me of something else though:
[13:40] <LjL> The FloodBots source code is NOT available, and there is some concern about making it available. BUT if you want to help reduce that concern (by reviewing the code), access to the source code is available to Ubuntu core ops who request it.
[13:40] <LjL> [15:38:43] <tomtiger11> QUESTION: Do you know what language it is coded in?
[13:40] <LjL> All the bots I described are based on the same original source code; they're *very hacky* bots, and that's partly why the source code is not available, but they do their job etc. I hate to admit it, but they're written in PHP :-P
[13:43] <LjL> Well, I guess we're done. I'm sorry I haven't introduced you to our actual main bot, ubottu, but I only know as much as the next guy about it myself. Ubottu is *not* written in PHP, it's written in Python and based on Supybot, that much I know - I believe its home is in #ubuntu-bots-team, where people have more knowledge about it.
[13:44] <LjL> Thank you for attending and sorry if this has been a bit messy, my excuse is that I'm not feeling too well and I haven't been able to prepare very attentively ;(
[13:44] <LjL> [15:43:55] <JoseeAntonioR> QUESTION: Is there any bot that helps in opping ops in case ChanServ is not available for a netsplit/services update/etc?
[13:45] <LjL> No. The FloodBots could theoretically do this, and I've sometimes thought about it, but it seemed a bit of a security issue, so I decided to avoid it.
[13:46] <LjL> I mean, ChanServ is actually built by people who know what you're doing, the FloodBots are written by me and I wouldn't want to have random people opped by mistake :-P
[13:47] <LjL> [15:46:52] <JoseeAntonioR> maybe a +o to ubottu when it detects a chanserv quit may work
[13:47] <LjL> I can think about that a little more. I'm not ruling it out, it just makes me a little uneasy.
[13:50] <ClassBot> There are 10 minutes remaining in the current session.
[13:51] <LjL> ClassBot: Here in Italy when there are only 10 minutes left, the class is dismissed. =)
[13:55] <AlanBell> thanks very much LjL :)
[13:55] <ClassBot> There are 5 minutes remaining in the current session.
[14:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2012/08/02/%23ubuntu-classroom.html