Starting to help develop code introduction

Alex Kempster alkempster.cu at gmail.com
Thu Nov 7 12:55:10 EST 2013


Thank you John Ralls,

That was very informative. I now have the git version downloaded and
compiling successfully (Horah!).

I have been getting used to the existing source code over the past hour or
so and realised there are a few cases were magic numbers are used:

gint hours = -bias / 60; // 60 minutes per hour
gint minutes = (bias < 0 ? -bias : bias) % 60;

(gnc-date.c)

Would it be beneficial to replace the numbers with more meaningful
definitions such as:

#define MINUTES_PER_HOUR 60

gint hours = -bias / MINUTES_PER_HOUR;
gint minutes = (bias < 0 ? -bias : bias) % MINUTES_PER_HOUR;

The definition would, in this case be stored in gnc-date.h

I think it could improve readability as well as help me to get more
familiar with the code base!

Any thoughts welcome

Regards,
Alex Kempster



On 7 November 2013 15:05, John Ralls <jralls at ceridwen.fremont.ca.us> wrote:

>
> On Nov 7, 2013, at 5:42 AM, Alex Kempster <alkempster.cu at gmail.com> wrote:
>
> > I would like to help develop source code for this project. From my
> research
> > I understand that GnuCash is based on C and GTK+. I know that the code
> can
> > be accessed at:
> >
> > http://svn.gnucash.org/repo/gnucash/trunk
> >
> > I looked through the FAQ but was unable to find a route in to helping
> > develop for this project.
> > Can anybody provide information as to a good starting point such as
> > code tidying or minor
> >
> > patches and modifications? I am a competent C programmer and I have
> > dabbled a little bit
> > on GTK, SDL and OpenGL. I also have a few years experience working on
> > parallelization of
> > programs using OpenMP. I realise that GnuCash only runs on a single
> > processor core so
> >
> > improving the performance of calculations such as large for loops is
> > something that I feel
> >
> > could enhance the project. Can I add support for using multiple
> > processor cores using OpenMP
> >
> > and if so, where would be a good place for me to start? Finally, I
> > can't find any information on
> >
> > setting up development under linux, is there a guide for this or
> > general tool-suite that is
> >
> > commonly used?
> >
> > Thank you for your time!
>
> Welcome!
>
> The usual way for people to start getting involved with any open source
> project, Gnucash
> included, is to work on bugs. We have an extensive and diverse collection
> on Gnome's Bugzilla at https://bugzilla.gnome.org/query.cgi. Select
> Gnucash from the project list and pick a subsystem to narrow the list a
> bit, then click on "search".
>
> Before you start coding, you should familiarize yourself with our
> development environment, process, coding standards, and so on. Please read
> http://wiki.gnucash.org/wiki/Development and
> http://wiki.gnucash.org/wiki/Development_Process and the linked pages.
>
> Some future plans -- modulated by our significant shortage of programmer
> time -- can be found at http://wiki.gnucash.org/wiki/Roadmap.
>
> We are now in the final couple of months of releasing our next minor
> version, 2.6, so any significant changes will have to wait for that to
> stabilize and branch, which we usually do about 3 months and bug-fix
> releases after the initial release. That doesn't mean you can't start on
> anything major until then, just that it has to live on a branch until then.
>
> You found our subversion repository, but with the release of 2.6 we will
> be closing that and completing the transition to git, which the core
> developers are already using. You can clone the repository from
> https://github.com/Gnucash/gnucash.git.
>
> As for MP, we need to get to multi-user access to the database backend
> first. This will unfortunately require a major rewrite, for which we're
> planning to use C++. Thread safety should certainly be a design
> consideration in that new implementation; the current one is stuffed with
> statics and utterly thread unsafe.
>
> Regards,
> John Ralls
>
>


-- 
Kind Regards,

Alex Kempster

www.computingunlocked.com


More information about the gnucash-devel mailing list