2021-01-07 GnuCash IRC logs

00:08:22 *** jervin has joined #gnucash
00:23:43 *** FH_thecat has quit IRC
00:23:48 *** jervin has quit IRC
01:16:35 *** gnomey has quit IRC
01:20:25 *** gnomey has joined #gnucash
01:26:46 *** fell has quit IRC
01:28:05 *** fell has joined #gnucash
01:28:05 *** ChanServ sets mode: +o fell
01:29:46 *** David has quit IRC
01:30:12 *** David has joined #gnucash
01:30:15 *** frakturfreak has quit IRC
01:35:08 *** sbluhm has joined #gnucash
01:44:18 *** frakturfreak has joined #gnucash
01:44:18 *** ChanServ sets mode: +v frakturfreak
01:56:58 *** Mechtilde has joined #gnucash
02:08:02 *** guiu has quit IRC
02:40:39 *** Mechtilde has quit IRC
03:25:24 *** Aussie_matt has quit IRC
04:08:59 *** Mechtilde has joined #gnucash
04:20:05 *** bertbob has quit IRC
04:26:34 *** Aussie_matt has joined #gnucash
04:28:35 *** bertbob has joined #gnucash
04:28:35 *** ChanServ sets mode: +v bertbob
04:29:14 *** field^Mop has joined #gnucash
05:30:37 *** Aussie_matt_ has joined #gnucash
05:35:07 *** Aussie_matt_ has quit IRC
05:43:54 *** Aussie_matt has quit IRC
06:22:46 *** dd has joined #gnucash
08:05:19 *** halipaul has joined #gnucash
08:20:14 *** mydogsnameisrudy has joined #gnucash
08:21:37 *** mydogsnameisrudy has quit IRC
08:53:42 *** Jimraehl1 has joined #gnucash
08:56:38 *** mrBussy has joined #gnucash
09:35:08 *** sbluhm has quit IRC
09:52:36 *** jervin has joined #gnucash
10:09:14 *** field^Mop has quit IRC
10:20:37 *** jervin has quit IRC
10:48:49 <chris> fao jralls gjanssens warlord https://texmacs.github.io/notes/docs/scheming.html has an interesting analysis
10:49:08 <chris> jralls_afk ^
10:57:35 *** Mechtilde has quit IRC
11:07:24 <warlord> chris, interesting data points.
11:54:06 *** guak has joined #gnucash
11:56:36 *** David has quit IRC
11:56:41 *** David has joined #gnucash
12:00:06 <Pegasus_RPG> chf: QB 2002 is when they switched to the SQLAnywhere format. Before that was flat files.
12:01:49 <chf> Is the format of those flat files known, Pegasus_RPG?
12:07:48 *** Mechtilde has joined #gnucash
12:13:20 *** puck has quit IRC
12:13:22 *** warlord has quit IRC
12:15:45 <Pegasus_RPG> chf: I don't know.
12:29:11 *** jervin has joined #gnucash
12:29:31 <jralls_afk> chris, interesting indeed, but aside from converting to Guile 3 all of those options would require redoing the C/C++ - Scheme architecture, replacing SWIG and all C-language Guile function calls with hand-rolled Chez. https://www.scheme.com/csug8/foreign.html.
12:29:39 *** jralls_afk is now known as jralls
12:35:22 <jralls> Pegasus_RPG, what kind of tests do you have in mind? Are there particular problems that you're looking to fix or do you just want to improve the test coverage in the business module?
12:38:15 <Pegasus_RPG> I just want to improve coverage to increase confidence.
12:44:34 <jralls> OK. You said "through helping test and fix any issues with using a SQL back-end". Does that mean you want to write tests that specifically target the SQL backend's reading and writing of the engine classes that hold business module data?
12:51:36 *** puck has joined #gnucash
12:55:49 <jralls> Pegasus_RPG Have you looked at https://github.com/Gnucash/gnucash/tree/maint/libgnucash/backend/dbi/test? Is that what you have in mind to improve?
12:56:15 <Pegasus_RPG> jralls: Overall, I want to help make GnuCash stable for multi-user business use.
12:56:19 <Pegasus_RPG> :)
13:05:06 <jralls> Pegasus_RPG: Have you seen https://wiki.gnucash.org/wiki/Roadmap#Database_and_QOF?
13:05:12 *** mikey has quit IRC
13:06:49 <jralls> While better test coverage would be a welcome step towards that goal it's not going to make it happen by the next release.
13:08:18 *** mikey has joined #gnucash
13:09:27 <jralls> In any case you need to have a plan in order to make any progress at all, and in order to make a plan you have to set a goal. What's your first goal?
13:10:28 <jralls> And what's your skill set? Are you fluent in modern C++ including templates? What test frameworks do you have experience with?
13:17:19 *** giuseppef has joined #gnucash
13:19:39 <giuseppef> Hi, I have a strange problem in recording a payment for a bill. When I start the payment procedure it shows only accounts of Equity and Liabilities and are not showed accounts of type bank and cash.
13:26:59 <jralls> warlord, can you help giusseppef?
13:27:29 <jralls> Pegasus_RPG, did you wander off?
13:30:18 *** sbluhm has joined #gnucash
13:32:57 *** Hamaryns has joined #gnucash
13:32:57 *** ChanServ sets mode: +v Hamaryns
13:35:56 <Pegasus_RPG> jralls: I have worked on Mixxx (https://mixxx.org) which is C++ using the Qt framework. We use Google Test but I personally hadn't gotten my head completely around how to use it when life got too busy to write code.
13:36:26 <jralls> Life's less busy now?
13:37:19 <Pegasus_RPG> (Like I understand how at a high level. I just didn't completely grasp how to properly set up mock objects for tests because of the complex class hierarchy and dependencies.)
13:37:35 <Pegasus_RPG> lol, not really, but I have a business case to get GnuCash working.
13:37:52 <jralls> We're just getting stared with Mocks.
13:39:11 <jralls> But if you have a pressing business case that requires multiuser GnuCash isn't going to work for you. It will be several more years before we have enough of the innards converted to support multiuser.
13:42:06 <Pegasus_RPG> I'm also looking at Tryton (http://www.tryton.org/) but that's much more than accounting
13:43:07 <Pegasus_RPG> Ah, so it's not just the SQL back-end holding up multi-user support?
13:44:24 * Pegasus_RPG reads the databse wiki page
13:44:38 <Pegasus_RPG> *roadmap
13:45:32 <jralls> No, the SQL backend was introduced in 2.4, 10 years ago. But it's just used as a store, all of the data is loaded at startup and while changes are written back out there aren't any reads until the next startup.
13:46:47 <Pegasus_RPG> Eww. That section of the roadmap wiki makes sense to me. You expect it will take years because of the amount of code that has to change?
13:48:03 <jralls> And the limited number of people working on it: Just one, me, and nowhere near full-time. There's too much other work that's more urgent.
13:48:57 <jralls> In fact I haven't even started on the next step, XML->internal DB.
13:50:56 <Pegasus_RPG> Then replace QofQuery with SQL queries of that in-memory DB, making sure all tests pass?
13:52:33 <Pegasus_RPG> FWIW, Mixxx uses a SQLite database for its track data
13:53:07 *** field^Mop has joined #gnucash
13:53:28 <Pegasus_RPG> And I'm well-versed in PostgreSQL both as a developer and admin.
13:53:53 <Pegasus_RPG> that is, developing Web apps using PostreSQL. Not developing the DB engine!
13:56:52 <jralls> The big problem with your mixx experience is that it looks like it's C++-98 and only uses templates as provided types from Qt. That's pretty obsolete now.
13:58:29 <jralls> Though the kind of template code I've been writing is going to be (thankfully!) obsolete as soon as C++20 becomes widely available. Concepts will change everything. https://en.wikipedia.org/wiki/Concepts_(C%2B%2B)
14:02:15 <Pegasus_RPG> Yeah...Mixxx was started in 2001.
14:02:43 <Pegasus_RPG> brb
14:02:48 *** Pegasus_RPG has quit IRC
14:04:04 *** Pegasus_RPG has joined #gnucash
14:08:13 * Pegasus_RPG reads about Templates and Concepts
14:08:41 <Pegasus_RPG> We've started using templates all over Mixxx since we moved to C++11.
14:09:38 <jralls> OK. I didn't find any of that code, but I only scanned a couple of files.
14:11:39 <jralls> If you haven't switched at least to C++14, you should. It fixes the problem with brace initialization of POD types.
14:12:20 <jralls> And several other C++11 irritants.
14:13:54 <Pegasus_RPG> I'm not sure right now as I haven't been active in development for the past couple years. Just maintaining the build server. (What holds us back IIRC is having to support older Windows versions that don't have C++ libraries in the applicable SDKs supporting newer standards.)
14:16:21 <jralls> Yeah, I understand from the CPPCast guys that VS is a problem until 2015 when they finally got religion about standards compliance. Probably something to do with getting rid of Balmer.
14:18:25 <jralls> We use MinGW-w64 for windows so I get get to write mostly POSIX-style code. The only real problem is that gcc doesn't support C++ locales on Windows and we haven't taken the plunge to switch to ICU.
14:19:12 <jralls> GTG, dentist appointment. Back in a couple hours.
14:19:19 *** jralls is now known as jralls_afk
14:48:06 *** jcarl43 has joined #gnucash
14:48:07 *** ChanServ sets mode: +v jcarl43
15:02:16 *** jcarl43 has quit IRC
15:32:33 *** sbluhm has quit IRC
15:39:46 *** Hamaryns has quit IRC
15:41:21 *** mydogsnameisrudy has joined #gnucash
15:43:48 *** mydogsnameisrudy has quit IRC
15:59:02 *** jw4 has quit IRC
15:59:20 *** jw4 has joined #gnucash
15:59:20 *** ChanServ sets mode: +v jw4
16:16:29 *** ArtGravity has joined #gnucash
16:16:29 *** ChanServ sets mode: +v ArtGravity
16:30:09 *** Mechtilde has quit IRC
16:34:33 *** gjanssens has quit IRC
16:57:49 *** jralls_afk is now known as jralls
17:07:41 <chris> AdrienM: see https://github.com/Gnucash/gnucash/pull/667 but receiving private hate mail about some requisite changes led to me abandoning this projectr
17:23:27 <AdrienM> chris, thanks! Reading over it now. This looks interesting. Not sure why someone would get bent out of shape on improving this situation.
17:24:52 <AdrienM> I'm looking over my Reconciliation Report for one account now, and what a mess! I didn't know it was important to research the original reconcile date when re-reconciling after a transaction's flag was changed on an edit. (and I'd bet dimes to dollars, most users don't either, as advice on the list, is to just 'do it next time' or 'on the spot')
17:25:32 <AdrienM> I'll adjust my own advice on such future questions, and I'll need to check the docs to see if that is covered and I just missed it.
17:29:29 *** chris-phone has joined #gnucash
17:29:29 *** ChanServ sets mode: +v chris-phone
17:31:33 <chris-phone> The prerequisite changes is that if we're going to store reconciliation data - date, account, amount - the main purpose is to allow previous date re reconciliation. This assumes all previous reconciliation dates are accurate. Unfortunately this is not true.
17:32:33 <chris-phone> We could store previous reconciliation data, but to what purpose? Simply for reports? Then showing it alongside reconciliation report? With no ability to amend invalid past data? Nah not worth it
17:35:26 *** dd has quit IRC
17:36:35 *** jervin has quit IRC
17:40:07 <AdrienM> After, reading, I see. I suppose my best bet is to develop a regular schedule (rather than just on any old day) for reconciling cash and dutifully examining the Reconciliation Report at the same time. Now that edits aren't as trigger happy on the flag flipping, the need for cleanup should start to diminish.
17:41:01 *** chris-phone has quit IRC
17:41:44 *** Pegasus_RPG1 has joined #gnucash
17:41:52 *** Pegasus_RPG has quit IRC
17:41:52 *** Pegasus_RPG1 is now known as Pegasus_RPG
18:50:07 *** field^Mop has quit IRC
19:17:43 *** jervin has joined #gnucash
19:22:26 *** Aussie_matt has joined #gnucash
19:27:10 *** giuseppef has quit IRC
20:05:09 *** jervin has quit IRC
20:15:15 *** chris has quit IRC
20:51:30 *** storyjesse has joined #gnucash
20:51:49 *** guak has quit IRC
21:11:48 *** ArtGravity has quit IRC
21:13:32 *** warlord has joined #gnucash
21:41:09 *** bertbob has quit IRC
21:43:35 *** bertbob has joined #gnucash
21:43:35 *** ChanServ sets mode: +v bertbob
21:56:22 *** dklann has quit IRC
22:45:58 *** Aussie_matt has quit IRC