I've been trying to pick up the pace on my linux car pc. (Perl/SDL frontend).

One problem is the screen is rather bright for my tastes at night. So I wanted a commandline utility to adjust the brightness.

No surprisingly, I found one. xbrightness

There were some additional features I would have liked. Like querying the current brightness, smooth transitions, etc.

So I added them and with a little procrastination, updated the man page.

So now I'd like to release it for others to use. I've contacted the author to see what the best way to proceed is, but I'm wondering if anyone has some advice or knows of any good resource or FAQ on the matter they would care to recommend.

-Lee

perl digital dash (in progress)

Replies are listed 'Best First'.
Re: Adding to Free Software - Etiquette
by davidrw (Prior) on Jan 21, 2006 at 05:23 UTC
    This is a general open source question and not perl-related (the program in question is in c).. Though if you Super Search you will find people have asked similar questions here in regards to specific modules.. First wait and see if your contact w/the author is successful, but be patient (btw, did you put "xbrightness" in the subject per author's request?).. The author might be busy w/home or work (or both), or on vacation, or in a pause of development, etc .. Also be sure to give the author useful files .. a before and after version, and a patch file to try to make it as easy as possible for him to first identify your changes and second to incorporate them into his baseline ..
      Obviously C is not Perl.

      I'm not asking for direction on this particular instance, which is why I stated my course of action with the current situation. (Though it will likely end up in some form as an XS extension at some point)

      I'm asking for direction in general for contributing to OSS which has quite a bit to do with Perl. Granted in most situations, adding to someone else's work with Perl is simply a matter of using or inheriting so it often nicely sidesteps the issue.

      There have often been times where I would have participated more in various capacities, if it didn't require so much effort to figure out how. Most people are more willing to help out if it's easy.

      As I see it, this is a potential barrier to contribution. For instance, this is a bit different, but I think it illustrates my point well. There have been various things I've been wanting to contribute to CPAN for quite some time (years). One thing or another would hold them up. Trying to figure out how to install things in a nonstandard way, how to write tests for things like hardware. Examples were there wasn't a clear path on how to do it right. Then other more important things took precedence and they fell by the wayside (so far anyway).

      For a community largely based of improving other people's work, it seems a fault that there isn't an obvious guide.


      -Lee

      perl digital dash (in progress)
        it seems a fault that there isn't an obvious guide

        That's probably because there isn't a single solution. Ways to contribute will be different for every project, and even if they are clearly advertised, contributors will choose different routes yet. There is a sort of general way to go about things in that there is usually a mailing list or email address you can use to inquire, but that's about as common as it gets.

        I agree this can be frustrating and could often do with improvement. But FLOSS creation isn't a centrally managed process with a beaten path on how to do things. Think of it more like evolution, with many stops and starts and bad turns. The fight for survival often isn't pleasant for individuals (or even entire species), but it ultimately leads to the best results, because it requires constant adaptation and keeps participants flexible enough. I'm not saying this to excuse any particular project's neglect of the contribution process (in fact, how to draw in contributions may be the single most important aspect of a FLOSS project), just trying to explain the absence of obvious guides in many cases. If the author hasn't written up a guide (or even thought about it) there won't be one.

        In this particular case I'd second davidrw's suggestion, give the author some time to respond. This is obviously a one-person project and it looks like his page hasn't been updated for a while, so it's possible the author has moved on to other things. In that case you could talk to this person who has apparently put out an updated xbrightness version with his own patches. Or try to contact a maintainer of an xbrightness package in an OS distribution (if such a thing should exist). Or even release the changed version of xbrightness yourself, with your changes. If you put up a page that states you'd like to merge your changes back into the original version it may happen that the original author contacts you when he gets back online back from his world-tour in a dugout.

        As for CPAN, most modules have a section in the POD which tells you how to contribute. In most cases this will be the rt.cpan.org address for the module, where you can report bugs, request features and contribute patches. Other modules may have open SCM repositories which you can check out and use as the basis for your patches, if so you'll mostly also find it in the POD.

        Hope this helps.


        There are ten types of people: those that understand binary and those that don't.
Re: Adding to Free Software - Etiquette
by zentara (Cardinal) on Jan 21, 2006 at 13:17 UTC
    You could turn your C code into a Perl module using Inline::C, XS, or even running the c binary through piped opens or IPC::Open3.

    I'm not really a human, but I play one on earth. flash japh
      It will probably become an XS extension at some point.

      I had actually started out on that path, and then realized that my XS was even rusiter than my C.

      I couldn't remember how to specify external libraries that need to be linked (or several other details of XS), so I just modified the utility for the moment.

      I'll have to reread Extending and Embedding Perl.


      -Lee

      perl digital dash (in progress)