Loading ...
Sorry, an error occurred while loading the content.

at which point is code worthy of publication?

Expand Messages
  • Muli Ben-Yehuda
    I m working for fun on a small tool called dumpmem (http://www.mulix.org/dumpmem.html), a process memory dumper. IIRC, I even posted a link to it here. I m
    Message 1 of 10 , Nov 14, 2002
    • 0 Attachment
      I'm working for fun on a small tool called dumpmem
      (http://www.mulix.org/dumpmem.html), a process memory dumper. IIRC, I
      even posted a link to it here.

      I'm wondering, at which point is something like that worthy of
      wide spread publication? Some people tend to publish (when I say
      publish, I refer to sites like freshmeat or slashdot, not to one's
      home page) everything they do, and some people tend to publish nothing
      at all. I'm wondering what's the point where it becomes "acceptable"
      to publish something?

      I can think of several metrics we can use to measure such a point:

      - usefullness: the more useful your project can be, the sooner you
      should publish it so that people have a chance to find it.

      - effort: the more effort you put into your project, the more
      "publication worthy" it becomes.

      - novelty (hack value): if your code is cool, publish it sooner rather
      than later.

      What else? where do you guys think lies the cutoff point, where
      publication (and self glorification) becomes the end itself, rather
      then the means to an end?
      --
      Muli Ben-Yehuda http://www.mulix.org/
      mulix@...:~$ sctrace strace /bin/foo http://syscalltrack.sf.net/
      Quis custodes ipsos custodiet? http://www.mulix.org/cv.html
    • Ofir Carny
      I would go with the rule of publishing early, that s the way to get others to join the effort (coding/testing/coming up with features). However, make sure that
      Message 2 of 10 , Nov 14, 2002
      • 0 Attachment
        I would go with the rule of publishing early, that's the way to get others to join the effort (coding/testing/coming up with features).

        However, make sure that the code is reasonably well written (for the coders), compiles (for the testers), and to document the features and plans for the future, plus any known bugs (in order not to waste community effort, e.g. if you plan a major code overhaul, make sure nobody will work on the current version).
      • Tzafrir Cohen
        ... Will they? Do you know each and every program in freshemat & slashdot? Would you bothred if the volume would have been higher? The indexing of freshmeat is
        Message 3 of 10 , Nov 14, 2002
        • 0 Attachment
          On Thu, 14 Nov 2002, Ofir Carny wrote:

          > I would go with the rule of publishing early, that's the way to get
          > others to join the effort (coding/testing/coming up with features).

          Will they?

          Do you know each and every program in freshemat & slashdot? Would you
          bothred if the volume would have been higher?

          The indexing of freshmeat is useful, but not good enough.

          >
          > However, make sure that the code is reasonably well written (for the
          > coders), compiles (for the testers), and to document the features and
          > plans for the future, plus any known bugs (in order not to waste
          > community effort, e.g. if you plan a major code overhaul, make sure
          > nobody will work on the current version).
          >

          Wow! This means that you'll know what you'll do in the future ;-)

          Cheers

          --
          Tzafrir Cohen
          mailto:tzafrir@...
          http://www.technion.ac.il/~tzafrir
        • Chen Shapira
          ... I think the term friendliness in its widest meaning should also be considered. Give your program to a friend, one who represent your intended audiance.
          Message 4 of 10 , Nov 14, 2002
          • 0 Attachment
            > What else? where do you guys think lies the cutoff point, where
            > publication (and self glorification) becomes the end itself, rather
            > then the means to an end?

            I think the term "friendliness" in its widest meaning should also be
            considered.

            Give your program to a friend, one who represent your intended audiance.
            Can he use it as is? Does he need lots of hand-holding?
            If you don't bother writing decent documentation, meaningfull error messages

            and such, you may consider not publishing it.

            I tried using a java "bulletin board" servlet for 2 weeks before I gave up.
            Not only the writer didn't bother documenting the system, he even forgot
            some
            of his classes in the package he distributed.

            Also, if there are already 300 other programs that does the same thing, make

            sure yours is actually interesting.
            I wouldn't publish my own:
            1. Window manager
            2. Mail client
            3. Bug tracker
            4. Web browser
            5. Php database frontend
            Unless I just had an amazing idea. Something that is an order of magnitude
            better that KDE, Mozilla, Evolution, etc.
            Why publish a program that I know no one else has any reason to try?

            On the other hand, my own conditions may be too strict. I never publish
            anything that I do (or perhaps I never do anything interesting).

            Thanks,
            Chen.
          • Muli Ben-Yehuda
            ... In my experience, very very rarely. ... Exactly. ... While this is all good and sound advice, it s not what I asked. I know how to release software that
            Message 5 of 10 , Nov 14, 2002
            • 0 Attachment
              On Thu, Nov 14, 2002 at 01:01:11PM +0200, Tzafrir Cohen wrote:
              > On Thu, 14 Nov 2002, Ofir Carny wrote:
              >
              > > I would go with the rule of publishing early, that's the way to get
              > > others to join the effort (coding/testing/coming up with features).
              >
              > Will they?

              In my experience, very very rarely.

              > Do you know each and every program in freshemat & slashdot? Would you
              > bothred if the volume would have been higher?

              Exactly.

              > > However, make sure that the code is reasonably well written (for the
              > > coders), compiles (for the testers), and to document the features and
              > > plans for the future, plus any known bugs (in order not to waste
              > > community effort, e.g. if you plan a major code overhaul, make sure
              > > nobody will work on the current version).

              While this is all good and sound advice, it's not what I asked. I know
              how to release software that other people can and will use. I've been
              doing it for a while now. What I'm speculating about (with this
              group's kind help) is when should software be published, from the
              "good of the public (and not the publisher)" point of view.
              --
              Muli Ben-Yehuda http://www.mulix.org/
              mulix@...:~$ sctrace strace /bin/foo http://syscalltrack.sf.net/
              Quis custodes ipsos custodiet? http://www.mulix.org/cv.html
            • Omer Musaev
              -----Original Message----- From: Muli Ben-Yehuda [mailto:mulix@actcom.co.il] Sent: Thursday, November 14, 2002 1:56 PM To: hackers-il@yahoogroups.com
              Message 6 of 10 , Nov 14, 2002
              • 0 Attachment
                ' -----Original Message-----
                ' From: Muli Ben-Yehuda [mailto:mulix@...]
                ' Sent: Thursday, November 14, 2002 1:56 PM
                ' To: hackers-il@yahoogroups.com
                ' Subject: Re: [hackers-il] at which point is code worthy of
                ' publication?

                ...

                ' While this is all good and sound advice, it's not what I asked. I know
                ' how to release software that other people can and will use. I've been
                ' doing it for a while now. What I'm speculating about (with this
                ' group's kind help) is when should software be published, from the
                ' "good of the public (and not the publisher)" point of view.

                When the program does something useful in a reliable way. Version 0.1
                may contain only the smallest part of the intended functinality, but
                I would expect it to do what it does in clear an reliable way.

                An example open-source application that I would consider using is CDT
                C++ integrated environment for the Eclipse platform. At its current
                form, it is barly an editor with simple class browser. However, it is
                a usable editor and its class browser is reliable. Is useful right now.
                Integrated compilation, debugging, refactoring, formatting and source
                control will come later, but it is useful already.

                My 1.695 cents + VAT

                ' --
                ' Muli Ben-Yehuda
                http://www.mulix.org/
                mulix@...:~$ sctrace strace /bin/foo http://syscalltrack.sf.net/
                Quis custodes ipsos custodiet? http://www.mulix.org/cv.html


                To unsubscribe from this group, send an email to:
                hackers-il-unsubscribe@egroups.com



                Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
              • Chen Shapira
                ... I disagree here. IMO from the first version, the program should differentiate itself and do something non-trivial. Have a special core functionality up and
                Message 7 of 10 , Nov 14, 2002
                • 0 Attachment
                  > When the program does something useful in a reliable way. Version 0.1
                  > may contain only the smallest part of the intended functinality, but
                  > I would expect it to do what it does in clear an reliable way.

                  I disagree here.

                  IMO from the first version, the program should differentiate itself and do
                  something non-trivial. Have a special core functionality up and running
                  before you release the first version.

                  Lets take your example: CDT

                  At its present stage its as usefull as notepad.
                  So after few minutes of poking around, I switched back to emacs, visual
                  studio, kdevelop, etc.
                  If it had something special, like refactoring. Something very usefull that
                  no one else does. Then even if the editor sucked, the compiler was entirely
                  missing, and debugging wasn't even designed - I would have used it. Because
                  refactoring C++ is truly special. I've never seen it before.

                  If refactoring was only partially functional, but still looked promising, I
                  might have been tempted enough to try and contribute a fix or two, and I
                  probably would have used it long enough to generate a bug report.

                  BTW. The most usefull feature any version 1.0 could have is automatic bug
                  reporting.
                  We've added it in few components, and its amazing. No developer should ever
                  be left without necessery details as version, OS and gcc version.
                  I'd also suggest "add bug" button (or flag) which will allow user to write
                  the description, while automatically appending the important details.
                • guy keren
                  ... i don t think you can set a clear point . sometimes, just the idea of the program is enough to help somebody. sometimes - without having the fully working
                  Message 8 of 10 , Nov 14, 2002
                  • 0 Attachment
                    On Thu, 14 Nov 2002, Muli Ben-Yehuda wrote:

                    > I'm wondering, at which point is something like that worthy of
                    > wide spread publication? Some people tend to publish (when I say
                    > publish, I refer to sites like freshmeat or slashdot, not to one's
                    > home page) everything they do, and some people tend to publish nothing
                    > at all. I'm wondering what's the point where it becomes "acceptable"
                    > to publish something?

                    i don't think you can set a 'clear point'. sometimes, just the idea of the
                    program is enough to help somebody. sometimes - without having the fully
                    working program, it is quite useless.

                    for example, taking something like valgrind - its useles unless it
                    actually works - which means the comunity of _users_ would have nothing to
                    do with it before it can actually run descent programs (at least on the
                    leevl of university exercizes - so it'll help students finish homework
                    earlier). on the other hand - some parts of its code could be 'leached' by
                    other _programmers_ before valgrind itself fully worked.

                    i think you'll find that something is useful when it is 'complete' in
                    _some_ manner. as you see from the examples shown here (e.g. the editor
                    omer and chen were talking about) that tool did one thing well, and held a
                    promise to do other things well in the future. so if someone could use the
                    tool in order to complete _one_ task properly - that tool could be useful
                    for them.

                    you can't realy know in advance if people will _actually_ use the tool -
                    but you can know when it is capable of performing _one_ task fully.

                    if the tool can do one thing no other existing tool can do properly - its
                    worthy of publishing.

                    if the tool can do one thing better then every other tool in the market -
                    its worthy of publishing.

                    there is also the question of momentum - i.e. will publishing the tool now
                    kill its future, or will it leave place for it to grow? this is also a
                    personal matter. for example, when i started writing the lupg tutorials, i
                    made up my mind that i'll first get 2-3 tutorials ready, and get the site
                    designed in a way that'll allow me to grow it - because i knew that when
                    _i_ start talking about something too much - i feel as if i already
                    accomplished it, and then i stop working on it - so i had to wait with
                    publishing it until i got at least some tutorials in it realy finished
                    (and in a state that'll make them look ok). it was the first time i
                    managed to publish something, and then keep working on it for a
                    significant time (i published it on the end of 1998, and kept working on
                    it until the end of 1999, in which i begun "stalling" - leaving it
                    altogether for several month, then starting working on it again, etc - but
                    not getting to publishing more tutorials). on the 'community' matter i
                    failed completely - except for a error corrections coming from people, i
                    didn't manage to get other people to write tutorials, or sections for
                    existing tutorials. it does not mean people don't read the tutorials - i
                    have lots of "users" in that sense - but i don't have co-developers ;)

                    > - usefullness: the more useful your project can be, the sooner you
                    > should publish it so that people have a chance to find it.
                    >
                    > - effort: the more effort you put into your project, the more
                    > "publication worthy" it becomes.

                    i think the effort issue is negligable - i've seen things into which lots
                    of effort was directed - but are still not realy worthy of publishing.

                    > - novelty (hack value): if your code is cool, publish it sooner rather
                    > than later.

                    if its just the code itself that is cool - i don't think it has any value
                    published outside your own home page. if the novelty is in a very
                    interesting idea about how to write code - write a document stating that,
                    use the code as an example for that document, and publish this document.
                    otherwise, this interesting idea about how to write code - will get lost
                    in search engines land.

                    > What else? where do you guys think lies the cutoff point, where
                    > publication (and self glorification) becomes the end itself, rather
                    > then the means to an end?

                    btw, one should also check the referer log of their site, in order to see
                    how and why people get to it. every few month i take the last week's
                    referer log for lupg and start going over the links. _most_ of them come
                    from searches on google (in various incarnations - mostly google.com and
                    google.yahoo.com coming at a far 2nd place) where people seem to search
                    for keywords regarding subject, that imply they indeed wanted to know how
                    to use something (google publishes the keywords people searcherd for
                    inside the URL that is the referrer to the pages that were found in the
                    search). most other hits come from either 'programming resources' long
                    lists, or from various college courses that thought one of the tutorials
                    fits the bill for 'online documentation' for one of the exercisez, or one
                    of their lectures, or so. this kind of search makes me think i managed to
                    scratch the itch properly. i have another page (my 'home' page) with some
                    link in it that probably completely missed the point - i was thinking
                    about one thing when i wrote it, but people get to it due to searhcing (or
                    via links) that come from a copletely different point of view - so from a
                    'good of the public' point of view - i might better delete that page, to
                    avoid missleading people ;)

                    hmmm. too much blubbering for one day. from the 'good of the public' point
                    of view, i probably should cancel this email and let it go to the garbage.
                    but i'm too selfish to do that now - i put too much effort (relative to
                    how much people put into writing a single email letter) into it - that
                    it'll be a waste from _my_ point of view ;)

                    --
                    guy

                    "For world domination - press 1,
                    or dial 0, and please hold, for the creator." -- nob o. dy
                  • Omer Musaev
                    -----Original Message----- From: Chen Shapira [mailto:chen@mercury.co.il] Sent: Thursday, November 14, 2002 3:20 PM To: hackers-il@yahoogroups.com
                    Message 9 of 10 , Nov 14, 2002
                    • 0 Attachment
                      ' -----Original Message-----
                      ' From: Chen Shapira [mailto:chen@...]
                      ' Sent: Thursday, November 14, 2002 3:20 PM
                      ' To: 'hackers-il@yahoogroups.com'
                      ' Subject: RE: [hackers-il] at which point is code worthy of
                      ' publication?
                      '
                      '
                      '
                      ' > When the program does something useful in a reliable way.
                      ' Version 0.1
                      ' > may contain only the smallest part of the intended
                      ' functinality, but
                      ' > I would expect it to do what it does in clear an reliable way.
                      '
                      ' I disagree here.
                      '
                      ' IMO from the first version, the program should differentiate
                      ' itself and do
                      ' something non-trivial. Have a special core functionality up
                      ' and running
                      ' before you release the first version.

                      After thinking on the subject a little, I agree with you. The non-trivial
                      part is as important as clarity of intentions.

                      ' BTW. The most usefull feature any version 1.0 could have is
                      ' automatic bug
                      ' reporting.
                      ' We've added it in few components, and its amazing. No
                      ' developer should ever
                      ' be left without necessery details as version, OS and gcc version.
                      ' I'd also suggest "add bug" button (or flag) which will allow
                      ' user to write
                      ' the description, while automatically appending the important details.

                      My previous project had automatic bug reporting as well, but I do not
                      know whether that did help us. On the other hand, we were pretty sure
                      on our hardware and software.

                      '
                      ' To unsubscribe from this group, send an email to:
                      ' hackers-il-unsubscribe@egroups.com
                      '
                      '
                      '
                      ' Your use of Yahoo! Groups is subject to
                      ' http://docs.yahoo.com/info/terms/
                      '
                      '
                    • Oleg Goldshmidt
                      You are looking for a definition of a LPU - least publishable unit. This is a problem that every referee working for a peer-reviewed journal or conference
                      Message 10 of 10 , Nov 17, 2002
                      • 0 Attachment
                        You are looking for a definition of a LPU - least publishable
                        unit. This is a problem that every referee working for a peer-reviewed
                        journal or conference faces. I've done a bit of that and it's
                        tough. It's tough, because it is related to another LPU - least
                        potential utility - of published papers.

                        In the context of your question, it is even tougher because you are
                        going to make the decision for your own stuff. You are a rare bird -
                        most authors won't even ask the question. Rather, the question most
                        authors do ask is "what is the LPU in my field so that I can publish a
                        string of papers rather than one, thus lengthening my publication
                        list?" (the so-called "salami publishing"). Some prestigious
                        publications discourage that, but not all.

                        The result in the publishing world is an avalanche of write-only
                        papers. I suppose the result in the software world is an avalanche of
                        write-only projects or revisions. This should, at some point, put a
                        limit to the blind application of the famous "release early, release
                        often" rule, good as it is.

                        Beyond your own criteria based on your sound common sense (I would
                        drop "effort" from the list, leaving "usefulness" and "novelty"), I
                        don't have a recipe to offer. Maybe I'll just note something that is
                        more pronounced in code than in science: there is a clear distinction
                        between "features" (my code does something new) and "bugs" (useful,
                        but not new). There are clearly two schools of thought here. One is
                        represented by everybody's favourite nemesis, Microsoft, who
                        practically went on record saying bug fixes are not important because
                        people upgrade only for new features. Thus, in their definition of an
                        LPU "novelty" has a high weight. You might disagree.

                        I would guess that Googling for "least publishable unit" will yield
                        some fun things to read and ponder.

                        --
                        Oleg Goldshmidt | ogoldshmidt@...
                        ========================================================
                        First binary search algorithm - J. Mauchly, 1946
                        First correct binary search algorithm - D.H.Lehmer, 1960
                      Your message has been successfully submitted and would be delivered to recipients shortly.