[ADMB Users] ADMB development cycle

Schnute, Jon Jon.Schnute at dfo-mpo.gc.ca
Thu Aug 20 20:00:36 PDT 2009


John - Thanks for your reply. I'm going to try responding pretty
honestly, but first let me emphasize that I'm speaking as an
enthusiastic supporter of the ADMB project who is genuinely trying to
help. I don't want to criticise anyone, particularly you who played (and
continues to play) a key role in making the project possible. I'm sure
that Ben also comes from that point of view, and we're really lucky to
have someone like him making contributions. (Users who don't know him
may wish to check out his web site
http://people.biology.ufl.edu/bolker/.)

I was glad to see that Jim Ianelli enjoyed the dog food metaphor. Like
you, I generally eat my own dog food. I think Ben's point is that the
more people eating the same food the better. Different people, with
different tastes, can make constructive suggestions for the recipe, and
after a while the stuff might get really tasty. (Of course, it could
also get pretty horrible.) Very possibly the ingredients may lead to a
variety of new recipes.

In regard to ADMB, I feel as if I have the can of dog food, but no can
opener. In framework of "open source" software, I honestly don't
understand the concept of an "official" Honolulu SVN repository that
isn't publically available. How can people make useful comments and
contributions without seeing what's really going on? It seems to me that
if you have everything running from your repository (and the binary
files demonstrate that you do), then you must have quite a few tools,
such as "make" files that don't appear on the Google Code site. Also, I
see no source code (perhaps originally in Lex/Yacc) for the executables
tpl2cpp and tpl2rem. 

As things currently stand, I get the (possibly false) impression that
ADMB has a core group of insiders, who really know what's going on, and
a group of outsiders (like me) who don't really see the picture clearly.
>From Ben's comments and his notable record in education, I think he just
wants to learn the tool so that he can adopt it in his courses and teach
it to his students. (Ben, sorry if I'm reading you wrong on this.) That
certainly is where I'm coming from, although I just have "colleagues",
not formal students.

Could you perhaps open the Honolulu SVN server (read only) to the ADMB
community and give us the address? Or, if the server can't handle the
load, could you give me access to the server so that I can post current
files on the Google code site from time to time? It strikes me that
Google offers many features above and beyond the SVN server itself, such
as an tools for posting problem issues and providing reviews.
 
I can understand that you probably have very limited resources in
Honolulu. If so, I think you can get a lot more help from the user
community by making the project more open. Everything I've read about
open source software suggests that this is true.

Hey, I'm just a retired guy like you. I could be out in the garden
instead of writing a letter like this one. I'll feel slightly rebuffed
if this appeal warrants only a cryptic reply with no proposed changes.
But maybe I'm just a grouchy old guy speaking on a subject of no
interest to anyone. It might help to hear comments from other ADMB users
about this issue.

I've had these thoughts for some time, but Ben's comments encouraged me
to speak freely. Am I at the head of a parade, or just trotting along
far behind everyone else?

Thanks for reading this, and best wishes,
Jon

-----Original Message-----
From: John Sibert [mailto:sibert at hawaii.edu] 
Sent: August-19-09 10:36 PM
To: Schnute, Jon
Cc: users at admb-project.org
Subject: Re: [ADMB Users] ADMB development cycle (bug in file f1b2vc1)

Jon (et al),
The explanation is simple. The code on code.google has not been kept up 
to date with the "official" svn repository in Honolulu. We could be a 
bit more diligent I suppose.

I generally eat my own dog food.
John

Schnute, Jon wrote:
> We've had some excellent exchanges among ADMB users recently. In
> particular, according to a message from Dave on August 6 (attached at
> the bottom of this message), Ben found a fatal bug. A few days later
> (August 10), Johnoel announced the release of ADMB 9.0.363 with
"various
> fixes to the libraries". I made the assumption that this bug had
> probably been fixed, so I thought I'd check the status of the code at
> http://code.google.com/p/admb-project/. In particular, I looked at the
> file f1b2vc1.cpp, located at:
>
>
http://code.google.com/p/admb-project/source/browse/trunk/df1b2-separabl
> e/f1b2vc1.cpp
>
> According to the SVN log on this file, it hasn't changed since release
> 43 on March 31. Also, it appears not to include Dave's suggestion
about
> ADUNCONST(dvector,x).
>
> So my question is this: How does the source code site
> http://code.google.com/p/admb-project/ fit into the ADMB development
> cycle? Also, how would I actually build a version of ADMB from the
files
> in the trunk subdirectories: df1b2-separable, examples, LICENSE,
> linad99, nh99, and tools99?
>
> I've used SVN to build and track my own local version of the source
> files, but I see from the change log at:
>
> http://code.google.com/p/admb-project/source/list 
>
> that all changes since release 43 have pertained to the Wiki.
>
> Probably, I've failed to notice an explanation somewhere of how all
this
> should work, and I suspect that the Google code site is still in
> development. But I know from my own recent experience that the tools
> available at "Google code" can greatly facilitate project development.
> Perhaps the ADMB user community would explore some of the changes Ben
> discussed if they/we had a full understanding of the complete toolkit
> needed to build ADMB from the latest source code.
>
> Thanks,
> Jon
>
> ******************************************
> Jon Schnute
> Pacific Biological Station
> 3190 Hammond Bay Road
> Nanaimo, BC V9T 6N7
> CANADA
>
> NEW email: Jon.Schnute at dfo-mpo.gc.ca 
>  (formerly schnutej at pac.dfo-mpo.gc.ca)
> ******************************************
>
> -----Original Message-----
> From: users-bounces at admb-project.org
> [mailto:users-bounces at admb-project.org] On Behalf Of dave fournier
> Sent: August-06-09 8:30 AM
> To: users at admb-project.org
> Subject: [ADMB Users] bug in file f1b2vc1
>
>
> Thanks Ben you found a fatal bug. Hard to believe that function had
> never been used before. In the file f1b2vc1.cpp
> the line
>
>       ADUNCONST(df1b2vector,x)
>
> should have been
>
>     ADUNCONST(dvector,x)
>
>
>
> df1b2vector operator + (const dvector& _x,const df1b2vector& _y)
>   {
>     ADUNCONST(df1b2vector,x)
>
>    ADUNCONST(df1b2vector,y)
>
>    check_shape(x,y,"operator +");
>
>
>    int mmin=x.indexmin();
>
>    int mmax=x.indexmax();
>
>    df1b2vector tmp;
>
>    tmp.noallocate(mmin,mmax);
>
>
>    for (int i=mmin;i<=mmax;i++)
>     {
>
>      tmp(i)=x(i)+y(i);
>     }
>
>    return tmp;
>
>  }
>
>
> Sorry for that.  The reason for these stupid errors is that every once
> and a while the  compiler police for the various c++ compilers make
> changes that break huge amount of old code so one has to fix it all at
> one go and these sorts of errors  creep in.
>
> Maybe someone can comment on how this can get fixed quickly.
>
> as for just hoping that prob will remain between 0 and 1 -- that is a
> mugs game. It will break at the most inopportune time. I modifed your
> code to put in the bounds. also you need to include the prior for the
> u's
>
> Finally WRT yuo commentabout initial values for the u's being
necessary.
> that is inaccurate. default values are provided for all parameters.
> However if you want to supply a *.pin ifle then it must include values
> for all parameters. I have already commented on the easiest way to
> produce such a *.pin file.
>
> Herre is your code as I have modified it.
>
>  //cout << "cvec calc\n";
>  cvec = sigma_c*(Z*u)+c;
>  a1vec = elem_prod(pow(size/d,g),exp(-size/d));
>  //cout << "prob calc\n";
>  prob = 1/(1/(elem_prod(cvec,a1vec))+h*initial);
>
>  dvariable ppen=0.0;
>  dvar_vector pprob=posfun(prob,0.01,ppen);
>  f+=ppen;
>
>  ppen=0.0;
>
>  dvar_vector pprob2=1.0-posfun(1.0-pprob,0.01,ppen);
>
>  f+=ppen;
>
>  f+=0.5*norm2(u);  // prior
>
>  f -= sum( log_comb(initial,killed)+
>           elem_prod(killed,log(pprob2))+
>           elem_prod(initial-killed,log(1-pprob2)));
>
>
>
>
>
>   

-- 
Visit the ADMB project http://admb-project.org/




More information about the Users mailing list