2019-12-10 GnuCash IRC logs

00:13:38 <CDB-Man> [2019.12.09 09:23:05] <chris> CDB-Man: the receivalbe aging bug is more tricky and I'll need to research exactly why aging.scm gets a different aging-list. Thanks for report. <-- excellent, glad to have helped. cheers
00:58:42 *** Mechtilde has joined #gnucash
01:19:49 *** omnireq_ has joined #gnucash
01:21:01 *** omnireq has quit IRC
01:54:41 *** pohly1 has joined #gnucash
01:54:57 *** Mechtilde has quit IRC
01:56:27 *** sbluhm has joined #gnucash
01:56:27 *** ChanServ sets mode: +v sbluhm
02:19:37 *** fell has joined #gnucash
02:19:37 *** ChanServ sets mode: +o fell
03:21:51 *** gjanssens has joined #gnucash
03:21:51 *** gncbot sets mode: +o gjanssens
03:21:51 *** ChanServ sets mode: +o gjanssens
03:24:54 *** gjanssens has quit IRC
04:29:13 *** Mechtilde has joined #gnucash
04:57:49 *** Mechtilde has quit IRC
05:18:07 *** bertbob has quit IRC
05:19:01 *** sbluhm has quit IRC
05:22:03 *** sbluhm has joined #gnucash
05:22:03 *** ChanServ sets mode: +v sbluhm
05:29:23 * chris considering reverting changes from bug 366934
05:29:29 * chris and doing it better
05:33:46 *** gjanssens has joined #gnucash
05:33:46 *** ChanServ sets mode: +o gjanssens
05:34:02 <gjanssens> .
05:35:14 *** bertbob has joined #gnucash
05:35:14 *** ChanServ sets mode: +v bertbob
05:42:53 * chris and doing it better
05:42:58 <chris> oops
05:53:48 *** Jimraehl1 has joined #gnucash
05:56:27 *** Jimraehl1 has quit IRC
06:22:03 *** sbluhm has quit IRC
06:24:14 *** Mechtilde has joined #gnucash
06:28:13 *** User__ has joined #gnucash
06:38:43 *** sbluhm has joined #gnucash
06:43:48 *** Mechtilde has quit IRC
07:04:20 *** Mechtilde has joined #gnucash
07:07:33 *** Mechtilde has quit IRC
07:18:24 *** Mechtilde has joined #gnucash
07:46:04 *** Agfarmer18 has joined #gnucash
08:09:15 *** polydeuces has joined #gnucash
08:11:40 <gjanssens> chris: https://github.com/gjanssens/gnucash/tree/SplitListNode has a proof of concept of how to access the GList record directly
08:12:12 <gjanssens> This is only the swig part. I'll leave it to you to experiment further on the guile side.
08:12:42 <gjanssens> Core difference with the SplitList wrapper is this:
08:13:00 <gjanssens> SplitList (a GList) is converted by swig into an scm list
08:13:13 <gjanssens> This requires copying data around as you know
08:13:44 <gjanssens> SplitListNode on the other hand gives you the raw GList struct to the first split.
08:13:54 *** Unhammer has quit IRC
08:14:03 <gjanssens> Traversing the list can be done using SplitListNode-next-get
08:14:29 <gjanssens> Accessing the splits in the list is done by calling SplitListNode-split-get on any of the nodes in the list.
08:15:05 <gjanssens> That should get you very close to the car/cdr way of traversing a list you are used to in scheme.
08:15:32 <gjanssens> Let me know if it works and if you see performance improvements using this technique.
08:21:50 *** User__ has quit IRC
08:25:05 <chris> thanks, already compiling :)
08:32:36 *** Unhammer has joined #gnucash
08:41:30 *** oozer has joined #gnucash
08:52:15 *** Agfarmer18 has quit IRC
08:52:28 *** Agfarmer18 has joined #gnucash
08:53:53 *** Agfarmer18 has quit IRC
08:58:08 *** jervin has joined #gnucash
08:59:34 <chris> debugged enough tests pass :) now instrumenting... I don't know if my datafile is large enough
09:02:01 <chris> the simple elegance is a beauty ;)
09:04:02 <chris> I suspect using setters will not cause any harm; modifying the xaccAccountGetSplitList output should do nothing
09:09:44 *** jervin has quit IRC
09:19:52 <chris> gjanssens: we need a g_free somewhere for the SplitListNode dont we?
09:25:44 *** Agfarmer18 has joined #gnucash
09:35:19 *** Agfarmer18 has quit IRC
09:35:44 <gjanssens> chris: the output of the xaccAccountGetSplitList wrapper is a newly generated list
09:36:05 <gjanssens> The output of gnc-account-get-splits points directly at the account's internal splitlist
09:36:20 <gjanssens> modifying that *will* affect the account
09:36:51 <gjanssens> Re the g_free, we probably don't need it but I'll double-check later
09:41:58 *** oozer has quit IRC
09:53:34 <warlord> gjanssens, FYI, flatpak build failed last night
10:20:38 *** Mechtilde has quit IRC
10:24:13 *** Mechtilde has joined #gnucash
10:26:55 *** kael has joined #gnucash
10:26:55 *** ChanServ sets mode: +v kael
10:28:01 *** omnireq_ has quit IRC
10:37:03 *** monkeyjuice has joined #gnucash
10:39:00 *** monkeyjuice has quit IRC
10:53:38 *** polydeuces has quit IRC
11:06:18 <chris> g_free() isn't needed... it indeed causes segfault
11:14:45 *** omnireq has joined #gnucash
11:14:45 *** ChanServ sets mode: +v omnireq
11:24:35 *** guak has joined #gnucash
11:33:59 *** Mechtilde has quit IRC
11:39:04 *** Gerd has joined #gnucash
12:05:27 *** omnireq_ has joined #gnucash
12:06:40 *** omnireq has quit IRC
12:10:59 *** omnireq__ has joined #gnucash
12:12:10 *** omnireq_ has quit IRC
12:17:53 <gjanssens> chris: I ran a test with a client's book (one I believe to be "huge")
12:18:15 <gjanssens> I see no notable difference in opening the Asset chart before or after applying your pr
12:18:39 <gjanssens> Loading the report takes slightly less than 2 seconds in both cases...
12:21:37 <gjanssens> https://pastebin.com/PR20ek7k This is what was logged
12:22:13 <gjanssens> Not sure how to interpret that though
12:25:54 *** Gerd has quit IRC
12:28:08 *** Gerd has joined #gnucash
12:30:42 <gjanssens> For reference - the Accounts Receivable account in this file has over 18.000 splits.
12:39:28 *** sbluhm has quit IRC
12:46:03 *** sbluhm has joined #gnucash
12:46:03 *** ChanServ sets mode: +v sbluhm
12:46:41 *** Mechtilde has joined #gnucash
13:01:02 *** sbluhm has quit IRC
13:05:32 *** GabrieleV has joined #gnucash
13:13:35 *** storyjesse has quit IRC
13:15:34 *** calvinct has joined #gnucash
13:36:14 *** User__ has joined #gnucash
13:41:05 *** sbluhm has joined #gnucash
13:41:05 *** ChanServ sets mode: +v sbluhm
13:42:17 *** User__ has quit IRC
13:45:37 *** oozer has joined #gnucash
13:50:38 *** guak has quit IRC
13:52:15 *** guak has joined #gnucash
13:56:27 *** omnireq_ has joined #gnucash
13:57:40 *** omnireq__ has quit IRC
14:06:27 *** frakturfreak has joined #gnucash
14:06:27 *** ChanServ sets mode: +v frakturfreak
14:07:37 *** calvinct has quit IRC
14:08:16 *** FH_thecat has quit IRC
14:15:29 *** Cuare has joined #gnucash
14:15:29 *** ChanServ sets mode: +v Cuare
14:31:33 *** calvinct has joined #gnucash
14:44:59 *** omnireq__ has joined #gnucash
14:46:10 *** omnireq_ has quit IRC
14:47:57 *** omnireq_ has joined #gnucash
14:49:10 *** omnireq__ has quit IRC
14:55:14 *** kael has quit IRC
14:55:38 *** fabior has joined #gnucash
15:02:01 *** kael has joined #gnucash
15:02:01 *** ChanServ sets mode: +v kael
15:23:37 *** jralls has quit IRC
15:24:21 *** jralls has joined #gnucash
15:25:36 *** kael has quit IRC
15:28:05 *** oozer has quit IRC
15:30:33 *** oozer has joined #gnucash
15:39:46 *** omnireq_ has quit IRC
15:39:55 *** omnireq has joined #gnucash
15:39:55 *** ChanServ sets mode: +v omnireq
15:45:21 *** calvinct1 has joined #gnucash
15:46:24 *** jralls has quit IRC
15:46:33 *** calvinct has quit IRC
15:46:33 *** calvinct1 is now known as calvinct
15:47:29 *** omnireq_ has joined #gnucash
15:48:40 *** omnireq has quit IRC
15:48:46 *** fabior has quit IRC
15:50:01 *** Han has joined #gnucash
15:50:23 *** Han has joined #gnucash
15:50:41 *** Han has joined #gnucash
15:51:39 *** jralls has joined #gnucash
15:53:14 *** calvinct has quit IRC
15:54:34 *** calvinct has joined #gnucash
15:57:35 *** sbluhm has quit IRC
16:03:36 <gjanssens> jralls: I'm in the process of converting fin.scm to C(++)
16:04:27 <gjanssens> The last functions in that file refer to a function gnc:amort_balance, however that function doesn't seem to be defined anywhere.
16:05:01 *** Han has quit IRC
16:05:30 <gjanssens> Looking at the git history this appears to be introduced in https://github.com/Gnucash/gnucash/commit/483f9a4c8331f82e8f13f51a52b5d51339d13557
16:05:47 <gjanssens> Which you merged somewhere in April this year.
16:07:52 <gjanssens> It comes from PR#490, https://github.com/Gnucash/gnucash/pull/490 but that doesn't give much details.
16:09:58 <gjanssens> Any idea what that function is supposed to be ?
16:10:29 <gjanssens> @op jralls
16:10:29 <gncbot> gjanssens: Error: You don't have the #gnucash,op capability. If you think that you should have this capability, be sure that you are identified before trying again. The 'whoami' command can tell you if you're identified.
16:10:34 *** gjanssens sets mode: +o jralls
16:10:50 *** gjanssens sets mode: +o warlord
16:12:29 *** Mechtilde has quit IRC
16:25:38 *** jralls has quit IRC
16:30:37 *** jralls has joined #gnucash
16:37:02 *** jralls has quit IRC
16:47:52 *** jralls has joined #gnucash
16:49:09 *** pohly1 has quit IRC
16:49:45 *** calvinct has quit IRC
16:52:01 *** Mechtilde has joined #gnucash
16:52:06 *** JayC has quit IRC
16:52:28 *** JayC has joined #gnucash
16:52:28 *** ChanServ sets mode: +v JayC
16:53:57 *** jralls has quit IRC
16:53:59 *** jralls has joined #gnucash
16:55:47 *** Mechtilde has quit IRC
16:55:50 *** ChanServ sets mode: +o jralls
16:57:09 <jralls> gjanssens, amort was a generic amortization function that abstracted a bunch of code common to all of the functions added in the PR.
17:08:21 <gjanssens> jralls: Ok, but it's not declared in the code effectively merged, only used 3 times. How can that work ?
17:09:24 *** calvinct has joined #gnucash
17:11:36 <jralls> Obviously it can't.
17:14:35 <gjanssens> Ok, relief. I'm not missing something :)
17:15:15 <gjanssens> You probably saw I asked the original author for clarification. I expect him to provide the missing function.
17:15:23 <jralls> Just that function! ;-)
17:18:35 <jralls> IIRC we went over the math at some length in the PR discussion, but all of that was thrown away when he force-pushed his corrections.
17:20:38 <gjanssens> Huh, that's unfortunate :(
17:36:38 <jralls> In the real world the effective period rate is just the nominal rate/compounding periods per year, but in Canada they compound monthly and pay semi annually so (let ((r (expt (+ 1 (/ iy cy)) (/ cy py)))
17:38:19 <jralls> (* pmt (/ (- (expt r n) 1) (- r 1)))))
17:43:00 <jralls> Ah, and the rate is calculated by gnc:periodic_rate, line 110.
17:45:10 *** Mechtilde has joined #gnucash
17:45:59 *** User__ has joined #gnucash
17:48:12 *** Mechtilde has quit IRC
17:49:26 <fell> gjanssens: Your work will have implications on https://wiki.gnucash.org/wiki/Scheduled_Transactions (and a german page)
17:50:57 <jralls> fell: Why? It shouldn't matter to the UI whether the formula parser invokes a Scheme function or a pre-compiled C one.
17:51:43 <jralls> Remember that the formula parser is already in C.
17:52:25 <gjanssens> I am aware of that indeed.
17:52:31 <fell> In# Variables and Formulas is written: See https://github.com/Gnucash/gnucash/blob/master/libgnucash/app-utils/fin.scm
17:53:20 <fell> in Bank Account Interest are sections from fin.scm copied
17:53:50 <gjanssens> Those can be updated to refer to the same bits in C code afterwards.
17:54:31 <fell> IMHO the references should be replaced by links to a well documented header file.
17:54:37 *** User__ has quit IRC
17:54:38 <gjanssens> Anyway, this will be slow progress. At this stage I'm mostly testing feasibilty.
17:55:51 <gjanssens> Now it's time to go to sleep.
17:55:55 <gjanssens> See you later!
17:56:01 <fell> CU
17:56:57 *** gjanssens has quit IRC
18:09:54 *** calvinct has quit IRC
18:12:15 *** CDB-Man_ has joined #gnucash
18:12:15 *** ChanServ sets mode: +v CDB-Man_
18:13:59 *** CDB-Man has quit IRC
18:48:34 *** Mechtilde has joined #gnucash
18:49:02 *** Gerd has quit IRC
18:49:19 *** nick_ has joined #gnucash
18:53:22 *** fell has quit IRC
18:53:31 *** fell has joined #gnucash
18:53:32 *** ChanServ sets mode: +o fell
18:53:42 *** Mechtilde has quit IRC
18:54:08 *** chris has quit IRC
18:59:14 *** Mechtilde has joined #gnucash
19:02:16 *** Mechtilde has quit IRC
19:06:22 <nick_> Hi All - I have been searching for ways to automatically splits for my expense accounts.
19:06:54 <nick_> I have some python experience and wondered about writing something myself. Any pointers for a newbie?
19:12:08 *** Mechtilde has joined #gnucash
19:15:10 *** Mechtilde has quit IRC
19:21:57 *** jervin has joined #gnucash
19:22:55 <jralls> nick_ have you considered scheduled transactions?
19:23:16 <fell> Funny, nick_ some guys on the german list are discussing this, too: https://lists.gnucash.org/pipermail/gnucash-de/2019-December/011257.html ff
19:23:59 <nick_> I had - I'm actually trying to apply GST (tax) split on my expenses when I import an OFX
19:24:44 <nick_> @fell - thanks - and thanks Google for translate !
19:24:44 <gncbot> nick_: Error: "fell" is not a valid command.
19:25:02 *** kael has joined #gnucash
19:25:02 *** ChanServ sets mode: +v kael
19:25:40 *** Mechtilde has joined #gnucash
19:28:24 <fell> jralls: E.Rieger had a command line tool pygnc for 2.4. They plan put it on some git server and port it to python3 for GC3.x
19:28:42 *** Mechtilde has quit IRC
19:31:38 *** Mechtilde has joined #gnucash
19:34:05 *** omnireq_ has quit IRC
19:34:40 *** Mechtilde has quit IRC
19:39:31 *** Mechtilde has joined #gnucash
19:41:11 <jralls> fell, that's interesting. Since it goes back to 2.4 I suppose it uses the XML file so it will complement piecash that uses SQL.
19:42:33 *** Mechtilde has quit IRC
19:42:37 <jralls> Or do they plan to update it to use the python bindings?
19:43:15 * nick_ I'm doing some more searches - the DE list link appears to reference something to do with exporting to a German format.
19:44:12 <fell> Datev is the cooperative of CPAs in DE
19:45:33 <fell> The invoice of your CPA will be cheaper, if he can import your file instead pof retyping it.
19:47:32 *** Mechtilde has joined #gnucash
19:48:39 <fell> They did also much for the standardization: all the german SKR account templates were developed by them.
19:50:32 *** Mechtilde has quit IRC
19:55:57 *** Cuare has quit IRC
20:19:40 *** Mechtilde has joined #gnucash
20:23:11 *** Mechtilde has quit IRC
20:23:43 *** jervin has quit IRC
20:26:50 *** Mechtilde has joined #gnucash
20:29:51 *** Mechtilde has quit IRC
20:31:07 *** jervin has joined #gnucash
20:33:33 *** jervin has quit IRC
20:38:12 *** oozer has quit IRC
20:42:17 *** Mechtilde has joined #gnucash
20:45:19 *** Mechtilde has quit IRC
20:45:48 *** jervin has joined #gnucash
20:46:50 *** jervin has quit IRC
20:47:04 *** guak has quit IRC
20:53:51 *** omnireq has joined #gnucash
21:03:25 *** jervin has joined #gnucash
21:07:28 *** jervin has quit IRC
21:10:45 *** kael has quit IRC
21:16:30 *** Mechtilde has joined #gnucash
21:19:31 *** Mechtilde has quit IRC
21:35:11 *** bertbob has quit IRC
21:37:30 *** bertbob has joined #gnucash
21:37:30 *** ChanServ sets mode: +v bertbob
21:45:26 <fell> At some point Rieger switched from Scheme to the then Python2 bindings.
21:46:44 <fell> And now they are planing to upgrade to the python3 based bindings.
21:58:34 *** alecostabr has joined #gnucash
22:03:34 *** alecostabr has quit IRC
22:04:24 *** Mechtilde has joined #gnucash
22:07:24 *** Mechtilde has quit IRC
22:09:32 *** Mechtilde has joined #gnucash
22:12:32 *** Mechtilde has quit IRC
22:39:29 *** Mechtilde has joined #gnucash
22:42:29 *** Mechtilde has quit IRC
22:46:17 *** Mechtilde has joined #gnucash
22:48:17 *** oliver has quit IRC
22:49:17 *** Mechtilde has quit IRC
22:49:59 *** oliver has joined #gnucash
22:54:51 *** Mechtilde has joined #gnucash
22:57:53 *** Mechtilde has quit IRC
23:01:00 *** Mechtilde has joined #gnucash
23:01:31 *** TownsendHardware has quit IRC
23:04:02 *** Mechtilde has quit IRC
23:11:18 *** jervin has joined #gnucash
23:12:02 *** jervin has quit IRC
23:16:01 *** Mechtilde has joined #gnucash
23:16:04 *** fell has quit IRC
23:19:02 *** Mechtilde has quit IRC
23:28:11 *** Mechtilde has joined #gnucash
23:31:13 *** Mechtilde has quit IRC
23:46:34 *** Mechtilde has joined #gnucash
23:49:35 *** Mechtilde has quit IRC