I got to go to RailsConf last week (woot!) and one of the Birds-of-a-Feather sessions I attended was the Rails Activism group. We talked about a bunch of stuff in a short period of time, but a lot of it was about "what can a user group do to help bring people along in Ruby/Rails"?
Of course, some of the people there were from large Ruby groups (Orlando, the legendary Seattle.rb group), but some were from groups smaller than ours.
I didn't know this, but Ryan Bates of RailsCasts fame lives somewhere in southern Oregon, where there are NO other Ruby folks he can hang out locally. Wow.
Anyway, there seemed to be a strong consensus that the best way for people to learn and to help each other learn is by actually programming stuff, not just doing presentations.
I've been toying with bringing this up for a few months, but that meeting convinced me: HSV.rb needs a project. Or 5. Or 100.
It doesn't have to be something smashing, but it could be. The
http://seattlerb.rubyforge.org project is a product of that Ruby group. I'm not going to look them up at the moment, but there are quite a few gems and tools and projects that were started and released by user groups. We should aspire to do something at least good enough to release and be of use to someone.
BUT -- and this is important -- it doesn't have to be something like that. It just needs to be code that we work on, together, and can therefore be encountering and solving similar or related problems, so we have a common basis for sharing useful tips and solutions.
For instance, I was introduced to the FABULOUS Ruby Warrior project/game/thing:
http://github.com/ryanb/ruby-warrior/tree/master (warning! This thing can quickly suck up an evening or two or a bunch). You'll have to look at it to see what it is, but imagine a roughly Nethack-like top-down text 'adventure', but instead of playing it with arrow keys, you write Ruby code to endow your warrior with the decision-making abilities he'll need to navigate the level. I don't even know how many hours I spent playing with this the first night I found it, because I kept obsessing over whether there was a way to get *one* *more* *point* out of each level I was on.
It's a great way to learn some Ruby, it's fun, and we could fire it up at level one and play through some levels together at HSV.rb meetings.
This is also something we could do at a lunch-time meeting, even if just a few different ones could come at a given time.
What about some very cool project like
http://www.nashmash.com/ , which aggregates Nashville-area tweeters in a pretty cool way. It wouldn't have to be that slick or full-featured, but we could learn about really dealing with Twitter (or some other mashups). Look at
http://almost.at and pick an event: wouldn't that be cool to hack on?
The point is, we don't have to build some massively cool new thing. We could pick something small and useful and do part of it. We could pick a single task ("Make a mashup that pulled tweets from the public timeline with a given keyword and display them with a random Flickr photo tagged with that keyword") and just figure out how to make it work.
We could put a screen on the projector and play pairing - there are some guidelines we could borrow that would give us very clear rules about how to do it (to start out) and then we could modify them as we liked to fit our group better.
There's so much amazingly cool and fun stuff going on -- Adhearsion/telephony/voip, twitter/friendfeed/facebook, maps/geoloc/etc., mashups of all kinds -- that we should pretty much have a never-ending stream of stuff to do.
I'm certainly not opposed to presentations, but the fact is, as Bryan
can attest, it's kind of hard to find people to do a presentation every
month, partly because it's a giant pain to *prepare* a presentation.
It's a lot easier to just come and hack on something (at least for me).
To me, it would be great to be able to post a problem or request: "I'd like to learn how to do a simple mashup like
http://tweetdreams.org/ " and maybe some other folks post theirs, and then we vote (NOT ON THE MAILING LIST -- that's too hard, just a little quick post online thing) on the most popular one and then try to figure it out.
We could start via email and github and IRC before the meeting, jump right into business as soon as people started showing up, and keep going until nobody could stay any more, and then keep right on going.
I'm rambling, I know, but I'd really like to see us turn HSV.rb from a slightly shy, kind of tentative "what are we, exactly?" kind of group into a more or less steady group of fellow programmers who've worked together on *something*, with some ongoing common projects or puzzles to work on that gave us all a reason to get out on a Tuesday night when there's other stuff to do, but also gave something to keep us interested and getting/giving value even for those who CAN'T make a Tuesday night meeting.
We need a Wiki or Campfire-type of thing to keep up with what we're doing, what we've done, what passes for guidelines on how we do it, and so on. I've got hosting and bandwidth, and I know other people have volunteered the same. It isn't like it's hard to find a place to host a low-traffic bit of webbage.
So who's with me? Does this sound good to anybody else? Would you be up for aiming at this sort of thing?