
Want it? Give. (Plea to Rails Developers) - r11t
http://ryanbigg.com/2010/04/want-it-give/
======
cscotta
I respect what Ryan's trying to do here, and understand the frustration that
is almost unavoidable when working on a community-driven open source project
with a large number of users.

But at the same time, I'm frustrated. I've found bugs, worked around them,
written up an incredibly detailed description of one. I wrote a patch, wrote
tests for the patch, and mentioned that I was a first-time contributor and
wanted to do it right. After a few positive comments, a member of Rails core
came along, made a dismissive comment, and left.

If you're going to write blog posts calling community members "useless,
pathetic bastards", you darn well better make sure that the community is one
that welcomes patches, encourages positive discussion, and if the patches or
contributions are inappropriate/applied at the wrong level of abstraction -
work to get it there.

Otherwise, you'll end up with a community of users that maintain their own
local patches, forking the core or components of it because the mental
overhead of sponsoring a patch and pushing it through takes weeks, while just
Getting it Done is a couple lines of code and push to your repo. Which is
(sadly), kind of where I'm at.

I love Rails. I like many of the principles it rests on, and I love the
flexibility it offers. I've learned at least half of what I know about
software development and engineering while programming Ruby. But when it comes
to dropping writing elegant code so that I can spend hours hammering through
endless gut-wrenching arguments on a Lighthouse ticket - count me out.

~~~
nikz
Could you post a link to the patch in question?

~~~
cscotta
Sure - it was awhile back and water under the bridge by now, but the original
ticket was here:
[https://rails.lighthouseapp.com/projects/8994/tickets/2628-r...](https://rails.lighthouseapp.com/projects/8994/tickets/2628-ruby-19-and-
activesupport#ticket-2628-4)

The bug was a Ruby 1.9-specific issue that another user had stumbled on which
I hit as well. Unicode support in the 1.9x series is great, but brought some
trouble along with it.

The problem in this case was that ETag generation in ActionController tested
the response data using a method that threw an exception if it hit a string
with an encoding issue. As such, the request would die after being processed,
but before being returned to the user. Because it occurs after calling render
in ActionController::Response, the exception was unrescuable. (Ed: No 500
error page, no rescue_action_in_public, or any indication of an exception -
just an HTTP response with an empty body). It was a sticky situation. Read my
longer comment if you're interested in a full explanation.

Anyway, I don't mean to re-open the discussion now. I eventually resolved the
issue by applying this patch locally, then moving to a new encoding-aware
MySQL adapter. Life's good.

------
ssp
In general when an open source project is failing at something, the maintainer
is failing at something.

A maintainer has a lot of power over the project he maintains, but this power
comes at the price that you have to make sure the boring stuff gets done: That
bugs get triaged and fixed, that releases get released, that patches get
reviewed and applied. If no one else is doing these things, then _you_ need to
be doing them. You should not be writing new features while complaining that
no one is helping you with the boring stuff. If you do that, then people are
entirely justified in whining and complaining about you and your project.
Eventually, they will fork or rewrite it or move on to other projects, and
rightly so.

Only once you are fixing the bugs yourself do you get to tell people to help
out when they ask about bugs or when the next release comes out, or when their
new feature patch will be reviewed. Sorry, open source maintainers. You don't
get to spend all your time pretending you are Linus Torvalds. You have to
actually do work.

I know almost nothing about Ruby on Rails, so maybe the above doesn't apply to
it, but if there are 900 tickets blocking the next release, then at the very
least, they likely failed at triaging.

------
aaronbrethorst
Software is routinely released with dozens, hundreds or thousands of known
bugs. That said, although I'm sympathetic to Ryan's request, the '900 bugs'
figure is pretty seriously off.

Lots of these bugs aren't assigned to any milestone. Many of the bugs that are
are assigned to 2.x. In fact: if you go look at the 3.0 milestone, there are
only 61 active tickets in there
([https://rails.lighthouseapp.com/projects/8994-ruby-on-
rails/...](https://rails.lighthouseapp.com/projects/8994-ruby-on-
rails/milestones/27004-rails-3))

Should some of the 2.x milestone bugs be fixed for 3.0? Probably. I dunno. I
have no idea what the Rails team's triage process is like.

A bunch of the bugs in Ryan's query are marked 'incomplete'. Here's one that
Ryan even said _should be closed:_
[https://rails.lighthouseapp.com/projects/8994/tickets/1160-s...](https://rails.lighthouseapp.com/projects/8994/tickets/1160-scoped-
models-serialize-into-invalid-xml)

It'd be great to see a call to arms like this also include links to relevant
information on contributing to Rails, in order to focus the inevitable nerd
outcry in a positive direction ;)

~~~
telemachos
In fairness to Ryan, he does include a link to the relevant information, but
in fairness to you, the text of the link doesn't make clear what it leads to.
(It's the link that says "Give back to the community" near the bottom of the
post.)

Here's a straightforward version of the link:
<http://guides.rails.info/contributing_to_rails.html>

~~~
aaronbrethorst
handy, thanks :)

------
naner
> Do you know of a project like this?

Yes. Nearly every open source project. It is hard to make contributing
effortless in self-organized communities.

------
dylanz
The only people to be upset at are the people that find a bug, have the
capacity to fix it, but don't, and complain instead.

Other than that, please stop yelling at me ;) Welcome to OSS. In the time you
took to write that rant, you could have probably resolved a bug or three.

Personally, the framework usually works fine for me. When it doesn't, and I
find a bug, I'll fix it. Done. That's a nice and natural workflow of OSS.

When I'm not working, I'm spending time with my children and my family. I find
a lot more happiness in that than I would fixing other peoples bugs.

I recommend finding happiness in the environment you're working with, and not
chastising an OSS community because there are easily fixable open bugs in the
system.

Maybe it's the wine talking, but man, that was a negative read to me. Back to
dessert, and maybe I'll run into a bug and fix it later (on my free time
even!). On a side note, I also love nerding ou on those bug smashing parties.
It's social, fun, and not required :)

~~~
ryanbigg
I enjoy your metric of "time to write post" vs "fixing bugs" and feel that it
is accurate. In fact, I was still hyped up about the post afterward that I
made a few patches myself (thereby proving your "time to write post" vs
"fixing bugs" metric just about correct) and got noticed by somebody on core
willing now to give me write-access to the tickets so I can do the janitorial
work necessary.

If you have children and family, of course they should come before any silly
little open source project ;). Absolutely. If I had a wife (or girlfriend, for
that matter) and kids I would be spending time with them too. But for now, I
devote my effort into coding and writing.

My post is more directed at those magnificently-talented people (and perhaps,
those who are not as much) to, instead of sitting there and wondering about
"What can I do?" or whining about "When is it coming?" to actually _do_
something about it. A great example of this would be a guy named Roland Moriz
who has been going through lighthouse and picking out tickets that should be
marked as invalid or completed. This is a simple process of just reading a
ticket and determining its status.

If a thousand people went into the lighthouse and picked out one ticket, just
one ticket, and "evaluated" it, then we would be long on our way to having no
tickets left to evaluate.

I sincerely hope you enjoyed your wine and dessert and I appreciate your time
spent to write that comment, all feedback is welcomed.

------
jimmyjames
1) Please don't swear, it makes you look like an angry teenager and it doesn't
help your message. 2) The fact that Rails has 900 bugs is appalling, but don't
blame it on the community, blame it on the team working on it 3) The Rails
core team is working on it because they wanted to scratch an itch, who are you
to tell me what itch I should be scratching? 4) I'm getting tired of the
arrogance displayed by Rails people (core team and community alike). We
understand you had a shot at becoming the Next Big Thing a few years ago. It
never happened, you're now reduced to a niche and you're trying to blame it on
others with this kind of pathetic call to action.

The world has moved on from Rails, enjoy your niche and stop trying to get
others to fix your mess (900 tickets... seriously?!?).

~~~
ryanbigg
1) I swear only to convey emotion. I feel it helps my message, but I realize
that other people do not feel that way. I respect your opinion. 2) The team
working on it is too closed. They need dedicated people to clean up the "mess"
left behind, to act as a kind of a Gatekeeper between core and community. 3)
If you're in the Rails community it should be you who is scratching "the
itch". Contribute 15 minutes of time a week to doing something beneficial to
the community. Personally, I've taken to keeping a list of all the people I've
helped and I'm going to put them on my wall as sort of an "achievement
tracker" in the form of sticky notes. These are the people who's development
lives I have added to, and this is one way I can silently thank them for using
Rails. 4) Rails community is still "exploding" and I think with the release
and associated press (read: circlejerking) there will be a lot more newcomers
to Rails.

To your final, unnumbered point: I disagree. There are still quite a few large
sites that are using Rails and if "the world" had moved on, wouldn't have
these sites also? I will not deny there being decent competition with Rails.
There definitely _is_ "solutions" that do it as well or (and this is something
you won't hear a Ruby guy saying often, so please enjoy it whilst it lasts)
better than Rails. Django, for instance, I hear is getting more popular and
some people are jumping ship from Rails to it. Rails will, for the (slightly
biased) foreseeable future, will still be a "big player" in the web-
application world.

~~~
jimmyjames
Rails has been "exploding" for years now, but it's still absolutely nowhere to
be found in most job boards, so for all intents and purposes, it is a niche.

I'm glad to see it grow because it contains a lot of very interesting ideas,
but at this point, it's pretty clear that it will never become as popular as
other "web frameworks" (using the term loosely here) such as PHP, ASP.net or
some of the many Java frameworks...

~~~
danieldon
_it's still absolutely nowhere to be found in most job boards_

Strange, considering there are always Rails jobs on craigslist in every major
city and on all startup boards. Hell, I don't even actively seek out contract
work and have offers on a weekly basis (in person, not even counting online)
from people looking for Ruby/Python web development.

 _PHP, ASP.net or some of the many Java frameworks..._

So? You put stock in argumentum ad populum? Hell, why not rip on Django while
you're at it, considering there are far fewer Django jobs than Rails jobs?
Nevermind the fact that despite Python and Ruby web frameworks being less
widely used than PHP overall they are still very strongly represented among
the most successful and innovative web projects of the past decade.

~~~
jimmyjames
<shrug>

Feel free to use whatever metric makes you feel good, all I'm saying is that
the number of jobs for Java, PHP, Javascript and ASP.net (yes, even Basic)
absolutely dwarfs those for Ruby on Rails.

~~~
ahlatimer
So, by lumping together four (or five) different platforms, you manage to come
up with a number that is larger than those using Rails? That's not entirely
surprising.

You're also counting Javascript, which I find odd. Javascript is used in ALL
of those platforms, so including it in an argument is extremely unfair. I do
some Javascript programming from time to time, but I also spend a fair amount
of time in Rails. When I was doing PHP and ASP.net programming, we were also
using Javascript. So, yeah, there are going to be more jobs for front-end
developers than those who program in some back-end platform, because all sites
need some sort of a front-end (excluding some project that's purely an API).

There's also a dilution of programming jobs for the aforementioned platforms,
from my experience. Finding a job doing Rails seems to be fairly easy as, even
though it was the "next big thing", the average programmer felt better
sticking with Java, PHP, or ASP.net. There are _way_ more Java programmers
than there are Rails programmers, but it seems the ratio of programmers to
programming jobs seems to be more in the favor of Rails.

~~~
jimmyjames
I agree with that last point, I have a few friends doing consulting for RoR
and they don't seem to have any problems finding work, but then again, neither
do COBOL developers.

RoR developers are as hard to find as RoR jobs, so I stand by my initial claim
that RoR has become a niche framework.

~~~
sunchild
What is your point? Based on your straight 0 ratings in this thread, hating on
Rails is also a niche. So what?

------
zacharypinter
Decent message, but unnecessarily antagonistic. Regardless, I'm prompted to
take a look at the bug queue and see if I can help a bit.

------
barmstrong
Anyone notice/figure out why his site doesn't display properly in mac chrome?

All the text shows weird characters.

~~~
telemachos
It's fine here: OS X 10.5.8, Chrome 5.0.371.0 dev.

~~~
mos1
Fine here too, 10.6.3 / 5.0.342.9

------
Mz
_Well, in this analogy, you sit back and let the cashier do it all. All of you
in the queue do. Nobody helps the poor cashier._

Nobody helps the cashier because you would be accused of trying to steal their
money if you began grabbing money up off the floor.

FWIW: I did volunteer work for years and years. At some point, I concluded I
would rather get paid for what I do. I am still trying to work out how to give
away stuff I think 'should' be free but also get paid for my time and effort.
It isn't easy to resolve questions like that -- at least it isn't for me and,
from looking around me, it seems it isn't for most folks. At some point, I
decided that if it made me bitter and angry to give my time and energy to
something, then I was somehow doing it wrong.

At the risk of going down in flames horribly, my observation has been that a
lot of hackers have, shall we say, limited social skills and this fact leads
them to be enormously frustrated with things like this -- ie they often just
don't know how to get people to do what they want them to do. Rather than go
to someone who has actual social skills/management skills/whatever is needed,
they then rail about the problem, usually in a way that alienates the very
people they want to win over. My experience so far has been that most such
individuals are not interested in constructive feedback on how they could more
effectively manage that end of things. They feel "wronged" (or whatever) and
telling them that what they are doing is counterproductive just seems to make
them defensive. (Well, it seems to make most people defensive, regardless of
their backgrounds.) But the reality is that if there is something you could do
differently that would be more effective, learning about that is very
empowering. About 99.99% of the time, you have no control over what other
people do but you can exercise some control over your own behavior. So
regardless of how badly I feel someone else has wronged me, I typically turn
my attention to "what could I do differently?" and "who might help me learn to
do something different and actually be effective?"

Good luck with this.

------
papachito
This guy must be new to open source. Most big open source projects have
thousands of open bugs, many of which are outdated, wrong or not that serious.

~~~
lapusta
I'd say "most community-lead ones".

Check out Spring Framework bugs(about hundred total): 8 for 3.0.3 (current
stable) 0 for 2.5.6 (previous stable)

------
ahoyhere
I hear calling people names is an effective way to change behavior.

~~~
code_duck
This blogger has mastered the Rails community attitude, apparently. Maybe he's
channeling Zed Shaw.

~~~
ryanbigg
Oh yeah, just because someone uses emotional words such as "fucking bullshit"
and "you pathetic bastards" he must be an asshole rather than a person trying
to convey a point.

~~~
code_duck
No offense intended, it's just a different culture I guess. I don't have a
problem with this style.

I'm simply observing that, say, Django doesn't have developers asking "So what
the fuck are you going to do about" the remaining tickets for 1.2.

