The Ruby Community - THE RUBY WAY, Third Edition (2015)

THE RUBY WAY, Third Edition (2015)

Chapter 22. The Ruby Community

He who is unable to live in society, or who has no need because he is sufficient for himself, must be either a beast or a god.

—Aristotle, Politics

It has been said that one of the best things about Ruby is its community. That’s a matter of opinion, of course, and you’ll have to judge for yourself. My purpose in this brief chapter is to bring a few of the “watering holes” to your attention—news and learning sources, forums both online and off, and places where Rubyists meet in cyberspace and in real life.

This chapter is intentionally short. Much of the information here is stable, but things will always be in flux. Obviously, when you are in doubt, do a web search.

22.1 Web Resources

The main Ruby site is ruby-lang.org, and the latest version of Ruby, as well as news about Ruby releases, can always be found there.

For documentation, don’t miss ruby-doc.org, maintained by James Britt. It hosts a wealth of RDoc API output for Ruby’s core and standard libraries. The site rdoc.info provides Yard API documentation not only for Ruby itself, but also for every gem and any Ruby repository on GitHub.

The straightforwardly named site iwanttolearnruby.com, created by Amanda Wagener, provides an extensive list of Ruby resources, and it’s sortable by type or level of resource. It should be useful to a Ruby developer at any level of expertise.

Many other Ruby resources also exist at various places on the Web and can be found with a search for Ruby books, tutorials, articles, and the like.

22.2 Mailing Lists, Podcasts, and Forums

The ruby-talk mailing list is probably the oldest English-language forum for Ruby programmers. The history of the list is searchable online at ruby-talk.org (along with some other related lists such as ruby-core and ruby-math).

The Ruby Weekly mailing list (rubyweekly.com) offers one email per week summarizing interesting posts, videos, events, and job offers in the Ruby community.

Ruby Rogues (rubyrogues.com) is a long-running weekly podcast with regular panelists and special guests. Each episode is offered as an audio recording or as a transcript posted to their website, and their archives cover many topics of interest to Rubyists over the last few years.

In addition, Ruby Rogues runs a popular and helpful forum called Parley. It costs $10 per year to participate, but that fee seems to ensure that participants are truly interested, and the quality of discussions is usually quite high.

22.3 Ruby Bug Reports and Feature Requests

Ruby continues to evolve. Part of its beauty is that it changes slowly and deliberately.

However, Ruby is definitely not perfect. In order to collect feedback, feature requests, and bug reports, the Ruby core team uses a public issue tracker at bugs.ruby-lang.org, using the open-source issue-tracking system Redmine (which is written in Ruby, naturally).

Before creating a new issue, first make sure that one like it does not exist. Ruby is used by so many people around the world that chances are high your issue has already been reported, and may even be fixed already. Then, if your issue is a new one, read the bug-reporting guide located atbugs.ruby-lang.org/projects/ruby/wiki/HowToReport.

No one can guarantee that your bug will be fixed or your feature request will be accepted. Most of the developers on the Ruby core team donate their time, and decisions about features ultimately rest in Matz’s capable hands. But the more homework you do in advance, the better chance you have of being taken seriously. The ruby-talk mailing list may also be a good place to get feedback on issues or ideas that you have.

22.4 IRC Channels

At any given time of day, chances are that dozens of Rubyists are talking or lurking in IRC (Internet Relay Chat). The servers are owned by freenode.net—visit them on the Web to find the right one for you. A web search will also find a good IRC client for you, whatever your platform may be.

The #ruby-lang and #ruby-on-rails channels have fairly heavy traffic. It is an international forum, so you may find people there at all hours. The de facto international language is English, but you may find people there who can direct you to channels in your own language.

Observe all normal IRC etiquette. In particular, do not “flood” by pasting sections of code; one or two lines is about the maximum. Instead, use a pasting service such as gist.github.com or something similar.

22.5 Ruby Conferences

The first International Ruby Conference (RubyConf) was held in Florida in 2001, and it has rotated cities every year. To see when and where the next RubyConf will be, visit rubyconf.org. Usually Matz himself attends, along with a few other Japanese Rubyists; we have also had attendees from six of the seven continents. (If you work at an Antarctic research station, please feel free to take time off for the next conference.)

Ruby Central (rubycentral.com), the U.S.-based non-profit organization that organizes RubyConf, has also organized the somewhat larger yearly RailsConf since the first one was held in Chicago in 2006. You can visit railsconf.org to find information about the next conference, apply to give a talk, and register online.

Regional and national conferences are held in many other locations around the world. The European Ruby Conference (EuRuKo) was first held in Karlsruhe, Germany in 2003. It is usually a little smaller in terms of attendance, but if you are in Europe, it may be more convenient for you. In 2013, I (Hal) spoke at RubyConf Brasil in Sao Paulo, and found it to be a high-energy event with hundreds of attendees. Tokyo, Japan hosts a national RubyKaigi conference each year, and I (André) spoke there in 2014.

The popularity of Ruby has spawned talks at OOPSLA and OSCON, among others. Expect more of this in the future.

The popularity of the web framework “Ruby on Rails” has led to conferences devoted to Rails, and others are forthcoming. Go to railsconf.org for current information.

In April 2006, the Silicon Valley Ruby Conference in Santa Clara was the first regional Ruby conference in the United States, and there have been many more regional conferences since. The Lone Star Ruby Conference in Austin, Texas, has been held since 2007. Some other popular regional conferences include Madison+Ruby (madisonpl.us/ruby), Gotham RubyConf (goruco.com), Golden Gate RubyConf (gogaruco.com), and MountainWest RubyConf (mtnwestrubyconf.org), but there are many others.

22.6 Local Ruby Groups

Numerous users’ groups are springing up all over the United States and the rest of the world. These are typically named with a label such as Cityname.rb, which resembles a Ruby program’s filename (with the .rb also standing for Ruby Brigade). Some are informal; others are more structured. Among the larger, more active groups are the ones in Seattle, Washington; Austin, Texas; Asakusa, Tokyo, Japan; Amsterdam, The Netherlands; and New York City. Many groups organize meetings via meetup.com, so check there, or simply do an Internet search to find an active group in your area.

22.7 Conclusion

You have now reached the end of this sizable volume. Contrary to my expectations, readers have told me that they did in fact read the first edition cover to cover; some have also told me that they learned Ruby from this book (though I spent very little time teaching the basics).

It doesn’t matter to me whether you have read this whole book sequentially or have just stumbled across this paragraph. In any case, you’ve reached the end, and I congratulate you.

However, we don’t really learn programming from books. We learn it by applying what we learn in those books. Therefore, I urge you to do what programmers do: Go and program. That’s the real learning experience. And when you can’t learn from experience or from books, turn to the rest of the community. You will find people there who can help you (and people you can help).

Who is a member of the “Ruby community”? Well, if you are reading this, you probably are a member yourself. On behalf of the others, I welcome you and encourage your participation.