[SciPy-User] Least-squares fittings with bounds: why is scipy not up to the task?

Adrien Gaidon adnothing@gmail....
Fri Mar 9 02:47:24 CST 2012


2012/3/9 william ratcliff <william.ratcliff@gmail.com>

>
> Take the question of bounds for example--is it better to have no easy way
> of implementing bounds, or to have the cleanest/most efficient piece of
> code?  What is the actual process of contributing these days?   For
> example, for making a patch, now that the codebase is on github.  Do we
> make a fork, patch, and point to the fork?  Submit a patch?  If so, where?
>
>
> What exactly are scikits?  What determines if something belongs in
> scipy.optimize as compared to a scikit?  What is the process for creating a
> scikit?  The webpage is a bit vague.   Do scikits share more than a
> namespace?
>
> Sorry that this is a bit disorganized, but the TL;DR is that I think scipy
> could do more to make it easier for people to contribute...I understand the
> need to have maintainable code in a large project, but in many cases,
> having a less than perfect implementation (with tests) would be better than
> having no implementation...
>

I 100% agree with William here and think *how* to contribute is at the
heart of the problem.

I think many users in the scipy multiverse have their own `utils.py` or
other home-made modules, which may contain code useful to a wide audience
and absent of the numpy/scipy or related well-known libraries (e.g. the
excellent scikit-learn).
As all pythonistas have a good heart, I'm sure they would like to share it,
but, as William said, the road along that path is unclear, bumpy and
sometimes not super friendly.

For instance, I wrote a simple multi-dimensional digitize function and
posted a gist (https://gist.github.com/1509853) to this list (or numpy or
some other relevant mailing list...). Before doing that, I really pondered:
"is it useful enough? is it not trivial? where and how should I contribute
it?" etc.
All these metaphysical questions are a barrier to the wannabe-contributor,
that, IMHO, filters out a lot of useful code. Especially for such small
contributions, the hassle becomes superior to the expected gain for the
community and the code ends up self-censored or forgotten (we're all always
very busy).
That's problematic, because I believe in the "emergence" property of open
source projects: a sum of small contributions can make a powerful library.

Furthermore, it seems that large projects tend to have API zealots that
don't even want to see code unless it can be directly merged in master
(caricature). I totally understand that, and think it's in the nature of
open source projects in order to not grow anarchistically.
However, this also prevents small "diamonds in the rough" to be discovered,
or useful temporary hole-filling solutions to be proposed until a proper
one is available. To me, this is a false problem due to the fact that the
only advertised way to contribute is by forking + pull request. But not
everybody is a scipy source code guru!

Therefore, I think it's necessary for the community to discuss this issue,
get a consensus on the desired ways to contribute with respect to the
contribution type (very important), write a small tutorial or document
explaining this, and, most importantly, publicly advertise it on the
website.

So far, the ways to contribute that I know of are:

- fork + pull request: high barrier of entry
- mailing list + gist: quick & easy, but one must be willing to "spam"
everyone
- scipy central

If I have forgotten any, feel free to add them!

To conclude this long rant, I think that http://scipy-central.org/ is a
great idea with lots of potential, especially for sharing small snippets.
To me, it can be some kind of "social network for code snippets", and the
comments / voting / popularity system can allow "true scipy contributors"
to peek at the best contributions and clean / test / integrate their
selection. That way, users can just "dump" their code, without worrying
about the difficult engineering issues of integration into scipy!
But it needs more advertising to gain visibility to every scipy user. For
now, there is not even a link on http://www.scipy.org/  and Google results
are not looking either...

Cheers,

Adrien
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20120309/b57ef4ae/attachment.html 


More information about the SciPy-User mailing list