Hi folks,
I've been prone to having crazy ideas before, but this one is my
latest. After posting a long, whimsical post on the O'Reilly blog
about this, my friends have persuaded me to try this for real.
If you haven't read that post yet, it's here:
http://www.oreillynet.com/ruby/blog/2008/03/id_love_to_quit_my_job_sort_of.html
=== Quick Project Summary ===
***Through the donations of community members, I would like to put my
commercial and personal software projects on the back burner for a
prolonged period of time (3-6 months), and focus on working on open
source projects that are of high importance to the majority of
Rubyists.***
If you've already seen discussion of this idea elsewhere, and are just
wondering where to donate, head to:
Otherwise, if you still need convincing, read on:
=== Why does the open source Ruby community need some grassroots,
non-commercial love? ===
The Ruby community suffers from an embarrassment of riches when it
comes to open source software. It seems that countless hackers and the
companies they work for are eagerly contributing new software, and
working on shaking bugs out of old software. This on its own is a
great reason to believe that Ruby will continue to be a serious
contender for many different programming tasks, both in the commercial
and hobbyist sectors.
Still, there are complications. With the explosion of interest in Ruby
and software written in it, the community is feeling growing pains at
all levels, especially in our infrastructure that supports application
development in Ruby. Though it's relatively easy to find paid Rails
work that allows you to contribute a plugin to the community now and
again, it's pretty hard to find a company that'd fund fixing the
various bugs that have been reported with RubyForge, our central
software repository. Though many Rubyists will seek 1.9 compliance in
their greenfield projects, it's unlikely that we'll see large numbers
of existing Ruby projects get fixed up in a short period of time
without some external push. These are the kinds of things that casual
hacking as well as commercial work don't really answer, and this
proposal aims to offer a solution to them.
Put simply, I'd like to put my commercial work as well as my personal
software projects on the back burner for several months, so that I can
work on problems that are common among most Rubyists. My goal is to
raise the funds necessary to do this from the community itself, and
there are a number of reasons why I'd be a good candidate for this
sort of thing.
Ideally, I'd like to spend 3 to 6 months as an employee of J. Random
Rubyist, working on projects that matter to me, but also matter to the
many hard working, busy, and wonderful Ruby developers I've met over
the last several years.
== Why Me? ==
I can name a ton of Rubyists I'd say would be technically proficient
and community centric enough to take on this kind of effort. However,
I've been fortunate enough to have several unique experiences that
make me confident that I could do some great work on something like
this:
* I have successfully participated as a Ruby Central Codefest Grant
recipient in 2005 as well as a Google Summer of Code student in 2006
(Ruport).
* I have been very active in the community, so my work and
contributions can easily be reviewed by anyone who wishes to do so.
I've spoken at a number of Ruby users groups and conferences,
including RubyConf 2006 in Denver, CO.
* I have a deep passion for working on open source software, and place
this interest ahead of making boatloads of money. Though I expect to
do some minimal commercial work during the duration of this project, I
have no problem making this project my primary focus for a while.
* My living expenses are relatively low, and I do not have a full-time
job, a family to take care of, or any other major commitments that
would take me away from dedicating time to a project like this. For
the record, I have endless admiration and respect for the hackers out
there who are 'doing it all', though I don't envy the complications
that must arise from that.
* I am very comfortable with candid, transparent discussions in
public. This will be necessity for a project like this to succeed.
Because of these reasons, I think I'm the right person for this job. I
hope you do too.
=== Logistics ===
If you're looking for the shiny stuff, such as the ideas for things I
want to work on, skip to the section below here, but here a few
important logistic details:
1) I need to make at least $500/wk to cover my living expenses.
2) I need to figure out whether I'll be working on this project, and
for how long, by April 1st. This will let me figure out how to
re-arrange my commercial work so as to not conflict with this project.
This means that I need to raise money rather quickly, just over 3
weeks remain from the time of this posting.
3) $500/wk is less than what I'd like to live on, and less than what I
make. So I'll accept donations up to $20000 for a 6 month period,
even though $500/wk would put it at $13000. If I make less than that
in donations by April 1st, and at least clear the cost of working two
weeks, I have no problem working fewer weeks at $500/wk. This means
that earlier donations will be 'sustaining the project', and later
donations will be 'supporting my comfort'.
Though I would be quite happy to even be able to dedicate two weeks to
this project, reaching the $20000 maximum would be phenomenal, as it'd
make this hardly a sacrifice for me.
4) Until April 1st, this is pretty much a process open to change and
community suggestions. Please join this mailing list and ask
questions / make suggestions, whether or not you choose to donate.
http://groups.google.com/group/rubymendicant
=== Project Ideas ===
Here are some of the ideas I've cooked up, and I'm open for more
suggestions:
= Ruby 1.9 Field Medic.
Start with Ruport and tumble through dependencies, working on
compatibility issues. From there, work on helping with 1.9 support
where needed in projects like: ActiveRecord, mechanize, redcloth,
Camping, Merb, hpricot, highline, and maybe others. I've not checked
the 1.9 status of these projects, but I'm sure could come up with many
more if time permitted.
= A Six Month Nightmare with RubyForge.
Tons of bug reports!
Tons of feature requests!
No one likes PHP. But RubyForge is driving me insane. I would be
willing to fix it given the time and funding.
Uncovering Hidden Gems
I could request suggestions for various useful but under-documented or
less well known Ruby libraries, either third party or stdlib, and
write a large series of tutorials and quick references. The idea here
is that it would hopefully result in a large amount of documentation
being written, which would spark contributions to these many 'hidden
gems' in Ruby.
= First class PDF support in Ruby.
I'm currently maintaining PDF::Writer along with Mike Milner. The
library implements most of the PDF spec, and is incredibly useful.
However, it's not very usable. It is slow, has API issues, and
countless bugs. The current plan is to maintain the library making
minor improvements when we can. A large time block would allow for
something better: A fast, thin, pretty rewrite. This would go a long
way to helping Ruby be a first choice for reporting software
development.
= From Lone Hacker to Community Leader.
I could work with newer or shy developers to help them get acquainted
with free software practices in general. I'd help people learn how to
package gems, set up mailing lists, do sane release
** Please send me more ideas! **
=== Summary / How To Help ===
If you've read through this long email and still want *more* detail,
my 'official' proposal is a bit longer and has some additional info:
http://rubymendicant.wikidot.com/proposal
If you've managed to get this far, you're probably at least partially
interested in this project, and the most straightforward way you could
help is of course, make a donation:
I'm suggesting that $50 is a good number to shoot for, because if I
end up doing proportional voting for projects, that's probably the
amounts I'll split them up into. Of course, I welcome anything folks
wish to offer, so feel free to offer $5 or $500 if you wish.
There are other ways you can help. This project will depend entirely
on word of mouth and the support of the community. If you know my
work, or just think I'm a good guy, please tell your friends. Blog
posts linking to the proposal and donation page would be great.
Finally, if you're skeptical but have constructive criticism you can
offer, or have ideas on how you think this should work, or are just
generally curious, please join this mailing list and get involved:
http://groups.google.com/group/rubymendicant
Thank you for those who've read all the way to the end of this *long*
email. I hope this project succeeds, and I look forward to working
directly for J. Random Rubyist starting in mid April!
-greg