muhuk's blog

Nature, to Be Commanded, Must Be Obeyed

June 24, 2009

Psychic IRC Support In 10 Easy Steps

This list is somewhat specific to Django and #django channel on freenode.net.

Psychic support is what people are looking for when they expect others to just know their development environment and their code. If one doesn’t supply enough information on the problem, no matter how good a hacker the person on the other end of the conversation, it becomes a silly guessing game. So the following list is actually about avoiding psychic support and similar situations.

What Not To Ask

  • Don’t ask to ask! Just ask your question. Don’t ever say “I have a question about X, can anybody help me?”. Even worse is “Hello! Is anyone there?”.
  • Don’t ask for competency. It’s unkind to try testing people whether they are worthy of your question or not. This’ll only decrease your chances to get an answer.
  • Don’t ask what’s already documented. This is the most frequent and the most disturbing problem in IRC support channels. Django is exceptionally well documented. Nobody wants to parrot docs just because you’re too lazy to read them.

Psychic Support? You’ll Have To Wait... Long.

  • Ideally you should supply related code with your question. But it’s understandable for beginners to not know what to paste. Even so it becomes annoying when the person asking the question has a you-dont-need-to-know-that attitude. If you know so much, why are you asking here?
  • Don’t paste in the channel. It’s unreadable, I can’t copy & paste it for testing and worst of all you’re flooding the channel. If it’s more than 1 (in writing one) line, use a pasting service.
  • When pasting tracebacks always use the plaintext version. Don’t insist it’s plaintext when you have selected it with mouse from an HTML page and copied. Instead use Switch to copy-and-paste view link right next to Traceback header. Django is civilized.

Hit-N-Run

  • This is an unsolved mystery. Enter the chat room, send your question, leave as soon as you see it on screen... If you don’t get an answer immediately, don’t get discouraged. If there’s no activity, your message will be noticed when others check their clients[1]. If there’s activity and your message gets scrolled, you can repeat your question in reasonable intervals[2]. If you don’t have time to wait for and work through answers, you should postpone your question. Better not waste somebody else’s time for nothing.
  • IRC support is for practical problems. So if you are asking a question; please be kind enough to try out the proposed solutions and tell us about the results. Asking the same question again and again, even tough somebody has suggested a solution, won’t help you much. Instead try building on the topic, interact with whoever has joined the conversation and give feedback for their answers.

A Winning Effort Begins With Preparation

  • Django runs on Python. Python is a dynamic language. Just fire up the Django shell[3] and try out different possibilities. Make this a habit and you’ll see it is much more effective to run a couple of commands than asking someone else to guess their result for you.
  • Again, read the relevant docs before you ask. Don’t expect the title of a documentation page to be your exact question. Just read whatever you can find on subject. If people see that you’ve done your homework they will be willing to give you more attention.
  • Google your question. If your question is generic enough there is probably a blog post about it somewhere. StackOverflow has quite an impressive repertoire of Django related questions as well. In fact I suggest you to use SO for your non-trivial questions.

[1]Some of us have work to do you know. ;)
[2]Reasonable depends on the number of messages and the number of joins/leaves. In my opinion you should wait 5 minutes at least.
[3]Use manage.py shell command to enter the Django shell.

If you have any questions, suggestions or corrections feel free to drop me a line.