Ruby logoThese are quick notes I’m sharing with the NYC Ruby Women’s group, which I organize. One of my developer friends, Peter Harkins, recommended I share them with the world at large, so here they are.

More about Ruby and the NYC Ruby Women’s group in a bit.

SOME HELPFUL LINKS

  • rubygems.org – The official Ruby Gem repository
  • ruby-toolbox.com/ – Shows the most popular Ruby gems (how many people who’ve looked at it, how many have downloaded it, how many have forked it)
  • railsplugins.org/ – Compatibility tracking of plugins and gems (what works with various version of Ruby and Rails 3)

SOME HELPFUL RUBY COMMANDS

  • gem update --system – updates all gems on in your system
  • gem environment gemdir – displays the system directory for gems
  • gem help – basic help directory
  • gem env – shows the Ruby gem environment
  • gem list – finds gems. You can include letters afterward as wildcards.
  • gem cleanup – deletes old gem versions. Use with caution — you don’t want to unwittingly break anything that depends on an older gem
  • rake -T – Rake helpfile

So let’s get started. These instructions assume you’re running Mac OS with Ruby version 1.8.7 installed. These tips should also work for Ruby 1.8.6, but if they don’t, leave a comment — and a fix if you find one.

INSTALL THESE GEMS (or check if you have them already)
(You may need/want to add “sudo” [no quotes] in front of each of these commands to install)

gem install rubygems-update
gem install thoughtbot-shoulda
– Read Me at: http://github.com/thoughtbot/shoulda
gem install rspec-rails
gem install jeweler
- Read Me at: http://github.com/technicalpickles/jeweler

ESTABLISH VERSION CONTROL
Download Git from the official repository.

CONFIGURE YOUR LOCAL SYSTEM TO TALK TO GITHUB (once you’ve established an account at github.com)

git config --global user.name "Real Name"
git config --global user.email "youremail@foo.com"
git config --global github.user username

SET UP YOUR PUBLIC KEY
(See the help pages for Mac, Windows, or Linux if you run into trouble or need additional details.)

Check if you have a key

cat ~/.ssh/id_rsa.pub

If you do have a key:

$ ls
config id_rsa id_rsa.pub known_hosts
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*

If you don’t have a key, then create one:

ssh-keygen -t rsa -C "youremail@foo.com"

CREATE A GEM ON YOUR LOCAL SYSTEM USING JEWELER (I’m calling my test gem “dabeers”.)

jeweler dabeers --rspec --rdoc --create-repo

If you get a FileUtils error (this may happen if you’re running Ruby 1.8.6), try:

mate /Library/Ruby/Gems/1.8/gems/jeweler-1.4.0/
require 'FileUtils' in generator.rb (if that's the error)
jeweler dabeers --rspec --rdoc --create-repo

VERSION YOUR GEM

rake version:write

Since it’s our first rake, the version is set to 0.0.0. If you wanted something different for your initial version, write: rake version BUILD=alpha1 [or change “alpha1” a word or number without quotes]

UPDATE VERSIONS AS YOU UPDATE YOUR GEM
You’ve got three choices. They should be self-explanatory, but if they aren’t ask a question in comments.

rake version:bump:major
rake version:bump:minor
rake version:bump:patch

COMMIT TO GITHUB

rake github:release

COMMIT TO GEMCUTTER (a.k.a. committing to the official Ruby repository at rubygems.org/)

rake gemcutter:release

Thanks to the NYC Ruby Meetup for the intro to Jeweler and Gemcutter and Peter Harkins for QA of these notes.

And finally, if you’re a woman in New York developing in Ruby or interested in developing in Ruby, join a terrific group of us on the NYC Ruby Women mailing list. All levels of development experience are welcome.

I once knew a business editor who griped a lot about the typical story that would cross his desk: “You’re dazzling people with big numbers instead of telling them anything meaningful!”

My takeaway: Always create context around data.

When most people think of data, they think numbers. But most dictionary definitions define the term along the lines of “facts and statistics collected together for reference or analysis.” Remember that.

As the technical foundation of online journalism moves toward structured, semantic data examined by people with expertise (or at least curiosity), we will probably find ourselves wondering how many people we’re reaching and how it happens.

Site metrics is one way. Another is social network analysis.

Among the interesting tools out there is the Infochimps API, which is currently in beta. On their blog, you’ll see this:

Infochimps API in action

It shows one Twitter user’s network and the connections between them. While the example was produced by someone running a business, it could easily be applied to a journalist interested in understanding their own networks (sources, readers, colleagues, etc.).

From the Infochimps blog post:

Coupling Influencer Metrics with Trstrank would enable a promoter to identify not only the users most likely to engage, but also the most influential of those users. Throw Wordbag into the mix and a promoter could also discover if users in the active, influential target population have a potential interest in their product.

What other examples can you come up with?