Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Cbstream login system changes: quest for a catchy name

by ambrus (Abbot)
on Jun 14, 2008 at 23:06 UTC ( [id://692114]=monkdiscuss: print w/replies, xml ) Need Help??

Synopsis

The cbstream bot which lets you talk in the chatterbox using any irc client is currently half-broken. I will change the way you log in to it to a different system.

This node documents the changes I will have to do, and ask for ideas in one particular question. I'm happy on any other comments as well though.

Current status of the bot

The downstream part of the bot should be fully functional, so you can read the messages of the chatterbox. The upstream part may or may not work, specifically you may not be able to log in to cbstream with your PerlMonks account. Because of this broken state however, you can expect some restarts and downtime when I start making the changes I outline below.

The change: login will be using an extra channel instead of MemoServ

As you probably know, if you want to talk using cbstream currently, you have to log in by sending a memo to the bot using the freenode service MemoServ. This memo contains your perlmonks account name and the password.

In the future, MemoServ will not be used at all. Instead, there will be a special irc channel used for this, where you send the login message, and only the bot can hear it.

The quest: find a good channel name for the special channel

I want to find a channel name for that new login channel that's easy to remember for cbstream users. I'd like suggestions for the channel name, including replies that agree or disagree with some of the already mentioned names.

Here are the requirements about the channel name. It absolutely has to start with a # character, be at most 30 chars in length including the sharp, can only contain printable ascii characters, and cannot contain a space or comma. It has to not already exist (case insensitively), and it should be one that other people probably wouldn't want to create either, because I don't want no name ownership disputes. (For the record, "cbstream" seems to be quite a unique name, so if you use it in the name, you're probably safe.) It should be easy to remember and easy to type for (current and future) cbstream users. (Of course, I will have the ultimate say of what name I'll use.)

Also, be quick with your votes for I may do the changes fast, though I can't promise anything.

My suggestions are #cbstream-login, and #cbupstream, the latter favouring people who have been using cbstream since the beginning and know about that name.

Technical details: why the change

Don't read this section unless you're ready for some ugly technical details. This section isn't necessary for ordinary users of cbstream.

Freenode has had its services pack replaced with a new one the end of last month. Services are some programs that handles tasks that an irc network needs but the irc server itself doesn't do: namely NickServ which manages registering nicknames, ChanServ which manages which users can gain what rights on each channel, MemoServ that stores messages for users that aren't online, and a few others.

The bot was using MemoServ instead of direct private messages to recieve its login messages because as my bot is often down, if someone impersonated its nick at those times, he could have read private message that people intended to send to the bot, so I didn't want to transfer sensitive information like perlmonks passwords that way. Logout commands, however, are safe to transmit in a direct private message for they don't contain sensitive data, in fact you can still send them that way to cbstream and will be able to do that in the future.

However, because of the way NickServ and MemoServ has changed by the services migration, it has become inconvenient to use MemoServ for sending the login messages. Twice now, I thought I could change the bot to adapt to the changes, but two more problems turned up a few days ago. (Update: thanks to planetscape for triggering one of the two bugs.) I believe that in theory it would be possible to fix the current system, but the changes it requires would be complicated and inconvenient. In fact, at least one freenode staff member stated his opinion that MemoServ isn't intended for this kind of thing.

I could think of two other ways to transmit the login messages. One is to use an external http form to log in. This would work, but the second is better.

Like I've said above, the method I've chosen is to have a separate login channel where you can type your passwords. Just like #cbstream itself, this channel will have channel modes +mz set, so only channel operators can read messages to that channel. Normally, the only channel operators will be the cbstream bot and ChanServ, the latter I can trust because it's ran by the freenode network. I and any perlmonks gods can also get a flag to be able to become an operator in emergencies, but this is not likely to happen often. I can trust perlmonks gods for this, because they could read your passwords anyway on the perlmonks server side. The full modes of the channel will be +mzRt-nir, which means users can write to it without joining, but they can join it as well if they find it more convenient. Also, the ChanServ SET GUARD option will be turned on.

The login channel has to be separate from the normal channel for two reasons. Firstly, I don't want people accidentally typing their perlmonks password but somehow mess up the command, as that could result in that password showing up in the chatterbox. Secondly, I'm giving operator rights to some people for the normal channel who are not perlmonks gods and not me – as I said above I can't do this on the login channel.

For perlmonks gods mostly: I'm giving op rights to the login channel

I'm giving operator rights for the login channel for any perlmonks god. This flag allows you to gain operator rights on the channel in case of emergencies by issuing a command to ChanServ, thus you can see who's using it, ban people from it, or kill the bot by kicking it.

I'm also giving operator rights for the normal channel not only to perlmonks gods but to other folks on my discretion (I may take these rights back too). This allows you to become channel operator on the normal channel, thus you can see who is sending what messages using cbstream on it, kick users, ban users, make important announcements about cbstream or perlmonks problems people who joined that channel can hear, or kill cbstream by kicking it. I'm also setting a flag that allows you to change the topic of either the normal or the login channels using a ChanServ message. I can also give a password by which you can kill the bots using the web form.

To apply to get these flags, send a message form your perlmonks account stating your intent and the name of your registered account on freenode. For the godly rights, do this from

Those people whom I have already given these operator rights will keep having them, and I will set the topic change flag for the new login channel that doesn't currently exist. For the godly rights, send the message from a gods/godes/tye account.

I ask Corion and theorbtwo to please apply again this way, for I don't remember whether I've done this proper procedure when I've given them op rights, so I'd like to verify that the corresponding account is indeed controlled by them.

For everything2 users: same as above for everything2 and cbriver

Almost all of the things stated above remain true if you replace cbstream with cbriver and perlmonks with everything2.

Thus, if you are a user or potential user of cbriver, these changes of the login system will apply to you as well, except I might implement them somewhat later than on cbstream.

The login channel will be a separate one from the one for cbstream, so please recommend names for this as well.

(For pedants, remove the comment about the name #cbupstream keeping only #cbriver-login as my suggestion; remove the line about Corion and theorbtwo; change gods/godes/tye to just gods; and correct all links.)

Please comment

I'd be happy to get feedback about any other issue than the two mentioned above.

Updates

2008 jun 20: turns out, I can't use channel mode -n because it doesn't work together with either +m or +R. This means you'll have to join the login channel to login, but you can part the channel after you've sent the login command.

2008 aug 4: I have decided that the name of the channel used to log in to cbstream shall be #cbstream-login, the channel used to log in to cbriver shall be #cbriver-login. Thanks for any comments so far.

2008 aug 4: Most of the changes have been implemented now for cbstream (not for cbriver yet), though there might still be some problems. See New login mechanism for cbstream for the announcements.

Replies are listed 'Best First'.
Re: Cbstream login system changes: quest for a catchy name
by ww (Archbishop) on Jun 15, 2008 at 02:36 UTC
    Excellent exposition; sounds like an excellent plan.

    FWIW, however, I have a mild preference for #cbstream-login as it seems more descriptive (and perhaps more memorable).

      I second that, #cbstream-login is more intuitive.

      BTW thank you, ambrus, for your great work, it really makes the CB easier to use.

Re: Cbstream login system changes: quest for a catchy name
by Hercynium (Hermit) on Jun 26, 2008 at 19:57 UTC
    Another vote for #cbstream-login

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: monkdiscuss [id://692114]
Approved by ikegami
Front-paged by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2024-04-25 15:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found