Brian's Waste of Time

Tue, 13 Jan 2004

cvs udpate -dP

I have done a brief survey of the developers I work with and discovered that what I had attributed to (mild) undiagnosed dyslexia in myself is really a very common typo. Apparently lots of people use cvs udpate quite frequently. So, in honor of the cvs udpaters out there:


#!/usr/bin/env ruby
#
# =Usage
# Replace value of REAL_CVS with the full path to the real cvs executable
# and then rename this file to 'cvs' and place it in a directory in your
# PATH which will be searched before the one containing the real cvs binary
#
# You can modify the speling hash to correct things for you =)
#
REAL_CVS='/usr/bin/cvs'

speling = 
{
    'udpate' => 'update'
}

line = "#{REAL_CVS} #{ARGV.join(' ')}"
speling.each { |key, value| line.gsub!(Regexp.compile(key), value)}
Kernel.exec(line)

A better implementation would parse out cvs options correctly to make sure that it didn't "fix" any filenames in the command line.

5 writebacks [/src] permanent link

Why Don't We ... ?

In most any community you periodically see "why don't we [do something new or different]" posts come up. The larger the community is, the more likely the suggester is to get flamed as being loud and aggressive is the most effective way to convince people you are correct, isn't it?

The bigger upshot is that if left to the will of the community the suggestion will languish in committee forever. It is particularly prevalent in large open source communities as the notion of leadership is a bit fuzzier. Classically the "why don't we..." suggester is really suggesting this to the leaders-that-be in the community. If it is a highly centralized community with workaholic leaders (ie, [benevolent] dictatorships) this might work.

On the other hand, most open source communities are not run as [benevolent] dictatorships, and the ones that are die. Stepping up to freebsd-current or jakarta-general and saying "why don't we ..." will lead to a quick lesson in why it is infeasible (if it is) or a long drawn out discussion on how to do it, or the political implications of doing it, or why Johan doesn't want to do it and will make sure it never happens, until it quietly dies in committee.

Communities are made up of individuals, however, and it is the individual that acts, not the community. The key thing is to go back to that fuzzy sense of leadership. There are leaders in these communities -- they are the people that do things rather than the ones who talk about doing things. When they do things people react, respond, and frequently hop on the bandwagon (not a bad thing!).

Next time you think "why don't we..." and really, really, want to see it happen (in comparison to just airing a random thought for feedback) take a cue from Nike and just do it. If you are part of the community already and know its mores you can judge whether it would be appropriate to use community resources (ie, branch in CVS), if you are not part of the community then err on the side of not impinging on the community (make local changes and make them available).

The other note is to approach smaller communities if you need to enlist help (you still need to be willing to be the leader for your idea). The smaller the group the easier it is to ask for help -- and the less opinions and filibusters you'll hit. You only need one person to help you to double the capacity you provide. Don't spam for support, seek individuals who you think might be willing, or who happen to have what you know you need (typically knowledge). I am not suggesting that that you email Mr. Torvalds and ask for his help implementing a kernel module to provide really efficient control over your bonsai watering system though (unless you happen to know that Mr. Torvalds is a rabid bonsai enthusiast (this is just an example)). Approach people pre-disposed to help you because you think they will care about what it is you want help with.

0 writebacks [/src] permanent link