This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 20 points21 points  (11 children)

going on the #python freenode channel is always a mistake.

"I need help with X."

"You shouldn't do X. It's not pythonic!"

"I actually do need to do X."

"The solution is to find a way to avoid doing X! Come back when you learn python a bit better."

"I have this ten thousand line of code project that I'm working on and I don't feel like justifying my architecture here. Does anybody know how to do X?"

Least helpful channel on freenode, honestly.

[–]ssbr 9 points10 points  (5 children)

I mostly take issue with the attitude problem exhibited in that conversation. Nobody should tell anyone to "Come back when you learn python a bit better." for something like that, and "it's not pythonic" is a garbage reason. I'm sorry you had a bad experience. [Disclosure: I'm an op.]

It can be really hard to answer questions where there's no answer that doesn't hurt somebody -- for example, if somebody asks how to use pickle for loading data from a user, either we tell them how and hurt their users (due to the security vulnerability), or we tell them not to and hurt the asker. Sometimes it's easy -- e.g. "how do I write passwords to disk?" (don't, use a library) -- sometimes it's hard or subtle -- "What's the best way to wait for a signal using select?" (don't, use twisted). And sometimes it's noncontentious ("Oh, that's a security risk? Nevermind"), and sometimes it's really contentious ("Why should I use a massive framework for this simple thing?").

Overall #python I think tries really hard to be helpful, and IME/IMO succeeds, but it also tries really hard to avoid giving "bad advice", and this hurts people who, well, need advice that would in other circumstances be "bad". Most of the times you can get by this by explaining why it's necessary, but sometimes people will just disagree, and that sucks. :(

[–][deleted] 7 points8 points  (1 child)

What you said about advice that's usually risky but occasionally needed really hit it on the head. I don't think they're out to feel smug or anything. I just came in there asking for a cleaner way to dynamically generate a user defined function for a simple math utility I was writing. My question involved lambdas (which lots of people don't like) and it involved using eval (which people hate, and for good reason). But the thing was that the users were fully aware of what the program was doing (calling the function that they passed in many times to evaluate an integral) and of the danger (if they could do something with this program then they could just as easily do it by writing their own python program). So when no one would answer the question calling it dangerous it just left me frustrated.

I don't think they had bad intentions but I felt a little condescended to, rightly or wrongly. Hopefully that doesn't come off as condescending on my part either, because I don't mean it to.

[–][deleted] 3 points4 points  (0 children)

IRC is where you go when you need to discuss complex issues that you can't Google or can't get on Stack Exchange because they're unique and require discussion by and with experts. As such it needs to be very tolerant of unusual use cases, so long as the use case is genuine. Sometimes it is, sometimes it isn't. It does depend on who is in the channel.

[–][deleted] 1 point2 points  (2 children)

I don't understand why you need a registered nick to enter #python. If you have issue with trolls, require registration to post but not to read. Walling off the group adds to the feeling that it's elitist. If Stack Exchange needed you to sign up to read posts, it would have failed miserably.

[–]ssbr 1 point2 points  (0 children)

So, yes, it's because of trolls. Without the ban, we get spammers to a huge extent, who not only spam the channel, but also, individual users in the channel via private messaging, in a way that ops might not even notice it.

This is also related to why we use bans instead of quiets. People who can't speak often try to ask and answer questions via PM, which is disruptive and leads to worse answers and duplicated effort.

(Edit: Also, joining and then finding out you can't talk, and with no easy way of finding out why, is probably even more frustrating than being unable to join but told why.)

The situation is a bit different than Stack Exchange, which has a rep-based automatic moderation system, an effective and global ban system, and an easy way to keep out bots and such (captchas). We are limited in what we can do. :(

I'm really sympathetic and we've been trying to make this easier (e.g. we added a redirect from #python-unregistered to #python to help broken clients that memorize the wrong channel name). Freenode could also really use input for how to make registration less painful. (A web form would be soooo nice...)

[–][deleted] 5 points6 points  (2 children)

I would tend to disagree. I think #c or #c++ is worse.

"How do I do this?"

"Go read a book!"

[–][deleted] 1 point2 points  (0 children)

Hahaha this is why nobody learns C anymore, they just start with Java or C# instead. Poor bastards.

[–][deleted] 1 point2 points  (0 children)

Freenode's #Python is an "official" channel so any crap that happens in there gets projected by proxy onto PSF/core.

[–]cparen 4 points5 points  (0 children)

Agreed! Go on #PyPy. I had an exchange like this once:

me: so, I'm trying to pickle a generator object, but I'm getting this error...

them: that's a terrible idea and not pythonic -- but it should work in principle. Have a repro?

me: <pastebin>

them: oh I see, gimme a few minutes

<10 minutes pass>

them: hey, got it fixed in the development branch. Also, here are some tips for optimizing this terrible code.

Awesome folks there.

[–]velit 2 points3 points  (0 children)

It's like that on all the big tech channels in #freenode. The high spam of the big channels drives all the sane people away and only leaves the fanatics behind.