User-enabled sendpass

As a network, we feel it is hugely important to maintain close relationships with our many communities and users. Our interactions with users in #freenode and elsewhere on the network, fielding support requests and assisting users, help build and maintain these relationships.

But we’re constantly looking for things to change and make better, and one of the pieces of feedback we’ve had is that users would like a little automation – and the ability to be able to resolve some of their own support requests.

We recognise that allowing users to generate their own password reset e-mails brings us in line with other registration systems online and may provide a higher quality of service.

So for now, if you are having difficulties accessing your account, you can generate your own password reset e-mail using the following command:

/msg NickServ SENDPASS <account>

This command will only work with an offline account (i.e. it won’t work if a client is logged into your account via NickServ), and should obviously only be used on an account that you believe is yours.

We will be keeping an eye on how this feature is used, and may retain it permanently if it proves to be helpful and non-harmful!

Be Safe Out There

freenode is sometimes a target of spammers, bots, or attempts to trick users into taking action or giving up information they normally would not. One form of spam, popular recently, claims that freenode will require SASL to connect. Others attempt to lure users to a website that may generate revenue for the spammer, attempt to install malicious software, reveal information about the user (such as location, IP address, operating system, and so on), or lead to a shock site intended to offend or disgust. Other spam has no purpose except to cause disruption through channel noise, nick-highlights, and the ensuing complaints from those disrupted.

Don’t be a victim of these mischievous ploys. Don’t react when you see this sort of activity. Don’t click on unsolicited links. Don’t trust spam to be accurate or truthful. Instead, be a catalyst or just ignore the unwanted behavior. Most IRC clients offer a way to filter out messages from a person or containing certain text by using a command called /ignore. Even if your client doesn’t support /ignore, you can mentally ignore it just like you might ignore someone yelling on a street corner.

Bad behavior that is limited to one or two channels can be handled by the helpers and operators in the channel. If you feel compelled to report spam or abusive behavior, privately message one of the people on the channel’s access list, which may be seen using /msg chanserv access #channel list. To check how recently a person was active, use /whois nickname nickname. (Yes, put the nick twice). This will show whether they are away, and how long they have been idle. Some projects use a -ops channel (e.g. #ubuntu-ops) to make it easier to contact an operator.

If bad behavior is widespread, network staff may intervene. As always, staffers can be reached in #freenode. When reporting an issue, please do not (re-)paste spam or highlight many nicks. This only adds to the disruption and makes the reporter look like the spammer. When a staffer responds, you can privately message the content of the spam, if it is important to addressing the problem.

And one final word about announcements: any major change to the network’s operations (like, say, requiring SASL) would be announced properly through the website and/or blog. We might also announce it over IRC using a global notice or wallop. A wallop or global notice would come from a staffer — someone with a freenode/staff cloak in whois — and probably appear in your client’s server or status window. Spammers may choose nicks that look similar to those of staffers, but staffers will have a freenode/staff cloak and we will not spam channels as a way of making announcements. A bit of skepticism before trusting something seen on the internet can help keep you safe, and the network running smoothly.

Fosscon 2010 Free and Open Source Software Conference.

While talking online is great, meeting in person presents brand new opportunities… and we would like to meet you!

In 4 days (on June 19th, 2010), a number of us as well as members of the community in general will be meeting up for a conference in Rochester, NY, at Rochester Institute of Technology.  We are greatly looking forward to this awesome new opportunity.

Fosscon features 14 talks and 4 workshops. Below are just a few examples.

Free and Open in Education; More than just Software – Charles Profitt

Making the Most of Communities – Bryan Ostergaard

OpenStreetMap – Richard Weait

Linux in Business – Karlie Robinson

Resume Building Workshop with RIT’s Office of Co-Op and Placement

And many others, as well as Bird of a Feather sessions and an exhibition hall full of local users groups and interesting organizations.

We hope to see you there. Visit for more info or to sign up.

Free as in freenode

Most of you are probably familiar with the various freedoms that are frequently stated, such as freedom of speech or expression.  While freenode does exist to promote communication amongst free and open source projects, it is not an open forum for all to use in any way.

The purpose and goals of freenode are simple, but often misunderstood.  Freenode is a privately operated special purpose irc network, aimed at improving communication between developers, and users, and others interested in free and open source software.  These people and their ability to communicate efficiently are our primary concern and focus.  The “free” in freenode in intended to indicate this goal, and our commitment to providing a collaboration platform for those with an interest in free and open source software, rather than “freedom of speech or expression”.

As a private network, we do reserve the right to limit the sort of content allowed on freenode.  Some of things considered on and offtopic are outlined here.

Hopefully this clears up a little about what the “free” in freenode actually stands for (and what we do, as well).

Change in #defocus policy – and what do you think?

Since rearchitecting freenode’s network help and social channels, we’ve been considering various ways to improve them for our network users, and recently freenode’s steering committee has investigated and considered these issues.

Whilst many of you have indicated to us that you feel longer or more aggressive bans are required to prevent disruption, the steering committee feels that an alternative strategy is most appropriate for freenode, as harsher punishments go against what freenode stands for.

Therefore, as of September 15th #defocus will be a moderated channel. This means that in order to speak, users will need to be voiced in the channel. Most of the time staff will be around to voice users in the channel, and if they are not, then users will need to wait in order to be voiced.

Whilst we appreciate that this will inconvenience some of our users, we regret that the difficulty of managing the channel makes a change in policy of some sort a necessity. We request that users not ask for voice, either directly via staffers or in #freenode, as this will not result in being voiced sooner. Please wait patiently, and you will be voiced eventually.

As part of the change in policy, we’d like to solicit comments from you, the users. How do you feel about the way freenode uses its help and social channels? What improvements would you implement, and how would you plan and discuss them? We’d like to foster greater community feedback, and if you’ve got any general comments about any of these issues we’d love to hear them! Please let [email protected] know what you think!

Helping others help you.

From The Pragmatic Programmer:

Care and Cultivation of Gurus With the global adoption of the internet, gurus suddenly are as close as your Enter key. So, how do you find one, and how do you get one to talk with you? We find there are some simple tricks.

  • Know exactly what you want to ask, and be as specific as you can be.
  • Frame your question carefully and politely. Remember that you’re asking a favor; don’t seem to be demanding an answer.
  • Once you’ve framed your question, stop and look again for the answer. Pick out some keywords and search the Web. Look for appropriate FAQs (lists of frequently asked questions with answers).
  • Sit back and be patient. People are busy, and it may take days to get a specific answer.

Finally, please be sure to thank anyone who responds to you. And if you see people asking questions you can answer, play your part and participate.

This strikes particularly close to home as a freenode denizen. Everyone has some sort of problem and needs help, and it truly is a pleasure to help people who have done their homework.This quote was only a panel in the book, but documenting the especially tricky problems and staying around to help others ameliorates channel load and increases overall quality. It’s what makes freenode what it is.Thanks.

Keeping tabs on channel bans

The channel ban, initiated with a mode change of +b, is perhaps one of the most recognised and well known features of IRC, dating back to the origins of the protocol. freenode has implemented a number of features that extend the basic nick!user@host mask format because we believe that the ‘kickban’ is outdated and there are better ways of dealing with disruptions to channel activity. On freenode you will find the quiet, where by replacing +b with +q you can stop a user from speaking in a channel but they can still read the contents of it. It has been found that this creates a more positive atmosphere in the channel that means better discussion can take place. There is also the realname ban, used via +d.

There is however a downside to the ease of banning users on freenode from channels and that is that it is easy to lose track of bans set in large channels. There is no feature to auto-expire bans in IRC and in a busy channel it doesn’t take long for a large list to build up. With multiple operators in a channel things can very quickly become confused and no-one seems to know why ban x was set and whether or not the user should now be unbanned. This leads to unhappy users and a channel that misses out on potential positive discussion. In addition, channels have a limit of fifty bans set at any one time and bans end up being shed arbitarily in order to set a new set for a new threat. This can lead to obvious problems.

This issue is made worse by the fact that +e, +I and +d lists also share the fifty slot limit. This means that if a channel has a large list of ban exceptions or invite exceptions, the number of bans that can be set in a channel is severely limited. In order to avoid having these problems in your channel, we encourage you to take care that bans are being set only when necessary (as bans are generally a Bad Thing) and also to take responsibility for your bans. By this I mean that when a ban no longer makes sense it should be removed.

It is recognised that in some channels these limits may be problematic regardless of how tidy the channel is kept and our server does have the ability to increase the limit. This can be granted by freenode staff but is done so on a case by case basis, and not frequently — doing so indiscriminately would not only encourage channel operators to overfill their banlists, but could eventually cause resource and performance issues on the servers — freenode currently has around 16000 channels active, so increasing the memory consumed by each banlist would have a dramatic effect. Channels that have a lot of stale bans are unlikely to be granted this flag. Keep tabs on your bans for a happier channel with happier users, and clear out your channel lists to speed things up for everyone!

I would also like to take this opportunity to mention that if you are organising a conference or other event that will have many users connected to freenode at once or if you are a company or other establishment with many freenode users you can now request a larger connection limit by e-mailing your request, details and reasoning to ilines AT // NOSPAM \\ freenode DOT net. Conferences and large networks of users provide a substantial part of freenode’s active community and we always seek to accomodate those who are involved in this.

Communicating with the irc Community

For most of my professional career, I worked in the international arena. I’m not sure why I have always enjoyed that so much – perhaps as a result of having lived overseas for a portion of my life. There are, as a result, a lot of things that I take for granted in dealing with others, and I’ve recently become more aware that others often don’t think or don’t realize there is a bit of an art to dealing with folks from other cultures, countries, backgrounds and who speak other languages. On irc, there are so many different people, languages, cultures, it’s important to realize the need to do things a bit differently than we normally would, even though many of the traditional issues that arise when you’re face-to-face don’t exist.

The most obvious example is, even though the vast majority of us communicate on irc in English, a good number speak a different native language. This can cause all sorts of interesting (and sometimes humorous) miscommunications. Regardless of your native language, below is listed a few things that might help you to communicate more clearly with others.

To avoid causing miscommunication:

  • try speaking in full, clear, concise sentences. Due to the nature of irc and the speed with which some time, it’s often tempting to write quickly, abbreviating, using acronyms and partial sentences. However, this can be, and is often, confusing to a non-native speaker.
  • realize that “geek speak” is confusing enough for less technical native speakers and can be impossible to decipher for non-native speakers (even if they are technically inclined)
  • remember that not all irc clients use the same commands. This is especially important if providing assistance to another user. For example, some clients will accept “/cs” for “/msg chanserv”; some will not.

To avoid misunderstanding others:

  • if you don’t understand another person, ask them to state what they said in another way. Often if they repeat themselves with different words, formatting, etc., you can decipher what they want/need/said.
  • assume the best possible meaning. Sometimes someone will say something, that might seem harsh or offensive – realize that it may be that the person simply doesn’t know the words (or syntax) to state what he/she means.
  • look at the context. By looking at the channel you are in, or the topic that was discussed when the other person started speaking, you might be able to glean what the person intended.

Finally, there are a lot of resources on freenode – many people are more than willing to translate when necessary. Ask what language the person speaks, and then try to find another who speaks the language. If all else fails, come to #freenode and ask for help or message a staffer (“/stats p” lists all staffers on duty).

The fact is, irc is a fantastic way to get to know other people and to learn more about other cultures – and at a great price! I challenge and encourage each of you to up your level of communication.

All roads lead to #defocus

Some time ago I used to work as a special projects mentor for a large international company, one of the things I were to try purvey to the people I trained was ‘Change is good, change is great’. It took a long time for me to change my internal thought process and face my own fears of giving up security of what’s familiar, and as such it took a long time for me to be able to stand there in a room full of people and utter those words while actually believing in and meaning what I said.

This past week the phrase has played on my mind a lot, in regards to our changes to the official freenode help and social channels.

We are certainly hoping that this change will turn out to be good — and feedback so far has been primarily positive, though, that is not to say there hasn’t been those unhappy with the change.

I will try and speak of some of the reasoning behind closing down #freenode-social, and replacing it with respectively #freenode for help and #defocus for social chatter. The below quotations may help you understand some of the reasoning behind changing the way we operate our social channel, these are just some and not all of the observations made.

Over the last little while it has become apparent that running #freenode-social the way we currently do is not working for staff or users, and as such is not working for the network, the community or the visions and goals we possess.

We (freenode staff) propose to close down #freenode-social and replace it with #freenode (focused on user/network support ala #tapthru) and #freenode-offtopic (for general natter), in this regard we would like to extend an invitation to the tapthru staff to come on board and co-manage #freenode with us.

The list of items below should be considered a starting point for conversation rather than any definitive pronouncement of how the world should wag. It’s not complete (no such list can ever be) but tries to hit most of the major issues we’ll face as we embark on this project. Be blunt about your likes/dislikes of the various suggestions and about suggesting changes/additions/removals! Please note that there is no significance to the ordering of the items in the list below; that’s just how they came out. They have numbers only to speed the referencing of them during discussion.

1. What is wrong with #freenode-social? (This isn’t the finger of blame! Just a way to get a handle on what we are trying to fix.)
1. No defined topic (so no way to say: “that’s offtopic”)
2. No defined rules
3. Lack of regular chanops (we got scared and ran away)
4. Chanop behaviour is sporadic and hard to predict
5. Voicing/devoicing system has holes
1. Voicing is random. This can cause various behaviors:
1. People want to capture voice and hold it forever, against the time they might want to speak
2. When someone has waited hours to be voiced, (s)he may already be quite frustrated
3. By the time you’re voiced, you forgot why you came
2. We can’t remember why a person was devoiced
3. Access list too long to meaningfully evaluate
4. No system for ‘devoice for xx minutes’, so devoices either get forgotten and remain forever, or someone is re-voiced sooner than the devoicing staffer wanted them to be.
6. We used to say ‘be a catalyst in #freenode-social and maybe we’ll ask you to be staff someday’ … is that still true?
2. Some scenarios for the new #freenode channel (things people will come to say). ?? Categorize as (O)OK, (N)Not OK, (P)Private ??
1. Nick issues
1. Help me register my nick
2. Cloak me!
3. Someone took my nick
4. Lost my password
5. Help me admin my nick options
2. Client issues
1. Help me with my client
2. How does $somecommand work?
3. Cannot connect to freenode
3. Channel issues
1. I need help with my channel registration, modes, etc
2. They banned me in #foo!
3. #foo is offtopic/offensive/criminal/other, whatcha gonna do about it?
4. #foo has mean chanops
5. We are having a disagreement in #foo, please come and mediate
6. Explain primary/about channels for me again?
7. Does #foochannel exist?
8. Everybody come to #foo, it is the ubar-greatest!
4. About individuals
1. $somenick is PMing me and I don’t like it
2. $somenick is spamming/trolling/racist remarks/other on #foo
3. $somenick is spamming/trolling/racist remarks/other on several channels
4. $somenick is an asshole, kline him now
5. $somenick’s nick offends me
6. My friend $somenick was klined, remove it already!
5. Group issues
1. GCF approvals
2. Explain groups to me
3. I’m a GC and I need something done
4. Who is the GCF for $somegroup
5. $somegroup has no right to exist, we are the rightful owners of that group name
6. Freenode issues
1. $somestaffer treated me unfairly
2. I want to be a staffer
3. Teach me to be a catalyst
4. Announcements by staff
5. Donation issues
6. I want to host a freenode server
7. This wierd thing just happened, is it a network issue, help!
8. Help me understand the Freenode policy about $whatever.
9. I disagree with Freenode policy
10. Freenode should do this wonderful thing _______!
11. Freenode should endorse my campaign to save the world
12. I hate Freenode, rant-rant-rant.
13. I love Freenode, love-love-love.
7. Other
1. I need help with something not in 1-6 above
2. Let’s talk about my life issues/problems/whatever.
3. My political/religious/societal views
4. spam
5. random invective
6. http://somelink is funny/offensive/interesting/whatever, let’s all talk abut it
7. well, all sorts of stuff not found in 1-6 above
3. Escalating help. We all have different freenode-admin privs; some of us have none other than ‘helpful person’.
1. General SLA for the channel: “#Freenode tries but does not promise to solve your issue; if you are still unsolved here, talk to staffer via /stats p”
2. Try to identify things that should happen privately (in PM) and move there as soon as possible.
3. If you haven’t the privs to resolve an issue, send them to /stats p or /who *freenode/staff* asap
4. Suggestions?
4. #freenode discipline
1. What do we discipline for?
1. Offtopic
2. Tone/attitude
1. Ontopic but rude
2. Note- how to handle “I was not being rude, I was joking!”
3. Personal attacks/characterizations/judgements. (Suggest: we simply avoid all observations of a personal matter)
4. Giving out bad advice on the channel. Again, the issue of “I was joking” should be addressed.
2. Possible discipline escalations:
1. Catalyze in-channel, never ban or mute
2. Catalyze in-channel, ban or mute after x lines or minutes if it doesn’t work
3. Mute immediately and catalyze in PM; unmute when they understand
4. Ban/mute for x minutes on first offense, y minutes on second offense, z minutes on third offense
5. Replace ban/mute with redirec to #freenode-offtopic; perform all catalyzation in there
6. Some combination of the above
3. How to handle leftover bans/mutes?
1. leave forever since no one wants to override another chanop’s actions
2. periodically flush any ban/mute more than x days old
5. #freenode-offtopic discipline
1. none at all
2. same as main channel
3. relaxed rules
4. different rules entirely

Having spent some time discussing the situation and mulled over the above channel thoughts it was decided to move forward and start working out some clearer guidelines for the new channels. The name #freenode-offtopic was also replaced by #defocus, we considered keeping the #freenode-social name but decided that it was better to start afresh and sculpt something from the ground up and so we decided to re-name.

The guidelines for the two new channels are far from set in stone, and we will continuously evaluate them and we ask for your help in ensuring that we choose a set of rules which are of the most benefit to the community at large. In this regard I highly encourage you to e-mail staff at freenode dot net with any concerns, comments, questions or ideas you have. We love hearing from you and your feedback is crucial to making freenode what it is.

Like Rome, #defocus won’t be built in a day and we expect some fumbling while we try work out which way suits our community best. We’re trying something new and we are all learning on our feet.

I hope the above helped clarify some of the motivation behind #defocus and I hope that you will come join us in the channel.

Silence is Golden: Handling trolls and spammers

The Issue

Over the last few months, it’s occurred to me that many people aren’t quite sure how to react when a spammer or troll joins their channel. There is always a tendency to react, to do whatever is necessary to get someone’s attention to kick the spammer or troll. As a channel op, many of us face challenges in that even if we know how best to react, our peers on the channel tend to get riled up anyway. The result? The troll or spammer has done significant damage to the channel – disrupting “business” or conversations, changing the focus of discussions, etc.

First it’s important to understand what motivates most trolls/spammers. Simple: attention. They want your attention – whether it’s “good” or “bad” attention is unimportant. They simply want to change your focus from your customary topics to one thing: the spammer/troll. Consequently, reactions to trolls and spammers (other than a simple kick/ban, as may be necessary) tend to do one thing – encourage the troll/spammer to continue his/her behavior.

So what is to be done? There are really two groups of people to address at this point – channel operators (people who have the ability to kick/ban someone from the channel) and channel users. Since users vastly outnumber operators, I’ll address them first.

Channel Users

As a user of freenode, let me first say thanks! freenode is unique because of its users! We appreciate all of you and rarely get a chance to say so. So how can you help freenode and your favorite channels deal with the issue of spammers and trolls? The key is your reaction (or better, lack of a reaction). Since trolls and spammers are seeking to disrupt business and get your focus on them, the best thing you can do is NOT respond to them. Do not respond to their spam. Simple? It seems to be so – and in theory it is. In practice, it can be a bit harder – especially when a spamming or trolling attack is going on. Think “Catalyst“.

Here are a few ideas of how you might be able to express your frustration or communicate necessary information without encouraging the trolling or spamming behavior:

  • Take conversations to a private forum, channel or a private query message. This is true even if you’re trying to get the attention of someone who might be able to kick/ban the troll/spammer. Your lack of reaction on the channel is quite boring to the troll or spammer and will only make them lose interest more quickly.
  • Don’t discuss the situation for hours after the situation occurred. Many trolls have “legitimate” or alternate identities and will sit on a channel, not disrupting things, but watching the carnage they caused.
  • There are many ways for channel operators to address the issue of a troll or spammer, including changing the channel modes. If your favorite channel has suddenly gone +m (moderated) or to some other mode you’re not familiar with, don’t make a big deal of it. Ask one of the operators in a private message if you simply can’t stand to not know what happened. But again, keep it off the channel.

Channel Operators

As a channel operator, you have a tougher job when your channel is attacked by trolls or spammers. You have a responsibility to the channel to block/stop/end the attack, as well as keeping everyone else calm! Remember to catalyse throughout the process. Take heart – a little forward thinking will help a lot!

Dealing with the Troll or Spammer

There are a number of ways to deal with trolls and spammers. Of course, you have kick, ban and remove available to you. But you also have the ability to set some channel modes:

  • +r requires people to be identified with NickServ to join
  • +R requires people to be identified with NickServ to talk
  • +m moderates a channel, requiring +v to talk
  • +q is similar to a ban in that it won’t allow you to talk or to change nicks, but you are free to join the channel
  • +z will make ops (+o) able to see what a person that is neither +v nor +o says in a channel that is +m

Dealing with the Channel’s Reactions

First, remain calm. You set the tone for your users. If you get upset or excited, they will too. Secondly, you can help a lot by educating your users before any attacks occur. Let them know how trolls/spammers work and what they are seeking. Provide them with a clear understanding of what they should do and who they should contact in the event of an attack. Inevitably, people will react to some degree. Use the attack as an opportunity to educate – but do it in private; you want to keep reactions off channel and you also are more likely to be successful, avoiding embarassment by discussing the issue privately.