toward null-safe cookie cutter Comparators

Discussion in 'Java' started by Roedy Green, Nov 13, 2011.

  1. Roedy Green

    Roedy Green Guest

    I don't know how many people still subscribe, but I posted over in
    comp.lang.advocacy a request on your preferred way of writing
    null-safe Comparators.

    I have shown a number of possible snippets. Please let me know what
    you think and see if you can come up with something better - fast,
    terse and comprehensible.

    I will incorporate the feature in the CompatorCutter for cranking out
    Java source code for custom Comparators.
    --
    Roedy Green Canadian Mind Products
    http://mindprod.com
    I can't come to bed just yet. Somebody is wrong on the Internet.
    Roedy Green, Nov 13, 2011
    #1
    1. Advertising

  2. Roedy Green

    Tom Anderson Guest

    On Sun, 13 Nov 2011, Roedy Green wrote:

    > I don't know how many people still subscribe, but I posted over in
    > comp.lang.advocacy a request on your preferred way of writing null-safe
    > Comparators.


    Roedy means (a) comp.lang.java.advocacy, and (b) comparators for objects
    some of whose fields may be null (ie i don't think he's concerned with
    comparators where one of the arguments may be null).

    For those of you who are into Google Groups, the other thread is here:

    http://groups.google.com/group/comp.lang.java.advocacy/browse_thread/thread/83db33bcbd51905d#

    Approaches involving nested if-elses will be more efficient, but always
    strike me as rather awkward.

    > I have shown a number of possible snippets. Please let me know what you
    > think and see if you can come up with something better - fast, terse and
    > comprehensible.


    I personally rather like your third option:

    final String aSpecies = a.species == null ? "" : a.species;
    final String bSpecies = b.species == null ? "" : b.species;
    return aSpecies.compareTo( bSpecies );

    Perhaps even pushing the duplicated denullification into a little method.
    Note that when the Elvis operator makes it into Java, you will be able to
    write:

    return (a.species ?: "").compareTo(b.species ?: "");

    Should you so wish.

    I'm also happy to see:

    if (a.species == b.species) return 0;

    as a guard clause ahead of the main comparison, which catches, as you say,
    both the both-null and identical-objects cases.

    tom

    --
    No man ever steps in the same river twice, for it's not the same river
    and he's not the same man. -- Heraclitus
    Tom Anderson, Nov 13, 2011
    #2
    1. Advertising

  3. Roedy Green

    Roedy Green Guest

    On Sun, 13 Nov 2011 17:59:54 +0000, Tom Anderson
    <> wrote, quoted or indirectly quoted someone who
    said :

    >return aSpecies.compareTo( bSpecies );
    >
    >Perhaps even pushing the duplicated denullification into a little method.
    >Note that when the Elvis operator makes it into Java, you will be able to
    >write:


    This whole business of multiple representations for empty.
    Acch(Imagine a Yiddish sound of contempt).

    null, "", " "

    I have have always felt this looseness was like a trap a child digs to
    catch the mailman.

    There are no assertions defining what a given method parm will accept
    (though IntelliJ is pushing @Nullable and #NotNull) There is not even
    a JavaDoc convention to warn you if a method might produce which
    combinations of the three.

    see http://mindprod.com/jgloss/empty.html

    From a machine efficiency point of view, null is probably the best
    convention. Empty is usually a special case anyway. It might as well
    be easy to detect.

    From a coding safety point of view "" is best. It will generaly work
    sensibly if passed to a method expecting a substantial string, where
    there is a good chance it would fail on null.

    Maybe we need some sort of Generics to declare what methods
    produce/consume and have thecompiler tell you if you are potentially
    doing something dangerous at compile time.

    I once drove my boss nearly to distraction, because I was convinced
    the problem with the project was random empty string representations.

    The DWIM school of thinking

    Way back I wrote suggesting a DWIM approach to taming the dreaded
    NullPointerException. It is inspired more by scripting languages.

    Thing a = null.

    a.getAString() --> null
    a.getTemp() --> 0.0d;
    a.getDufusOBject --> null

    a.doSomething() --> does nothing

    a.doSomethingElse ( engage( 42 ) ); --> invokes engage function
    ( in my mind checking a and store come after RHS evaluation,
    If I had my way Java would a much stricter left to right
    evaluation order)

    For more explicit use, you would replace the . operator with .? to
    indicate you wanted to do a dummy var fetch/method call or none at all
    if "a" were null. When I thought about extending that I though
    perhaps classes should use dummy objects in place of null to bypass
    this sort of trouble at clealr all that null-handling clutter,just
    letting the null-handling logic come out in the wash most of the
    time.

    The thinking is a bit like the way there are are multiple flavours of
    NaN in IEEE floating point, and the value appearing in calculation is
    not the end of the world. The null just propagates.

    P.S.
    Apparently the eponymous Elvis rarely went to Las Vegas. I have not
    tracked down who he is. People were often puzzled when I talked about
    the McCarthy or operator || the bitwise | one.
    see http://mindprod.com/jgloss/or.html The McCarthy I refer to
    probably never met Candice Bergen and died recently.
    --
    Roedy Green Canadian Mind Products
    http://mindprod.com
    I can't come to bed just yet. Somebody is wrong on the Internet.
    Roedy Green, Nov 14, 2011
    #3
  4. Roedy Green

    Daniel Pitts Guest

    On 11/14/11 10:28 AM, Roedy Green wrote:
    > On Sun, 13 Nov 2011 17:59:54 +0000, Tom Anderson
    > <> wrote, quoted or indirectly quoted someone who
    > said :
    >
    >> return aSpecies.compareTo( bSpecies );
    >>
    >> Perhaps even pushing the duplicated denullification into a little method.
    >> Note that when the Elvis operator makes it into Java, you will be able to
    >> write:

    >
    > This whole business of multiple representations for empty.
    > Acch(Imagine a Yiddish sound of contempt).
    >
    > null, "", " "
    >
    > I have have always felt this looseness was like a trap a child digs to
    > catch the mailman.
    >
    > There are no assertions defining what a given method parm will accept
    > (though IntelliJ is pushing @Nullable and #NotNull) There is not even
    > a JavaDoc convention to warn you if a method might produce which
    > combinations of the three.
    >
    > see http://mindprod.com/jgloss/empty.html
    >
    > From a machine efficiency point of view, null is probably the best
    > convention. Empty is usually a special case anyway. It might as well
    > be easy to detect.
    >
    > From a coding safety point of view "" is best. It will generaly work
    > sensibly if passed to a method expecting a substantial string, where
    > there is a good chance it would fail on null.

    The real problem is handling User Input and Form Submission. The empty
    string ("") signifies that a field was submitted but not filled with any
    value. A null value signifies that the field was not submitted at all.

    Unfortunately when processing such forms the null value, an empty
    string, and an all whitespace string, usually need to be treated the
    same way. Invalid input.

    The truth of the matter is that should all be handled by the
    binding/validation layer, and then normalized to exactly one such value
    (possibly null). Often they should be converted to a domain object
    anyway, rather than kept as "just a string".
    >
    > Maybe we need some sort of Generics to declare what methods
    > produce/consume and have thecompiler tell you if you are potentially
    > doing something dangerous at compile time.
    >
    > I once drove my boss nearly to distraction, because I was convinced
    > the problem with the project was random empty string representations.

    I've seen projects where a *core* library had a method "isNull" defined
    thusly:

    public boolean isNull(Object o) {
    if (o == null) return true;
    String s = String.valueOf(o);
    if (s.trim().length == 0) {
    return true;
    }
    if ("null".equals(s)) return true;
    if ("(null)".equals(s)) return true;
    }

    Obviously, someone was told that "null" and "(null)" were appearing
    somewhere and causing problems. Instead of tracking down the source,
    they littered the codebase with these "isNull" checks. I should have my
    legal name changed to "Null Null", and see how many forms on the web
    reject my name :)
    >
    > The DWIM school of thinking
    >
    > Way back I wrote suggesting a DWIM approach to taming the dreaded
    > NullPointerException. It is inspired more by scripting languages.
    >
    > Thing a = null.
    >
    > a.getAString() --> null
    > a.getTemp() --> 0.0d;
    > a.getDufusOBject --> null
    >
    > a.doSomething() --> does nothing
    >
    > a.doSomethingElse ( engage( 42 ) ); --> invokes engage function
    > ( in my mind checking a and store come after RHS evaluation,
    > If I had my way Java would a much stricter left to right
    > evaluation order)
    >

    NPE is one of the best things that can happen. It tells you immediately
    what needed to have a value but didn't. Rather than the end result of a
    chain of null operations that failed deeply in the project.

    Imagine the following:

    // Commonly used library method handleThing.
    void handleThing(Thing t) {
    AnotherThing at = t.getAnotherThing()
    doSomething(at);
    }

    void doSomething(AnotherThing t) {
    saveToDatabase(t.getName(), t.getId());
    }

    Now, imagine you get a database error (or worse, no error, just bad null
    records). You have *no* trace whatsoever of which call of handleThing
    caused the problem. This is similar to the potential problem caused by
    NaN propagation.

    > For more explicit use, you would replace the . operator with .? to
    > indicate you wanted to do a dummy var fetch/method call or none at all
    > if "a" were null. When I thought about extending that I though
    > perhaps classes should use dummy objects in place of null to bypass
    > this sort of trouble at clealr all that null-handling clutter,just
    > letting the null-handling logic come out in the wash most of the
    > time.
    >
    > The thinking is a bit like the way there are are multiple flavours of
    > NaN in IEEE floating point, and the value appearing in calculation is
    > not the end of the world. The null just propagates.
    >
    > P.S.
    > Apparently the eponymous Elvis rarely went to Las Vegas. I have not
    > tracked down who he is. People were often puzzled when I talked about
    > the McCarthy or operator || the bitwise | one.
    > see http://mindprod.com/jgloss/or.html The McCarthy I refer to
    > probably never met Candice Bergen and died recently.
    Daniel Pitts, Nov 14, 2011
    #4
  5. Roedy Green

    Roedy Green Guest

    On Mon, 14 Nov 2011 10:55:11 -0800, Daniel Pitts
    <> wrote, quoted or indirectly
    quoted someone who said :

    >>

    >NPE is one of the best things that can happen


    I really enjoyed that post. It might have been composed by Mark
    Twain were he a computer programmer.

    Amen. One of the almost miraculous things about Java is once you get
    rid of the compile errors, and once you stop triggering NPEs, there
    very good chance you have nailed all the bugs.

    There are situations where null is expected and it is just a hassle to
    explicitly deal with it, and other places where its presence is a sign
    of pathology.

    Whatever changes you make to the language should not make you treat
    everything the same way.
    --
    Roedy Green Canadian Mind Products
    http://mindprod.com
    I can't come to bed just yet. Somebody is wrong on the Internet.
    Roedy Green, Nov 15, 2011
    #5
  6. Roedy Green

    kensi Guest

    On 14/11/2011 1:55 PM, Daniel Pitts wrote:
    > I've seen projects where a *core* library had a method "isNull" defined
    > thusly:
    >
    > public boolean isNull(Object o) {
    > if (o == null) return true;
    > String s = String.valueOf(o);
    > if (s.trim().length == 0) {
    > return true;
    > }
    > if ("null".equals(s)) return true;
    > if ("(null)".equals(s)) return true;
    > }


    Shocking, if true, since the above code won't compile.

    > Obviously, someone was told that "null" and "(null)" were appearing
    > somewhere and causing problems. Instead of tracking down the source,
    > they littered the codebase with these "isNull" checks. I should have my
    > legal name changed to "Null Null", and see how many forms on the web
    > reject my name :)


    Why go to the hassle of changing your legal name? It's not like giving
    false information to large corporate marketing departments^W^W^W^Wweb
    forms is an offense under the law or anything. ;) At most it's a TOS
    violation and the account you create won't last long (cf. Facebook,
    Google Plus).

    > Imagine the following:
    >
    > // Commonly used library method handleThing.
    > void handleThing(Thing t) {
    > AnotherThing at = t.getAnotherThing()
    > doSomething(at);
    > }


    Comment above is wrong, should be
    // Commonly used Law of Demeter violation
    HTH. :)
    kensi, Nov 16, 2011
    #6
  7. Roedy Green

    Daniel Pitts Guest

    On 11/16/11 9:50 AM, kensi wrote:
    > On 14/11/2011 1:55 PM, Daniel Pitts wrote:
    >> I've seen projects where a *core* library had a method "isNull" defined
    >> thusly:
    >>
    >> public boolean isNull(Object o) {
    >> if (o == null) return true;
    >> String s = String.valueOf(o);
    >> if (s.trim().length == 0) {
    >> return true;
    >> }
    >> if ("null".equals(s)) return true;
    >> if ("(null)".equals(s)) return true;
    >> }

    >
    > Shocking, if true, since the above code won't compile.

    Well, I did "copy and paste" from memory, and my clipboard is obviously
    fallible. There should be a "return false;" immediately prior the final
    "}".
    >
    >> Obviously, someone was told that "null" and "(null)" were appearing
    >> somewhere and causing problems. Instead of tracking down the source,
    >> they littered the codebase with these "isNull" checks. I should have my
    >> legal name changed to "Null Null", and see how many forms on the web
    >> reject my name :)

    >
    > Why go to the hassle of changing your legal name? It's not like giving
    > false information to large corporate marketing departments^W^W^W^Wweb
    > forms is an offense under the law or anything. ;) At most it's a TOS
    > violation and the account you create won't last long (cf. Facebook,
    > Google Plus).

    Because if I change my legal name, then I have legal recourse for them
    discriminating against me ;-).
    >
    >> Imagine the following:
    >>
    >> // Commonly used library method handleThing.
    >> void handleThing(Thing t) {
    >> AnotherThing at = t.getAnotherThing()
    >> doSomething(at);
    >> }

    >
    > Comment above is wrong, should be
    > // Commonly used Law of Demeter violation
    > HTH. :)


    Perhaps in this case, but the point still stands that null propagation
    can make bug diagnosis much more difficult.
    Daniel Pitts, Nov 16, 2011
    #7
  8. Roedy Green

    Lew Guest

    kensi wrote:
    > Daniel Pitts wrote:
    >> I've seen projects where a *core* library had a method "isNull" defined
    >> thusly:
    >>
    >> public boolean isNull(Object o) {
    >> if (o == null) return true;
    >> String s = String.valueOf(o);
    >> if (s.trim().length == 0) {
    >> return true;
    >> }
    >> if ("null".equals(s)) return true;
    >> if ("(null)".equals(s)) return true;
    >> }

    >
    > Shocking, if true, since the above code won't compile.


    He said, "thusly", not "thus", thus allowing a little room for transcription error, in this case the omission of the catch-all 'return false;'.

    His main point, that even with the correction the routine is stupid, is not damaged.

    --
    Lew

    > > Obviously, someone was told that "null" and "(null)" were appearing
    > > somewhere and causing problems. Instead of tracking down the source,
    > > they littered the codebase with these "isNull" checks. I should have my
    > > legal name changed to "Null Null", and see how many forms on the web
    > > reject my name :)

    >
    > Why go to the hassle of changing your legal name? It's not like giving
    > false information to large corporate marketing departments^W^W^W^Wweb
    > forms is an offense under the law or anything. ;) At most it's a TOS
    > violation and the account you create won't last long (cf. Facebook,
    > Google Plus).
    >
    > > Imagine the following:
    > >
    > > // Commonly used library method handleThing.
    > > void handleThing(Thing t) {
    > > AnotherThing at = t.getAnotherThing()
    > > doSomething(at);
    > > }

    >
    > Comment above is wrong, should be
    > // Commonly used Law of Demeter violation
    > HTH. :)
    Lew, Nov 16, 2011
    #8
  9. On Wed, 16 Nov 2011 13:47:57 -0800, Daniel Pitts
    <> wrote:

    [snip]

    >> Why go to the hassle of changing your legal name? It's not like giving
    >> false information to large corporate marketing departments^W^W^W^Wweb
    >> forms is an offense under the law or anything. ;) At most it's a TOS
    >> violation and the account you create won't last long (cf. Facebook,
    >> Google Plus).

    >Because if I change my legal name, then I have legal recourse for them
    >discriminating against me ;-).


    <perry mason>
    "Your Honour, we have documented proof in writing of the
    defendant's intent to commit computer hacking. Exhibit A is a name
    change application that the defendant ..."

    [snip]

    Sincerely,

    Gene Wirchenko
    Gene Wirchenko, Nov 17, 2011
    #9
  10. Roedy Green

    Lew Guest

    Gene Wirchenko wrote:
    > Daniel Pitts wrote:
    > [snip]
    >
    > >> Why go to the hassle of changing your legal name? It's not like giving
    > >> false information to large corporate marketing departments^W^W^W^Wweb
    > >> forms is an offense under the law or anything. ;) At most it's a TOS
    > >> violation and the account you create won't last long (cf. Facebook,
    > >> Google Plus).

    > >Because if I change my legal name, then I have legal recourse for them
    > >discriminating against me ;-).

    >
    >
    >
    > "Your Honour, we have documented proof in writing of the
    > defendant's intent to commit computer hacking. Exhibit A is a name
    > change application that the defendant ..."
    >
    > [snip]


    Cute, but given that Daniel's approach involves no login to any computer systems, no coding, no scripting nor any other computer activity of his own, it would be very difficult indeed to make a case that he's engaging in computer hacking. In fact, he would make such a change with no certain knowledge that computer systems have a weakness, much less any demonstrable attempt to exploit such weakness.

    http://xkcd.com/327/

    --
    Lew
    Lew, Nov 17, 2011
    #10
  11. On Wed, 16 Nov 2011 17:02:34 -0800 (PST), Lew <>
    wrote:

    >Gene Wirchenko wrote:
    >> Daniel Pitts wrote:
    >> [snip]
    >>
    >> >> Why go to the hassle of changing your legal name? It's not like giving
    >> >> false information to large corporate marketing departments^W^W^W^Wweb
    >> >> forms is an offense under the law or anything. ;) At most it's a TOS
    >> >> violation and the account you create won't last long (cf. Facebook,
    >> >> Google Plus).
    >> >Because if I change my legal name, then I have legal recourse for them
    >> >discriminating against me ;-).


    >> "Your Honour, we have documented proof in writing of the
    >> defendant's intent to commit computer hacking. Exhibit A is a name
    >> change application that the defendant ..."
    >>
    >> [snip]

    >
    >Cute, but given that Daniel's approach involves no login to any computer

    systems, no coding, no scripting nor any other computer activity of
    his own, it would be very difficult indeed to make a case that he's
    engaging in computer hacking. In fact, he would make such a change
    with no certain knowledge that computer systems have a weakness, much
    less any demonstrable attempt to exploit such weakness.

    Well, he might be typing into some system.

    "Your Honour, the defendant's lawyer is obviously trying to get
    his client off on a technicality. This is tantamount to admitting
    guilt."

    >http://xkcd.com/327/


    Spoilsport. <BEG>

    Sincerely,

    Gene Wirchenko
    Gene Wirchenko, Nov 17, 2011
    #11
  12. Lew <> wrote:
    > kensi wrote:
    >> Daniel Pitts wrote:
    >>> I've seen projects where a *core* library had a method "isNull" defined
    >>> thusly:
    >>>
    >>> public boolean isNull(Object o) {
    >>> if (o == null) return true;
    >>> String s = String.valueOf(o);
    >>> if (s.trim().length == 0) {
    >>> return true;
    >>> }
    >>> if ("null".equals(s)) return true;
    >>> if ("(null)".equals(s)) return true;
    >>> }

    >> Shocking, if true, since the above code won't compile.

    > He said, "thusly", not "thus", thus allowing a little room
    > for transcription error, in this case the omission of the
    > catch-all 'return false;'.


    Funny. The missing parens after length caught my eye, but
    the missing return at the end didn't. :)
    Andreas Leitgeb, Nov 17, 2011
    #12
  13. Roedy Green

    Paul Cager Guest

    On Nov 16, 9:47 pm, Daniel Pitts
    <> wrote:
    > >> Obviously, someone was told that "null" and "(null)" were appearing
    > >> somewhere and causing problems. Instead of tracking down the source,
    > >> they littered the codebase with these "isNull" checks. I should have my
    > >> legal name changed to "Null Null", and see how many forms on the web
    > >> reject my name :)

    >

    [...]
    > Because if I change my legal name, then I have legal recourse for them
    > discriminating against me ;-).


    Reminds me of: http://xkcd.com/327/
    Paul Cager, Nov 17, 2011
    #13
  14. Roedy Green

    Tim Slattery Guest

    Paul Cager <> wrote:

    >On Nov 16, 9:47 pm, Daniel Pitts
    ><> wrote:
    >> >> Obviously, someone was told that "null" and "(null)" were appearing
    >> >> somewhere and causing problems. Instead of tracking down the source,
    >> >> they littered the codebase with these "isNull" checks. I should have my
    >> >> legal name changed to "Null Null", and see how many forms on the web
    >> >> reject my name :)

    >>

    >[...]
    >> Because if I change my legal name, then I have legal recourse for them
    >> discriminating against me ;-).

    >
    >Reminds me of: http://xkcd.com/327/



    ROTFL!!!!

    --
    Tim Slattery

    http://members.cox.net/slatteryt
    Tim Slattery, Nov 17, 2011
    #14
  15. Roedy Green

    Nigel Wade Guest

    On 16/11/11 17:50, kensi wrote:
    > Why go to the hassle of changing your legal name? It's not like giving
    > false information to large corporate marketing departments^W^W^W^Wweb
    > forms is an offense under the law or anything. ;) At most it's a TOS
    > violation and the account you create won't last long (cf. Facebook,
    > Google Plus).


    Really?

    http://www.theregister.co.uk/2008/11/27/myspace_mother_guilty/

    Note, she was NOT convicted of "cyber bullying", but of fraudulently
    accessing MySpace by providing false personal information. If just goes
    to show how useful those "knee-jerk" laws can be, when suitably abused.

    --
    Nigel Wade
    Nigel Wade, Nov 17, 2011
    #15
  16. Roedy Green

    spk Guest

    One old Derbyshire sock popped a load of hogwash woven under "kensi"
    <>;

    >On 14/11/2011 1:55 PM, Daniel Pitts wrote:
    >> I've seen projects where a *core* library had a method "isNull" defined
    >> thusly:
    >>
    >> public boolean isNull(Object o) {
    >> if (o == null) return true;
    >> String s = String.valueOf(o);
    >> if (s.trim().length == 0) {
    >> return true;
    >> }
    >> if ("null".equals(s)) return true;
    >> if ("(null)".equals(s)) return true;
    >> }

    >
    >Shocking, if true, since the above code won't compile.
    >

    the pedant in you rises again?

    >> Obviously, someone was told that "null" and "(null)" were appearing
    >> somewhere and causing problems. Instead of tracking down the source,
    >> they littered the codebase with these "isNull" checks. I should have my
    >> legal name changed to "Null Null", and see how many forms on the web
    >> reject my name :)

    >
    >Why go to the hassle of changing your legal name?
    >

    you are lost for reason, Paul?
    How ironic.

    >It's not like giving false information to large corporate marketing departments^W^W^W^Wweb
    >forms is an offense under the law or anything. ;)


    failing to render "purpose" into the panorama before you, Paul?

    >At most it's a TOS >violation and the account you create won't
    >last long (cf. Facebook, Google Plus).
    >

    classic erroneous supposition.


    >> Imagine the following:
    >>
    >> // Commonly used library method handleThing.
    >> void handleThing(Thing t) {
    >> AnotherThing at = t.getAnotherThing()
    >> doSomething(at);
    >> }

    >
    >Comment above is wrong, should be
    >// Commonly used Law of Demeter violation
    >HTH. :)


    now just which of Murphy's list are you going to preserve for CJLP from your
    portfolio of known troll identities?

    --

    Murphy's list applies;

    ".--- . ... ..- ..." <>
    00101010 <>
    3k7e4intna <3y0a.p0z>
    3x7r4vagan <3l0n.c0m>
    3x+r4v4g4n <3l0n.c0m>
    Alice <>
    Arne Këndoj <3.org>
    Boojum <0m>
    B1ll Gat3s <0m>
    A Canuck <>
    Canuck <>
    Cindy <>
    ClassCastException <>
    Cthun <>
    Chad Carmichael <>
    dA.b0mB <0m>
    dark-zark-fark <>
    Deep Green <> (forgery)
    Deeyana <>
    De Lurker <>
    Derek Yancey <>
    Extravagan <>
    Eight of Seventeen <>
    Ferdinand the -14th <>
    Four of Seventeen <>
    Fuschia, President-Elect of the Bright Purplish-Green Council
    <>
    George Arctos <>
    Greg Kelly <0m>
    Greg Sandoval <>
    Gheerax IV <>
    Handkea fumosa <>
    Hieronymus S. Freely <>
    Hydrocon <>
    Henry Harrison <>
    Henderson <1>
    Heike Svensson <>
    Harry Greer <>
    Janie Zanie <>
    Jerry Gerrone <>
    John Kirkpatrick XVII <>
    Katie Gerrolds <>
    Kevin Hadron <>
    kensi <>
    KitKat <>
    Meerkats <> (forgery)
    Mister Scott <>
    Movable Hype <>
    Mrs. Danforth <>
    Mike Faramis <>
    Mamac <>
    Nancy 3 <0m>
    Nancy 4 <0m> (forgery)
    Nebulous <>
    Nightcrawler <>
    Nougat Surprise <>
    Orange Green <>
    Purpleswandir <>
    Retahiv Oopsiscame <>
    RichB <>

    SFTV_troll <>
    Some Guy <>
    Sulfide Eater <>
    <>
    Spock <>
    Series Expansion <>
    Seamus MacRae <>
    sproing <>
    Snicker-snack! <0m>
    Tim <>
    Thursday's Leftovers <>
    thoolen <>
    thoolen <>
    thoolen <>
    <>
    Willy Wonka <>
    Zapotec <>

    Truth in Conclusions.
    "At some point, can't we find a bit
    of charity for a guy who looks to be in for some real hellish times up
    ahead?"
    http://groups.google.com/group/alt.fan.kia-mennie/msg/c9946955fb73b48c?dmode=source
    spk, Nov 17, 2011
    #16
  17. Roedy Green

    Lew Guest

    Daniel Pitts is a well-known and respected contributor to the Java newsgroups.

    --
    Lew
    Lew, Nov 17, 2011
    #17
  18. Roedy Green

    spk Guest

    Lew <>, wrote:

    >Daniel Pitts is a well-known and respected contributor to the Java newsgroups.


    and?
    spk, Nov 17, 2011
    #18
  19. spk <> wrote:
    > Lew <>, wrote:
    >> Daniel Pitts is a well-known and respected contributor to the Java newsgroups.

    > and?


    to Lew:
    spk *didn't* respond to a posting of Daniel Pitts.

    As you're filtering away a lot, you should get into the habit
    of NOT-assuming that a followup was always to the preceding
    article in your newsclient's display.
    Andreas Leitgeb, Nov 17, 2011
    #19
  20. Roedy Green

    spk Guest

    Andreas Leitgeb <>, wrote:
    >spk <> wrote:
    >> Lew <>, wrote:
    >>> Daniel Pitts is a well-known and respected contributor to the Java newsgroups.

    >> and?

    >
    >to Lew:
    >spk *didn't* respond to a posting of Daniel Pitts.
    >
    >As you're filtering away a lot, you should get into the habit
    >of NOT-assuming that a followup was always to the preceding
    >article in your newsclient's display.


    thank you kindly.
    spk, Nov 17, 2011
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Tim Robinson

    Re: Cranking out Comparators

    Tim Robinson, Aug 4, 2003, in forum: Java
    Replies:
    3
    Views:
    485
    Roedy Green
    Aug 6, 2003
  2. Gerard Flanagan

    Generating Cutter numbers

    Gerard Flanagan, May 20, 2006, in forum: Python
    Replies:
    7
    Views:
    3,594
    Gerard Flanagan
    May 23, 2006
  3. Dan Tsafrir
    Replies:
    13
    Views:
    465
    Dan Tsafrir
    Oct 30, 2005
  4. John W. Long
    Replies:
    0
    Views:
    116
    John W. Long
    May 6, 2007
  5. TheDigitalroot

    I wanna make wordlist cutter

    TheDigitalroot, Mar 30, 2013, in forum: Python
    Replies:
    5
    Views:
    123
    TheDigitalroot
    Mar 30, 2013
Loading...

Share This Page