commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hank Grabowski <>
Subject Re: [Math] Disagreeing about how MATH-1138 has been handled (Was: [math] GitHub vs ASF Repo)
Date Fri, 17 Oct 2014 20:12:35 GMT
I didn't want to address the situation in my original response since I was
on a smart phone, a bit torqued up by the original e-mail and I didn't want
to further agitate the situation by addressing the original
implementation.  Since it seems that's all happened anyway, if you still
want my newbie two cents then it is the follow.  I do not believe that we
should create identical sounding non-deprecated classes so that we can keep
the original implementations in their place.  These existing classes have
the appropriate name and calling signature.  These existing classes are
being used by libraries and are returning incorrect results.  That's how
all this was brought to my attention anyway.

If we want to undo changes to BicubicSplineInterpolatingFunction and return
it back to its original state and move my code into something like
PieceWiseBicubicSplineInterpolatingFunction then I can see how that would
be reasonable, but that shouldn't be accessed anywhere in the
BicubicSplineInterpolator code.  The original
BicubicSplineInterpolatingFunction has trouble with interpolation of even
planar functions.  I'm therefore reluctant to keep that as an option that
someone could casually invoke in their code, even with deprecation
warnings.  That's the only reason why I removed it in the first place (the
same discussion is going to happen on the TricubicInterpolation btw).  If
we decide to go that route I would prefer to do that as a new change and
pull request rather than undo the original pull request. I can create a new
JIRA incident to capture that.

As to the future changes, my original thought was that as I implement the
additional algorithms, specifically the B-Spline and regular cubic, that
there may be some refactoring. I'm not sure if I see a value in an abstract
base class across all of them.  We already have the *variateInterpolator
interfaces which I think capture the generic nature of the usage of the
interpolation functions.  If I found multiple interpolators using common
construction code then I would have suggested a refactoring to either a
factory class or an abstract base class.  It isn't apparent to me that
either of those two will come to fruition. As a point of reference, the two
interpolators that would be the most same out of the list I had suggested
were the existing SplineInterpolator and AkimaSplineInterpolator.  Their
algorithms are different to the point where no common code exists between
them.  I have written, and it is my intention to continue writing, unit
tests around the interpolating functions that do bounds checks and
numerical accuracy tests that are benchmarked against Monte Carlo runs of
the Octave interpolators of the same kind.  A refactoring iff we need it
would therefore make sense to me. If you see something that jumps out as
screaming for a common base class then I'm open to that suggestion.  I'm
just not seeing it right now.

On Fri, Oct 17, 2014 at 1:40 PM, Phil Steitz <> wrote:

> Lets calm down, guys.  As Luc said, we are experimenting here,
> getting the git workflow established.  No one is trying to exclude
> or discourage anyone.  Hank or Luc, can you respond to Gilles'
> questions about the commit?  If not, it should be reverted, but
> hopefully you can all three agree on a way forward.
> Phil
> On 10/17/14 8:31 AM, Hank Grabowski wrote:
> > Gilles,
> >
> > This is the original changes to get the bicubic spline working. These
> were
> > originally committed as a diff that was attached to the JIRA incident.
> The
> > suggestions in your email were in response to my questions about work
> > carrying forward from that point.
> >
> > I have been very explicit and verbose on what I was doing throughput the
> > development of those upgrades, both within the JIRA incident and within
> the
> > forums.  I attempted to incorporate all the comments that I received.  I
> > submitted my code in a way that could have been reviewed.  If that isn't
> > clear then I apologize, however I don't appreciate the connotation that
> > these changes were done willy nilly or in a rogue fashion.
> >
> > Because I want my future contributions to be appreciated and not
> disrupted
> > I would like to know how to do this process better/differently.  I don't
> > intend to put substantial effort into development and communication to
> have
> > yet another reaction like this.  It is as or more frustrating to me as it
> > appears it is for you.
> >
> > Sent from my Android phone
> > On Oct 17, 2014 10:24 AM, "Gilles" <> wrote:
> >
> >> Hi.
> >>
> >> On Fri, 17 Oct 2014 10:46:53 +0200, Luc Maisonobe wrote:
> >>
> >>> Hi Hank,
> >>>
> >>> Le 16/10/2014 20:20, Hank Grabowski a écrit :
> >>>
> >>>> OK.  I submitted the pull request yesterday.  I'm going to now remove
> the
> >>>> diff from JIRA.
> >>>>
> >>>>
> >>>>
> >>> Thank you. I have merged this request and pushed the result to our main
> >>> repository. The only changes I introduced were fixing end of lines in
> >>> the new Akima spline files (main and test). Perhaps you should check
> the
> >>> git setting core.autocrlf on your side.
> >>>
> >>>
> >>> It seems to me this pull request did not make it to our dev list. Did I
> >>> simply miss it or is there a problem in the GitHub setting since we
> >>> updated our repo? Did someone else see the request? If nobody saw it, I
> >>> think we should ask infra to fix the settings.
> >>>
> >>>
> >> I didn't see the request.
> >>
> >> I also did not see the changes before they were committed.[1]
> >>
> >> I have no problem with the principle of dropping broken code; but I have
> >> one with figuring out when it is okay to do so without notice, ignoring
> >> that care be taken with such changes.
> >>
> >> I had suggested to not touch the existing classes and that they should
> >> be first deprecated, and then removed. Since several alternatives for
> >> implementing the functionality were proposed, it would have been
> sensible
> >> to have an agreement on how to fit them within the library (for example:
> >> an abstract base class and concrete subclasses for each kind of spline).
> >>
> >> In CM, we've had, on one hand, small, trivial, changes that generated a
> >> lot of unwarranted heat and stalled for days or weeks. And on the other,
> >> here is an example where big changes are pushed without a discussion.
> >>
> >> When I dare to make a suggestion about something,[2] it means that
> >> I took some time to think about the proposal; the minimum of respect
> >> for this commitment is to acknowledge the existence of such comments
> >> and provide an explanation as to why it is better to not follow the
> >> suggested path:
> >>
> >>
> >>
> >> [If alternative views are really so different that a compromise cannot
> >> be reached, it is quite simple to count the people who have expressed
> >> their preference from a list of alternatives (as Phil often posts).
> >> In this instance, only I have expressed my preference; hence I do not
> >> understand why something else has been committed.]
> >>
> >> My opinion is that we should have created new classes containing the
> >> working implementation(s) of the interpolation, and deprecated but
> >> kept the old ones at least up to release 4.0, advertizing (in the
> >> release notes and in the Javadoc) that they are not working properly
> >> (although they follow  reference "such and such"). [Someone might
> >> have used that window of opportunity to point to the root cause of
> >> the issue.]
> >>
> >> So, was there a problem with that approach?
> >>
> >> I'm sorry if this naive questioning looks trivial to some of you,
> >> but I'd honestly like to know if this project is team work, and how
> >> it's supposed to work in practice.
> >>
> >> I'm also sorry if this rant has been caused by a simple overlook
> >> of the post I'm referring to above. However even if it's the case,
> >> there is a problem.
> >>
> >> I hope I'm not being misunderstood[3]: it is great that Hank
> >> could fix CM's spline interpolators.
> >> In this opinion, I'm only concerned with the overall aspect of
> >> contributing to a project that purports to be more that a bunch
> >> of hooks to math functions, and about the design of which people
> >> who have been contributing for some time might have earned (?)
> >> the right to be listened to.[4]
> >>
> >>
> >> Regards,
> >> Gilles
> >>
> >> [1] And I'm also not yet comfortable with looking at large changes
> >>     due to my surely inefficient handling of "git"...
> >> [2] This is already after the self-censorship filter, on issues
> >>     where I know in advance that challenging the adopted view will
> >>     either be ignored or go nowhere... :-}
> >> [3] As is often the case by people who do not carefully read what
> >>     I write in this forum.
> >> [4] Which, I know, is not the same as being heard, and even less
> >>     being agreed with. ;-)
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail:
> >> For additional commands, e-mail:
> >>
> >>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message