You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucy.apache.org by VOITPTRPTR <vo...@gmail.com> on 2010/06/19 07:00:56 UTC

Do you need help on Lucy?

Hi List,

How one can contribute  (I'm a C developer) to Lucy?

Regards
voidptrptr

Re: Do you need help on Lucy?

Posted by Marvin Humphrey <ma...@rectangular.com>.
On Sat, Jun 19, 2010 at 09:48:19PM +0200, VOITPTRPTR wrote:
> To be honest, I've no knowledge on how Lucene core is implemented.

Naivete can be helpful for some tasks, such as reviewing documentation and
APIs for clarity -- see the wiki page I put up earlier today at
<http://wiki.apache.org/lucy/BrainLog>.

> But I'm pretty confident when coding in C (portabilty, clarity, refactoring ...).
> More over I've strong background on algorithms and algorithms optimization.

Certainly those are valuable skills.  

Some parts of Lucy have been highly optimized, but there's a lot of room for
improvement and a lot of known inefficiencies.  Lucene has focused on
optimization much more than we have, so we get to study what they've done over
the last couple years and apply the lessons they've learned.

Up till now it's been more important to emphasize modularity and information
hiding so that the system we build can *withstand* optimization without
becoming an impenetrable rat's nest.

> Is it possible to ask questions about design choices of Lucy (how indexes
> are built, algorithms behind the scene...) in this mailing list as I'm
> missing this Information Retrieval skills?

There will be many opportunities for such conversations, particularly since a
lot of indexing classes are going to get submitted to JIRA over the next few
weeks.  When code gets submitted for inclusion is an ideal time to comment.

Personally, I enjoy giving long-winded answers as much as the next person, but
I've learned that I have to control my impulse to bloviate and invest my time
in ways that yield maximum return.  The more you contribute, the more you will
get back.

Marvin Humphrey


Re: Do you need help on Lucy?

Posted by VOITPTRPTR <vo...@gmail.com>.
Hi Marvin,

> We have a wiki page up that covers the mechanics of contributing:
>     http://wiki.apache.org/lucy/HowToContribute

Excellent. I'll checkout the code and start reading on monday!

> Most people choose what they want to work on based on what they need or what
> interests them.  Since you don't mention wanting to work on a particular
> problem, there are a some general C tasks we could use help on and that don't
> require a lot of prior knowledge about the code base; I'll describe one of
> those.

To be honest, I've no knowledge on how Lucene core is implemented.
But I'm pretty confident when coding in C (portabilty, clarity, refactoring ...).
More over I've strong background on algorithms and algorithms optimization.

> A lot of Lucy code was originally written for C89.  We have since changed our
> C dialect to "the overlap of C99 and C++".

> allowing us to use a number of idioms which result in cleaner, more readable code.  One of these is the
> declaration of loop variables within a "for" construct:
> 
>    Index: core/Lucy/Object/VArray.c
>    ===================================================================
>    --- core/Lucy/Object/VArray.c    (revision 956160)
>    +++ core/Lucy/Object/VArray.c    (working copy)
>    @@ -55,8 +55,7 @@
>     VA_dump(VArray *self)
>     {
>         VArray *dump = VA_new(self->size);
>    -    uint32_t i, max;
>    -    for (i = 0, max = self->size; i < max; i++) {
>    +    for (uint32_t i = 0, max = self->size; i < max; i++) {
>             Obj *elem = VA_Fetch(self, i);
>             if (elem) { VA_Store(dump, i, Obj_Dump(elem)); }
>         }
> 
> A good place to start would be that file, VArray.c.
> Thanks for inquiring,

OK, I see.

Is it possible to ask questions about design choices of Lucy (how indexes are built, algorithms
behind the scene...) in this mailing list as I'm missing this Information Retrieval skills?

Regards
----------------------
voidptrptr@gmail.com

Re: Do you need help on Lucy?

Posted by Marvin Humphrey <ma...@rectangular.com>.
On Sat, Jun 19, 2010 at 07:00:56AM +0200, VOITPTRPTR wrote:
> How one can contribute  (I'm a C developer) to Lucy?

We have a wiki page up that covers the mechanics of contributing:

    http://wiki.apache.org/lucy/HowToContribute

Most people choose what they want to work on based on what they need or what
interests them.  Since you don't mention wanting to work on a particular
problem, there are a some general C tasks we could use help on and that don't
require a lot of prior knowledge about the code base; I'll describe one of
those.

A lot of Lucy code was originally written for C89.  We have since changed our
C dialect to "the overlap of C99 and C++", allowing us to use a number of
idioms which result in cleaner, more readable code.  One of these is the
declaration of loop variables within a "for" construct:

    Index: core/Lucy/Object/VArray.c
    ===================================================================
    --- core/Lucy/Object/VArray.c    (revision 956160)
    +++ core/Lucy/Object/VArray.c    (working copy)
    @@ -55,8 +55,7 @@
     VA_dump(VArray *self)
     {
         VArray *dump = VA_new(self->size);
    -    uint32_t i, max;
    -    for (i = 0, max = self->size; i < max; i++) {
    +    for (uint32_t i = 0, max = self->size; i < max; i++) {
             Obj *elem = VA_Fetch(self, i);
             if (elem) { VA_Store(dump, i, Obj_Dump(elem)); }
         }

A good place to start would be that file, VArray.c.

Thanks for inquiring,

Marvin Humphrey