2012-05-10 GnuCash IRC logs

01:34:59 *** astro has quit IRC
01:44:30 *** ErKa has joined #gnucash
01:55:14 *** fell_ has joined #gnucash
01:55:14 *** gncbot sets mode: +o fell_
02:06:54 <strk> good morning
02:30:24 *** ErKa has quit IRC
03:00:10 *** Coke has joined #gnucash
03:00:18 <Coke> I guess good evening.
03:07:55 <Coke> I'm trying to build in gnucash-svn/build, running configure says I dont have ../install-sh, even tho it's there.
03:08:02 <Coke> This autoconf setup seems pretty broken.
03:08:48 <Coke> ls -l ../install-sh
03:08:54 <Coke> ../install-sh -> /usr/share/automake-1.11/install-sh
03:08:58 <Coke> guess what, it IS there.
03:09:07 <Coke> configure: error: cannot find install-sh, install.sh, or shtool in ".." "../.." "../../.."
03:10:01 <Coke> I raise you one warning and call that bullshit. Show the cards, lousy autoconf
03:11:52 <Coke> Man, I hate GNU autotools so much. It's actually easier to just maintain one Makefile per target platform.
03:14:52 *** Coke has quit IRC
03:16:06 <fell_> Coke: did you run autogen?
03:16:11 <strk> he's gone
04:13:11 *** rhizmoe_ has joined #gnucash
04:13:11 *** rhizmoe has quit IRC
04:43:20 *** Coke has joined #gnucash
04:43:36 <Coke> So anyone know why the configure script for gnucash upstream svn can't find my install-sh which is absolutely there?
04:44:26 <strk> ./autogen.sh
04:44:43 <Coke> strk: already did it, it's there
04:45:01 <Coke> install-sh -> /usr/share/automake-1.11/install-sh
04:45:20 <Coke> if I had not already run autogen.sh I would not have had a configure to begin with
04:45:39 <Coke> weird.
04:45:46 <Coke> I have to run autogen.sh TWICE?!
04:46:24 <strk> no, must be something else
04:47:15 <Coke> gnu automake and autoconf
04:47:29 <Coke> most overengineered convoluted build system ever invented in the universe.
04:47:57 <Coke> stephen hawking couldn't figure that shit out if he had the rest of his life to do it
04:49:01 <Coke> Ok, I'm getting deprecation warnings that end in an error due to my configure flags
04:49:04 <Coke> Should I just ignore those?
04:50:24 <Coke> qofutil.c:291:9: error: 'g_cache_new' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gcache.h:47) [-Werror=deprecated-declarations]
04:50:33 <strk> you should ignore this troll, and see if you can get to understand what's going on
04:53:08 <Coke> strk: I think I'm using a glib that's too new
04:54:01 <Coke> I'm at 2.32.2-2
04:55:14 <Coke> From the glib manual: GCache has been marked as deprecated, since this API is rarely used and not very actively maintained.
04:55:55 <Coke> since 2.32, use ghashtable instead.
04:56:25 <strk> sorry, I'm still cloning the repo
04:56:28 <strk> (not a dev)
04:56:42 <Coke> I'll assess the limit of gcache usage
05:21:01 *** Arafangion has joined #gnucash
07:05:41 <warlord> Coke: what is your exact configure line?
07:06:29 <warlord> ...or did you get past that?
07:06:31 <warlord> (good morning)
07:07:13 * strk building trunk this morning
07:30:01 *** sorush20 has joined #gnucash
07:52:32 <Coke> warlord: the install then said it didnt have support for non-C locale, which is bs also. i dunno
07:52:51 <Coke> it's too much of a hazzle to make gnucash from svn work in order for me to actually have time over to do any work on it.
07:52:58 *** Coke has quit IRC
07:53:01 *** Jimraehl has left #gnucash
07:53:12 <warlord> Coke: that implies that your locale variable isn't supported. On Debian and Ubuntu, for example, you need to install locales.
07:53:52 <warlord> It's not BS. It's completely accurate. It's a system config issue, not a gnucash issue.
07:54:14 <warlord> It might not be a *helpful* message, but it means that the locale() system call is failing.
08:23:38 *** benoitg has joined #gnucash
08:31:22 *** sorush20 has quit IRC
09:08:51 *** nomeata has joined #gnucash
09:16:57 *** mcepl has joined #gnucash
09:18:48 <mcepl> if anybody would be able to comment on http://lwn.net/SubscriberLink/496158/ff6f942130f56169/ ... (please, don't share the link further).
09:27:41 <Arafangion> I'm utterly clueless when it comes to accounting, but the tone of the article and teh comments seem to suggest that the focus is more about how the accounting package fits in with the relevant taxation rules of the country they're in, which can be quite... interesting.
09:34:23 <mcepl> yes, he is a bit short on what's missing from GnuCash/KMyMoney, but it would be probably better if somebody who actually knows what he is talking about discussed it with him.
09:37:28 <Arafangion> Well, consider that GNUCash in itself is almost of no help when it comes to calculating my tax.
09:39:32 <mcepl> I don't think it's the tax ... nobody expects FLOSS unsupported software to be any good ... you need to have a professional maintenance of compliance with the current tax code in the given country.
09:45:18 <Arafangion> That's... Highly debatable.
09:48:41 *** benoitg has quit IRC
09:52:00 <warlord> GnuCash certainly helped me with my taxes because I could just plug in totals from gnucash into the appropriate sections in the tax forms.Sometimes I did need to figure out what to put where, or when to add what.
09:52:20 *** benoitg has joined #gnucash
09:56:45 <mcepl> sure, but what would I prefer (and what in some respects GnuCash offers) is export to some tax preparation software.
09:57:23 <mcepl> (or API for somebody to maintain particular plugin for particular country ... note, there are countries with tax code outside of your own country).
09:57:52 <warlord> It can.. Currently only US and DE supported.
09:57:56 <warlord> (export to TXF)
09:58:14 <mcepl> I know
09:58:39 <mcepl> just not sure how useful it would be in the small business context, but yes
09:59:29 <warlord> Small biz?? not at all.
09:59:37 <warlord> It's all for personal tax, not biz tax.
09:59:43 <Arafangion> warlord: Well, here, taxes are already taken out (for personal salary), it's at the end of the year that you have to do a reconciliation, and I usually use an accountant for that.
09:59:46 <warlord> (remember, gnucash started as a personal accounting package)
10:00:17 <warlord> Arafangion: I saved myself nearly $2000 by doing taxes myself this year.
10:00:46 <Arafangion> warlord: My accountant doesn't charge nearly that much, and their expenses are tax deductable.
10:01:56 <Arafangion> warlord: All the different incomes, investments, and everything are taxed at different rates, with different means testing, some incomes can be already taxed, but at a different rate so you pay or get taxation depending on the difference in taxation rate, blah blah. It's confusing for me!
10:02:46 <mcepl> Arafangion: that's exactly what I am talking ... try to imagine, that this whole mess would be maintained for more countries in a centralized fashion by volunteers.
10:02:59 <Arafangion> mcepl: Ha.
10:03:09 <Arafangion> mcepl: You mean, *add* more taxation rules?
10:04:09 <mcepl> no to maintain all those for more countries
10:04:44 <warlord> I can't imagine anyone doing that for free.
10:05:04 <warlord> I can see someone making an extension to gnucash to support locale plugins and then selling those plugins.
10:05:11 <warlord> but I'm not sure that would be legal.
10:05:15 <warlord> It might violate the GPL
10:05:48 <Arafangion> Indeed. You would actually need to find people who are themselves accuontants and have the skills to do so, and the insurance in case they're sued.
10:06:02 <strk> selling would be legal, as long as the sold software can be further distributed (possibly modified) by the recipient
10:06:44 <Arafangion> strk: Would that be legal, from an accounting/taxation point of vie?
10:06:46 <Arafangion> *view
10:06:57 <Arafangion> I think not.
10:07:08 <strk> I'm not a lawyer
10:08:19 <Arafangion> strk: To even give *advice*, in my country, you have to be an actual accountant. What is being proposed there seems to be far more than mere advice.
10:08:27 <mcepl> warlord: ??? either you can make that part LGPL or make an explicit exception that it is allowed to bind to that particular API from a proprietary plugins.
10:10:04 <Arafangion> mcepl: To change the license of GNUcash?
10:11:52 <mcepl> something like that ... or there are other options. It would be too long and I need to work now.
10:12:45 <strk> I was only talking about software licences, not tax laws
10:12:47 *** ErKa has joined #gnucash
10:12:58 <Arafangion> mcepl: Do you know how much work is involved in changing the license of an established opensource product?
10:14:57 <mcepl> yes, I do
10:15:23 <mcepl> anyway, you're right ... it would be probably better just to make an opportunity for cutomizable export
10:15:39 <Arafangion> mcepl: You've have to ask every author and contributor to GNUcash, then do an audit and remove or rewrite every line of code that you no-longer have permission for.
10:16:49 *** benoitg has quit IRC
10:16:59 *** benoitg has joined #gnucash
10:17:06 <Arafangion> Back in 2003, there were credits for 139 authors.
10:21:22 * Arafangion gets to bed.
10:24:22 <warlord> We had a hard enough time getting support for GPL2 -> GPL2+
10:28:58 *** benoitg has quit IRC
10:29:31 *** benoitg has joined #gnucash
10:30:44 *** Arafangion has quit IRC
10:32:03 *** warlord is now known as warlord-afk
10:55:59 *** markjenkinsparit has joined #gnucash
11:10:20 *** alex001 has joined #gnucash
11:11:23 <alex001> Hi. I have a client who has a province in each client. By mistake, I created an invoice for the wrong one adress. Is it just me or is it impossible to change the customer field in an invoice?
11:12:27 *** letic has joined #gnucash
11:12:44 <letic> hey guys
11:16:15 <letic> I have an issue with the python-bindings
11:16:48 <letic> I want to install them on one of our servers for automatic invoice generation
11:16:59 <letic> we made a script that works no problem locally
11:17:29 <letic> but I cannot find a way to compile 2.4.10 with the GUI disable and the python bindings enable
11:17:38 <letic> I found this bug : https://bugzilla.gnome.org/show_bug.cgi?id=671737
11:17:44 <letic> which code is in trunk
11:18:08 <letic> it works this way with ./configure --enable-python --enable-dbi --disable-gui --disable-error-on-warning
11:18:42 <letic> our scripts create invoices ok but when trying to generate the PDF I get errors that I don't know how to solve
11:19:15 <letic> Traceback (most recent call last):
11:19:15 <letic> File "invoice.py", line 205, in <module>
11:19:15 <letic> qty = GncNumeric(instance=entry.GetQuantity()).to_double()
11:19:15 <letic> File "/usr/local/lib/python2.7/dist-packages/gnucash/function_class.py", line 91, in method_function
11:19:15 <letic> *process_list_convert_to_instance(meth_func_args) )
11:19:16 <letic> File "/usr/local/lib/python2.7/dist-packages/gnucash/gnucash_core_c.py", line 4074, in gncEntryGetQuantity
11:19:18 <letic> return _gnucash_core_c.gncEntryGetQuantity(*args)
11:19:20 <letic> TypeError: in method 'gncEntryGetQuantity', argument 1 of type 'GncEntry const *'
11:19:47 <letic> it works with the python-bindings from debian sid but with the version from trunk it fails with the above
11:20:25 <letic> for reference in Debian Sid gnucash_core_c.py looks like this :
11:20:27 <letic> def gncEntryGetQuantity(*args):
11:20:27 <letic> """gncEntryGetQuantity(GncEntry entry) -> gnc_numeric"""
11:20:27 <letic> return _gnucash_core_c.gncEntryGetQuantity(*args)
11:20:46 <letic> the version from trunk looks like this :
11:20:50 <letic> def gncEntryGetQuantity(*args):
11:20:50 <letic> """gncEntryGetQuantity(GncEntry const * entry) -> _gnc_numeric"""
11:20:50 <letic> return _gnucash_core_c.gncEntryGetQuantity(*args)
11:21:12 <letic> I know there is no const in python so I don't know how to solve this
11:21:23 <letic> the line from the script :
11:21:25 <letic> qty = GncNumeric(instance=entry.GetQuantity()).to_double()
11:21:29 <letic> any ideas ?
11:26:40 *** alex001 has quit IRC
11:38:38 <strk> warlord-afk: about "gnucash is not multiuser" we talked about yesterday... limiting database connections to 1 doesn't really solve the problem, if editing doesn't _require_ a database connection
11:39:15 <strk> maybe I should just require contributors to use a revision control system for the single XML file
11:39:53 <strk> should be effective. anyone has experience with that ?
11:40:50 *** nomeata has quit IRC
11:43:15 <strk> it looks like 2.4.2 has a patch explicitly targetting this
11:43:38 <strk> as per Bug #638225
11:55:53 *** astro has joined #gnucash
12:17:28 *** benoitg has quit IRC
12:17:54 *** letic is now known as letic_away
13:06:25 <strk> wonders, I see a table gclock... maybe I'm wrong about concurrent accesses :)
13:19:16 <strk> where can I read about how to use sql backend ?
13:25:39 *** warlord-afk is now known as warlord
13:27:14 <warlord> strk: 2.4.x does have DB locks to attempt to prevent multi-user access.
13:33:57 <warlord> letic_away: the APIs might have changed between 2.4 and trunk, too
13:38:04 <strk> warlord: but, does it prevent race conditions at all ?
13:38:31 <strk> A opens gcash, B opens gcash, A edits and saves, B edits and saves --> A changes lost ?
13:38:48 <strk> or is "B opens gcash" forbidden by lock ?
13:39:13 <warlord> the latter.
13:39:26 <warlord> when B opens gnucash it will pop up a warning saying that it's already in use.
13:39:29 <strk> it there support from the GUI to break locks or so ?
13:39:40 <warlord> Yes. "Open Anyways"
13:39:58 <strk> will you get a warning again on "save" ?
13:40:04 <strk> or will you be forbidden to save ?
13:40:53 <warlord> no, if you click "open anyways" but there really is someone else back there you could destroy data/write over other data..
13:41:22 <warlord> That's your one shot of gnucash trying to stop you. If you aim that gun at your own feet and pull the trigger you will shoot yourself in the foot.
13:42:41 <strk> will "Open Anyways" replace the lock with your own ?
13:43:26 <warlord> I believe so, but the lock is only checked at startup (well, File open) time.
13:43:34 * strk would think a new check would be worth it at "save" time
13:43:48 <strk> so that "A" gets notified about the fact that "B" forced the lock...
13:43:49 <warlord> Why?
13:44:07 <warlord> Only an idiot would click "open anyways" without verifying that it's safe.
13:44:22 <warlord> and frankly I dont mind if an idiot hurts themselves.. Evolution in Action. :-D
13:44:25 <warlord> ;-)
13:45:03 <strk> (1) A opens (2) B opens, gets notified and forces (3) B saves (4) A saves knowing nothing [ok, idiot B deserves his loss]
13:45:29 <strk> (1) A opens (2) B opens, gets notified and forces (3) A saves (4) B saves breaking A [kind of unfair?]
13:46:07 <warlord> when noticed later, A yells at B to always check before forcing!
13:46:20 <warlord> (and maybe gives B a good beating for good measure)
13:46:39 <strk> I'm not sure I'd be able to notice a change in a big book
13:46:51 <strk> is "last saved by XXY" available somehow ?
13:46:54 <warlord> No
13:46:56 <strk> or some form of changelog ?
13:46:59 <warlord> Gnucash is single user
13:47:00 <strk> eh
13:47:33 <strk> how hard would it be to integrate revision control for files in gnucash. ie: the same way users above got Warnings
13:47:42 <strk> would it be a, for example, "git backend" ?
13:48:05 <warlord> I have no idea.
13:48:19 <warlord> git doesn't have locks
13:49:17 <strk> no, but you get notified if you try to push your changes w/out merging other's changes first
13:50:07 <warlord> Basically, the issue you are trying to solve is called "cache coherency"
13:50:08 <strk> I think a lock should act like a "pass" for saving
13:50:16 <strk> you obtain the pass, and you need it for saving
13:50:31 <warlord> Again, in the general case there is no need.
13:50:32 <strk> B, above, would need to invalidate A's pass, in order to save (as it'll need his own pass)
13:50:36 <warlord> Only in your contrived example.
13:50:52 <warlord> True, but you're talking multi-user, and gnucahs doesn't support multiple users.
13:51:05 <strk> I understood that
13:51:56 <strk> but it looks like there's all the needed support to implement the above thing, if backend can fire warnings on "open" could as well do something on "save"
13:52:28 <warlord> Patches always welcome.
13:52:40 <strk> I know :)
13:54:22 <strk> trunk doesn't build here, but 3.4.10 does
13:54:51 <strk> dependency change, expected ?
13:55:02 <warlord> What OS/Distro?
13:55:10 <strk> Requested 'glib-2.0 >= 2.28' but version of GLib is 2.24.1
13:55:17 <strk> Ubuntu 10.04 LTS (lucid)
13:57:31 <warlord> Ah, yeah, you need a newer version of glib.
13:58:05 <warlord> >= 2.28. You have 2.24
13:58:11 <strk> another thing about dbi... is the connection kept alive for the whole session ?
13:58:24 <strk> as I'm thinking A or B (or C) may want to just _read_ the data (for analyzing etc.)
13:58:25 <warlord> I'm pretty sure it is
13:58:45 <warlord> gnucash doesn't quite have a readonly mode (although someone is working on it)
13:58:46 <strk> can gnucash be confused by others writing to the backend or is all data transferred at startup ?
13:59:15 <Mer|in> both i think
13:59:37 <Mer|in> depending on the backend
13:59:40 <strk> both ? how can it be confused if it saves everything offline ?
13:59:46 <strk> ah
14:00:03 <strk> well I guess "readers" could always open, save as xml, close
14:00:10 <strk> then analyze the xml (snapshot in time)
14:00:22 <Mer|in> if i understand right, the database backend reads all the data into memory, and writes are immediate from that point on
14:00:58 <strk> ouch
14:01:18 <strk> in XML you don't write unless you "save", right ?
14:01:24 <Mer|in> yup
14:01:52 <Mer|in> that's one of the things i prefer about the RDBMS backends
14:05:00 <warlord> depends on your definition of "confused". Gnucash is single user, so it assumes it has full control over the data. Moreover, the database is *just* a file store to gnucash, so if you do not use the gnucash APIs to write into it then you could write bogus data
14:05:15 <warlord> Gnucash caches all data at startup (reads the full database)
14:05:36 <warlord> Mer|in: you are correct.
14:05:40 <warlord> strk: correct.
14:06:45 <Mer|in> warlord: so i have a db question for you
14:07:02 <warlord> okay...
14:07:07 <warlord> I may or may not be able to answer.
14:07:41 <Mer|in> warlord: do you think that it's possible to do a reliable double-entry system with any of these new-fangled KVP backends?
14:08:31 <warlord> what do you mean "new-fangled KVP backends"?
14:08:43 <warlord> (give me an example?)
14:08:46 <Mer|in> for example MongoDB
14:08:48 <Mer|in> or CouchDB
14:09:38 <Mer|in> those are the popular ones that i can think of
14:10:01 <warlord> Do they have ACID transactions?
14:10:23 <Mer|in> not really, no
14:10:49 <Mer|in> they shift all of the relational integrity / constraint management to the controller
14:11:08 <Mer|in> and then herald the performance boost
14:11:19 <warlord> Hmm. I honestly haven't looked into those DBs much. I think you would need some way to make sure two threads don't overwrite each other.
14:11:38 <strk> ACID doesn't prevent that
14:11:40 <Mer|in> yeah they rely on GUIDs for that
14:12:01 <kpreid> (I would hope that a double-entry bookkeeping tool does not need thread for its application logic)
14:12:13 <warlord> Oh, relational integrity and constraint management is fine for the controller. It's more a "I need to make sure these multiple rows get added to these multiple tables all-at-once or none-at-all.
14:12:17 <warlord> "
14:12:53 <Mer|in> true
14:13:47 <Mer|in> maybe i've been doing too much oracle work - i have trouble trusting app devs with data integrity\
14:13:50 <warlord> That's what I mean by ACID transactions.
14:14:19 <Mer|in> for pretection over concurrency problems
14:14:22 <Mer|in> ?
14:14:26 <Mer|in> protection
14:15:11 *** robinsod has left #gnucash
14:15:39 <warlord> Effecitvely. Again, to make sure you can perform multiple inserts or updates together.
14:18:24 <Mer|in> interesting
14:19:42 <warlord> If the db provides that, then sure, you could. If, however, the DB doesnt provide that, then no
14:20:13 <Mer|in> http://stackoverflow.com/questions/7149890/what-does-mongodb-not-being-acid-compliant-really-mean
14:20:17 <Mer|in> for the case of mongo
14:21:05 <Mer|in> but from what I understand, most of the new KVP-based databases follow this logic
14:21:28 <Mer|in> I'm still trying to understand the justification for writing apps agaisnt them, which is why i asked
14:22:03 <warlord> No clue..
14:22:36 <Mer|in> yea me either
14:23:04 <Mer|in> i mean i can understand if you're in read-only environment where you only need to query data
14:23:10 <Mer|in> a weather app, for instnace
14:23:46 <Mer|in> but for an inventory management system, I keep getting alarms in my head when i try to figure out what that would look like
14:26:39 <warlord> The first sentence in the first answer in that link you sent basically says to me that no, you couldn't implement a true double-entry accounting system.
14:27:01 <warlord> It would work if you're dealing with single-table resources.
14:27:19 <warlord> it doesn't work if you have mutiple-table resources.
14:27:48 *** fell__ has joined #gnucash
14:27:48 *** gncbot sets mode: +o fell__
14:35:46 *** fell_ has quit IRC
14:37:27 <Mer|in> yea from what i can tell they have no concept of tables, you basically do all of that with namespacing
14:39:33 <Mer|in> so you store your value in a key named something like "application.accounts.578362879.institutionName"
14:45:59 <warlord> No clue..
14:46:08 <warlord> I try to write code well abstracted away from the database.
15:17:54 <strk> PERR( "Error setting 'dbname' option\n" );
15:18:02 <strk> I don't see the messages on the console stdout/stderr, what do I have to enable ?
15:21:26 <strk> trying to debug an issue with the postgresql backend
15:23:44 <warlord> Look in /tmp/gnucash.trace
15:24:19 <strk> * 21:22:47 CRIT <gnc.backend.dbi> [pgsql_error_fn()] DBI error: FATAL: no PostgreSQL user name specified in startup packet
15:24:25 <strk> what a place to hide messages :P
15:24:43 <strk> I'll see if I can get to have it shown in the ugi
15:24:52 <strk> note: later on: * 21:22:47 CRIT <gnc.backend.dbi> gnc_dbi_set_error: assertion `dbi_conn != NULL' failed
15:26:39 <strk> does the backend have access to gui at all ?
15:31:30 <warlord> no
15:34:46 <strk> it looks like dbi isn't letting me using unix socket for connecting to the db
15:43:39 *** fell has joined #gnucash
15:43:39 *** gncbot sets mode: +o fell
15:44:27 *** zxq9 has quit IRC
15:48:50 *** fell__ has quit IRC
17:25:11 *** markjenkinsparit has quit IRC
17:25:29 *** markjenkinsparit has joined #gnucash
18:48:39 *** Silly- has joined #gnucash
18:54:26 *** Silly has quit IRC
18:54:27 *** Silly- is now known as Silly
19:06:40 *** benoitg has joined #gnucash
19:12:16 *** benoitg has quit IRC
19:49:32 *** warlord is now known as warlord-afk
20:29:34 *** mcepl has left #gnucash
20:31:02 *** mcepl has joined #gnucash
21:20:11 *** ErKa has quit IRC
22:02:00 *** mcepl has left #gnucash
22:02:29 *** mcepl has joined #gnucash
22:12:16 *** mcepl has left #gnucash
22:15:09 *** mcepl has joined #gnucash