Tattle - The Ruby Census

Greetings and Happy New Year, Rubyists!

At the first Rails Edge conference (http://therailsedge.com), Jim
Weirich, Bruce W., and I were chatting about how to improve the
RubyGems platform-specific behavior, when we realized that it would be
really helpful to have more info about the install footprint of the
Ruby community at large.

So instead of going right into hacking RubyGems as was our plan, we
created a little census tool and an accompanying web site to help us
collect information. Most of the info we collect is from
Config::CONFIG, with the addition of the RubyGems version.

We know this information will help the implementers of RubyGems, and
we hope it will also help Ruby implementers and library developers as
well.

To install:

$ sudo gem install tattle

To submit your info:

$ tattle

If you want to see what would be posted before posting, you can do:

$ tattle report

The information gets posted to http://tattle.rubygarden.org. You can
view the posted data with your web browser at that URL.

Thanks!
Chad F.
http://www.chadfowler.com

On Jan 8, 2007, at 13:00, Chad F. wrote:

Greetings and Happy New Year, Rubyists!

At the first Rails Edge conference (http://therailsedge.com), Jim
Weirich, Bruce W., and I were chatting about how to improve the
RubyGems platform-specific behavior, when we realized that it would be
really helpful to have more info about the install footprint of the
Ruby community at large.

Note that this will help us complete the most-requested RubyGems
feature, the install --platform option.

$ tattle

If you want to see what would be posted before posting, you can do:

$ tattle report

The information gets posted to http://tattle.rubygarden.org. You can
view the posted data with your web browser at that URL.


Eric H. - [email protected] - http://blog.segment7.net

I LIT YOUR GEM ON FIRE!

Hi,

collect information. Most of the info we collect is from
Config::CONFIG, with the addition of the RubyGems version.

I find this a worthy cause, and shared my configuration options…
just to find out that I totally provided wrong information
about my system! :stuck_out_tongue:

Reason: Tattle uses Config::CONFIG, which is where the ruby was
compiled in, not what it is running on.

$ uname -a
Darwin 8.8.0 Darwin Kernel Version 8.8.0: Fri Sep 8 17:18:57 PDT 2006;
root:xnu-792.12.6.obj~1/RELEASE_PPC Power Macintosh powerpc

But tattle reported arch, powerpc-darwin8.4.0, just so. I
compiled ruby before on that system, upgraded, and now spread
false information. :stuck_out_tongue:

Can happen, won’t happen to many, just wanted to say so, how
clever your approach is, you might want to revise it a little? :stuck_out_tongue:

Anyway, very nice idea, happy to be of service providing info,
have a nice day.

Kashia

On Jan 8, 2007, at 14:21, Kashia B. wrote:

compiled in, not what it is running on.
Its still darwin 8, so gems for your version of ruby should work ok
with gems compiled for any other darwin 8 version. If you built for
darwin 8 but your uname -a now reported AIX that would be cause for
alarm.


Eric H. - [email protected] - http://blog.segment7.net

I LIT YOUR GEM ON FIRE!

Rob M. wrote:

So instead of going right into hacking RubyGems as was our plan, we
$ sudo gem install tattle
view the posted data with your web browser at that URL.
discussion of footprint.

Yes, it’s a great idea … but … you are going to get very biased
statistics, because many Ruby users will be prohibited, either
electronically or by organizational policy, from uploading such
information.


M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/

If God had meant for carrots to be eaten cooked, He would have given
rabbits fire.

Chad F. schrieb:

To install:

$ sudo gem install tattle

Chad, why does tattle depend on the hoe and rubyforge gems?

Regards,
Pit

Chad F. wrote:

collect information. Most of the info we collect is from
To submit your info:

$ tattle

If you want to see what would be posted before posting, you can do:

$ tattle report

The information gets posted to http://tattle.rubygarden.org. You can
view the posted data with your web browser at that URL.

This is a great idea.

Are there plans to allow submission of a semi-anonymous collection of
internal census data from potentially thousands of internally managed
clients? Perhaps some way to submit to you directly a data file
containing a summation of the data submitted individually to tattle.

That --platform option sounds very interesting as does the whole
discussion of footprint.

Chad F. wrote:

To submit your info:

$ tattle

sweet but it/ruby does not resolve through my proxy (even tho gems etc
does)…

Posting information to Tattle server. Thanks!
c:/ruby/lib/ruby/1.8/net/http.rb:560:in initialize': getaddrinfo: no address associated with hostname. (SocketError) from c:/ruby/lib/ruby/1.8/net/http.rb:560:inconnect’
from c:/ruby/lib/ruby/1.8/timeout.rb:48:in timeout' from c:/ruby/lib/ruby/1.8/timeout.rb:76:intimeout’
from c:/ruby/lib/ruby/1.8/net/http.rb:560:in connect' from c:/ruby/lib/ruby/1.8/net/http.rb:553:indo_start’
from c:/ruby/lib/ruby/1.8/net/http.rb:542:in start' from c:/ruby/lib/ruby/gems/1.8/gems/tattle-1.0.1/lib/tattle.rb:29:inpost’
from c:/ruby/lib/ruby/gems/1.8/gems/tattle-1.0.1/bin/tattle:14
from c:/ruby/bin/tattle:18

Well, I gave a gracious effort and died in the trenches…

-stu

On Jan 8, 2007, at 4:00 PM, Chad F. wrote:

The information gets posted to http://tattle.rubygarden.org. You can
view the posted data with your web browser at that URL.

Thanks!
Chad F.
http://www.chadfowler.com

On a totally non-security related note, why doesn’t the rubyforge
home page forward to http://tattle.rubygarden.org/ ?

If I google for ‘ruby tattle’ I get the rubyforge project near the
top. But no ruby garden page on the first page of results.

-Mat

On Jan 9, 2007, at 4:29 AM, Pit C. wrote:

Chad F. schrieb:

To install:
$ sudo gem install tattle

Chad, why does tattle depend on the hoe and rubyforge gems?

Uh… because hoe is the single most awesome thing for ruby project
development in the last 6 years? It is used in 5% of all rubygems.
Get over it.

On Wed, Jan 10, 2007, Ryan D. wrote:

Chad, why does tattle depend on the hoe and rubyforge gems?

Uh… because hoe is the single most awesome thing for ruby project
development in the last 6 years? It is used in 5% of all rubygems.
Get over it.

I think the question is “why is this neat tool useful only to the gem’s
developer required to install the gem on end-user systems?”

So… why is that?

Ben

On 1/9/07, stu [email protected] wrote:

c:/ruby/lib/ruby/gems/1.8/gems/tattle-1.0.1/lib/tattle.rb:29:in `post’
from c:/ruby/lib/ruby/gems/1.8/gems/tattle-1.0.1/bin/tattle:14
from c:/ruby/bin/tattle:18

Well, I gave a gracious effort and died in the trenches…

Proxy support is on the TODO list (in my head). You will be mourned.

Chad

On 1/9/07, Kashia B. [email protected] wrote:

My point was merely that I was spreading false information, and others
might
too. :stuck_out_tongue:

You’re right (both that the report was wrong and that it’s probably an
edge case). I personally think we can live with it for now, but it
might be worth rethinking our approach at some point. Just for the
record, we didn’t think using Config::CONFIG was particularly clever
:slight_smile:

Chad

Hi,

Reason: Tattle uses Config::CONFIG, which is where the ruby was
compiled in, not what it is running on.

Its still darwin 8, so gems for your version of ruby should work ok with
gems compiled for any other darwin 8 version. If you built for darwin 8
but your uname -a now reported AIX that would be cause for alarm.

of course it works, how would you live without ruby. :wink:

My point was merely that I was spreading false information, and others
might
too. :stuck_out_tongue:

Jo

On 1/8/07, Rob M. [email protected] wrote:

created a little census tool and an accompanying web site to help us

This is a great idea.

Are there plans to allow submission of a semi-anonymous collection of
internal census data from potentially thousands of internally managed
clients? Perhaps some way to submit to you directly a data file
containing a summation of the data submitted individually to tattle.

We’ve talked about that. Wouldn’t be too hard. Just need to do it.

Chad

On Jan 9, 2007, at 09:31, Ben B. wrote:

So… why is that?

rake test

PS: Nobody complains about hoe depending on rake which is 2.5 times
larger.


Eric H. - [email protected] - http://blog.segment7.net

I LIT YOUR GEM ON FIRE!

On Wed, Jan 10, 2007, Eric H. wrote:

I think the question is “why is this neat tool useful only to the
gem’s
developer required to install the gem on end-user systems?”

So… why is that?

rake test

Makes sense, didn’t think about that. Still, though, gem install -t
does the same thing and doesn’t require dependencies.

PS: Nobody complains about hoe depending on rake which is 2.5 times
larger.

Rake is useful for more than just gem deployment.

I shouldn’t need to install the rubyforge gem to install someone else’s
library, but if they packaged it with hoe, I’m forced to. This doesn’t
make sense.

I’m all for both of them being folded into gem, though. If they were
already there, nobody would have anything to complain about :wink:

Ben

On Jan 9, 2007, at 10:42, Ben B. wrote:

does the same thing and doesn’t require dependencies.
This is not guaranteed to work. Currently gems is very lax in its
installation and doesn’t rollback when you cancel on a dependency.
In the future it may not.

Rake is useful for more than just gem deployment.

Only if you are also developing. If you’re just using libraries, it
is useless.

I shouldn’t need to install the rubyforge gem to install someone
else’s
library, but if they packaged it with hoe, I’m forced to. This
doesn’t
make sense.

Same for rake, but nobody complains.


Eric H. - [email protected] - http://blog.segment7.net

I LIT YOUR GEM ON FIRE!

On Jan 9, 2007, at 12:31 PM, Ben B. wrote:

On Wed, Jan 10, 2007, Ryan D. wrote:

Chad, why does tattle depend on the hoe and rubyforge gems?

Uh… because hoe is the single most awesome thing for ruby project
development in the last 6 years? It is used in 5% of all rubygems.
Get over it.

I think the question is “why is this neat tool useful only to the
gem’s
developer required to install the gem on end-user systems?”

% du -sk */hoe
12 cache/hoe-1.1.7.gem
104 doc/hoe-1.1.7
40 gems/hoe-1.1.7
4 specifications/hoe-1.1.7.gemspec

In other words, who cares?!?

It sounds like you’re complaining simply because it offends your
sensibilities. If you have a problem with the way gems does
dependencies, then file a bug with rubygems and/or offer them a well
tested patch. Otherwise, drop it as it doesn’t matter one bit.

On Wed, Jan 10, 2007, Eric H. wrote:

Makes sense, didn’t think about that. Still, though, gem install -t
does the same thing and doesn’t require dependencies.

This is not guaranteed to work. Currently gems is very lax in its
installation and doesn’t rollback when you cancel on a dependency. In
the future it may not.

Interesting, didn’t know that. It’s always worked where I’ve used it.

Rake is useful for more than just gem deployment.

Only if you are also developing. If you’re just using libraries, it
is useless.

Not true. I need rake to work with Rails, even though I’m not doing any
development on the Rails libraries. If it were packaged with Hoe, I’d
need to install hoe, but I’d never actually use the Hoe libraries again.

I shouldn’t need to install the rubyforge gem to install someone
else’s library, but if they packaged it with hoe, I’m forced to.
This doesn’t make sense.

Same for rake, but nobody complains.

Not true at all:

commercial ~/projects/personal/plist > rake gem
(in /Users/bbleything/projects/personal/plist)
mkdir -p pkg
Successfully built RubyGem
Name: plist
Version: 3.0.0
File: plist-3.0.0.gem
mv plist-3.0.0.gem pkg/plist-3.0.0.gem

commercial ~/projects/personal/plist > sudo gem uninstall rake
You have requested to uninstall the gem:
rake-0.7.1
hoe-1.1.6 depends on [rake (> 0.0.0)]
gem_plugin-0.2.1 depends on [rake (>= 0.7)]
rails-1.1.6 depends on [rake (>= 0.7.1)]
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn] y
Successfully uninstalled rake version 0.7.1
Remove executables and scripts for
‘rake’ in addition to the gem? [Yn] y
Removing rake

commercial ~…personal/plist/pkg > cd pkg
commercial ~…personal/plist/pkg > ls
plist-3.0.0.gem

commercial ~…personal/plist/pkg > sudo gem install plist-3.0.0.gem
Successfully installed plist, version 3.0.0
Installing ri documentation for plist-3.0.0…
Installing RDoc documentation for plist-3.0.0…

Ben