2017-04-22 GnuCash IRC logs

00:05:49 *** kael has quit IRC
00:07:16 *** mlncn has joined #gnucash
00:47:26 *** mlncn has quit IRC
01:23:51 *** Mechtilde has joined #gnucash
01:27:10 *** fell_ has joined #gnucash
01:28:53 *** fell has quit IRC
02:02:51 *** Mechtilde has quit IRC
02:03:51 *** Mechtilde has joined #gnucash
02:10:03 *** gjanssens has joined #gnucash
02:10:03 *** ChanServ sets mode: +o gjanssens
02:14:01 <gjanssens> .
04:20:48 *** fabior has joined #gnucash
04:54:17 *** nitin has joined #gnucash
04:56:00 *** fekepp has joined #gnucash
05:14:36 *** nitin has quit IRC
05:15:25 *** pilotauto has quit IRC
05:15:52 *** nitin has joined #gnucash
05:21:07 *** fabior has quit IRC
05:21:56 *** nitin has quit IRC
05:24:51 *** nitin has joined #gnucash
05:34:23 *** fabior has joined #gnucash
05:37:01 *** nitin has quit IRC
05:41:17 *** Mechtilde has quit IRC
05:55:06 *** Mechtilde has joined #gnucash
06:45:51 *** fell_ is now known as fell
06:45:59 *** gncbot sets mode: +o fell
06:50:31 <fell> Andrew-: It depends on the rules applicable in your country. Do you have to pay it back later, ...
06:51:06 <fell> So I suggest to ask on the gnucash-user mailinglist.
07:01:19 *** fabior has quit IRC
07:35:31 *** schnaaki has joined #gnucash
07:37:14 <schnaaki> Hey folks! Just started to use gnucash some days ago and read the online guide. Any german speaking person available to help me with a few questions? Thanks in advance! :)
08:14:05 <warlord> schnaaki: fell might be around. Otherwise you can try the gnucash-de mailing list
08:14:42 <fell> Jau!
08:14:54 <schnaaki> ah ok, thanks!
08:15:45 <fell> Und, was sind die 3 Wünsche?
08:19:14 <schnaaki> Ich frage mich vor allem, wie ich am geschicktesten anfangen soll. Ich würde gerne meine Konten und Geschäftsvorgänge der letzten 2 Jahre aufholen und habe für meine Konten auch einen HBCI Zugang, so dass ich da alle Transaktionen runterladen kann. Sollte ich damit anfangen oder erstmal Anfangsbestände buchen oder mit terminierten Buchungen anfangen und dann erst Online Banking, damit ich
08:19:19 <schnaaki> abgleichen kann? Frage mich, ob man eine bestimmte Reihenfolge bei der Ersteinrichtung einhalten sollte? Danke schonmal für deine Hilfe! :)
08:20:44 <fell> Wenn du vorher ein anderes Programm, benutz hast, solltest du, versuchen, die Daten daraus via QIF o.ä. zu übernehmen.
08:21:05 <schnaaki> Nein, habe ich leider nicht...
08:21:54 <fell> Online-Banking liefert je nach Bank die Umsätze vom letzten Quartal.
08:22:49 <schnaaki> Bei meiner Bank sogar bis April 2015. Das wäre ein guter Anfang, da ich dann nur Januar - April 2015 manuell buchen muss
08:22:52 <fell> Wichtig dabei: gleich das richtige Konto zuweisen, damit das Programm mitlernen kann.
08:24:49 <fell> Dann kannst du noch widerkehrende Buchungen als widerholte terminierte Buchungen verarbeiten.
08:25:42 <schnaaki> Ok, aber wenn ich alles aus dem Online Banking importiere und dann noch terminierte Buchungen erstelle, habe ich die vermutlich erstmal doppelt im Buch, oder?
08:25:51 <fell> Der Rest ist dann Handarbeit mit Unterstützung durch die Autofill-Funktion.
08:26:48 <fell> Erst die terminierten erstellen, damit beim Import das Vorhandensein erkannt werden kann.
08:27:23 <schnaaki> Ah ok, prima! Also erst terminierte, dann Import und dann manuell kontrollieren und abgleichen?
08:27:36 <fell> und von dir dann entsprechend bestätigt wird.
08:28:15 <fell> Beim Import erscheint ein Dialog, wo du Konten zuweisen und Doubletten markieren kannst.
08:29:11 <fell> Z.B. 500 Bank ./. Aufwendungen:Wohnen:Miete
08:30:04 <fell> Ein gut durchdachter Kontenplan ist wichtig.
08:30:52 <schnaaki> Ok, ich versuche es mal wie von dir erklärt. Bei Fragen/Problemen melde ich mich nochmal hier. Danke für deine Hilfe! :)
08:31:02 <fell> Der hängt davon ab, was du alles anschließend wissen willst. Steuererklärung vereinfachen, ...
08:32:01 <fell> Wie erfolgreich waren Wertpapier-Investments, ...
08:33:16 <schnaaki> Aber je detaillierter ich buche, desto mehr Informationen kann ich später daraus ableiten oder?
08:33:25 <fell> Eben
08:33:53 <schnaaki> Für Steuererklärung wären Brutto/Netto Gehaltszahlungen zum Beispiel wichtig. Aber dafür ist das Beispiel im Guide ja ideal.
08:38:03 <fell> Krankenkasse, ... alle als eigene Buchungszeile erfassen wie auf der Abrechnung.
08:38:51 <fell> SV:(AL,KK,PK, ...)
08:41:15 <schnaaki> Okidoki!
08:41:20 <schnaaki> Ah noch eine Frage:
08:42:09 <schnaaki> Wenn ich eine terminierte Buchung für die Miete zum 28. eines Monats einrichte und ich die Miete von Hand überweise (kein Daueraufrag), sagen wir mal 1. des Folgemonats, wird gnucash das als Doublette erkennen?
08:44:40 <fell> Bearbeiten->Einstellungen->Online-Banking hat da Schwellen für Zeit und Betrag
08:44:59 <schnaaki> Ah super!
08:46:32 <schnaaki> Letzte Frage: Wenn ich meinen Bargeldverkehr versuche abzubilden ist es recht einfach zu sehen, wann ich wieviel Bargeld abgehoben habe. Jedoch vergisst man schnell mal Bar getätigte Einkäufe, so dass die Konten nicht ausgeglichen sind am Ende oder nicht mehr der Realität entsprechen. Wäre es sinnvoll dafür ein Aufwendungskonto "Unbekannte Barzahlungen" anzulegen?
08:47:17 <fell> Aufwendungen:Sonstiges klingt besser ;-)
08:47:46 <fell> Sieht nur blöd aus, wenn Sonstiges >50% ist.
08:48:22 <schnaaki> Ja das stimmt wohl, aber wird mir nicht viel übrig bleiben, wenn ich die letzten 2 Jahre aufholen will. ;)
08:48:32 <schnaaki> Ich gelobe Besserung für die Zukunft!
08:48:59 <fell> Ich bin ja nicht dein Revisor.
08:49:35 <fell> DA kämen eher Ehepartner, Steuerfahnder und Staatsanwalt in Betracht. ;-)
08:49:53 <schnaaki> Hehe, das wollen wir doch nicht hoffen...
08:50:04 <schnaaki> Danke für deine kompetente Hilfe. Jetzt kann ich starten.
08:50:35 <fell> Viel Erfolg und Spaß!
08:51:20 <schnaaki> Danke, werde ich sicher haben. Eine tolle Software! Bis bald!
08:51:45 <fell> Bis dann!
08:52:02 *** schnaaki has left #gnucash
08:53:10 *** Jimraehl1 has joined #gnucash
08:54:06 *** Jimraehl1 has left #gnucash
08:57:12 *** fabior has joined #gnucash
09:01:01 <fell> My result from the german talk above: We should eventialy improve the migration guide:
09:01:50 <fell> A: I used another program -> use QIF import.
09:02:40 <fell> B: I can get the last time via online banking.
09:04:02 <fell> C: You can generate repeated txns via scheduled txns
09:05:18 <fell> If B+C are the case, first do C to detect duplicates while running B
09:50:58 *** User_ has joined #gnucash
09:52:36 *** User_ has quit IRC
10:01:21 *** User_ has joined #gnucash
10:29:39 <gjanssens> jralls: I discovered today you explicitly declared a move constructor and assignment operator for GncDate, but omitted the copy equivalents. Is that intentional ?
10:34:10 *** fabior has quit IRC
10:35:26 *** fabior has joined #gnucash
10:37:42 *** jralls has quit IRC
10:39:48 *** jralls has joined #gnucash
10:39:48 *** ChanServ sets mode: +o jralls
10:55:26 *** Andrew- has quit IRC
10:55:42 *** Andrew- has joined #gnucash
11:18:14 *** Jacques has joined #gnucash
11:32:04 <gjanssens> jralls: based on your yesterday's remark I've slightly changed the GncDate string/fmt constructor code, or rather the use of gnc_date_formats
11:32:57 <gjanssens> I've made it private to gnc-datetime.cpp and I have added a static function to query available formats
11:33:18 <gjanssens> These are used by the csv importer to populate a combobox for the user to select a format
11:34:03 <gjanssens> The static function caches the extracted formats in a vector to avoid having to run the extraction time after time again.
11:34:37 *** Jacques has quit IRC
11:35:00 <gjanssens> As for the map itself, I have chosen to use one to ensure the date formats presented to the user is never out of sync with associated regexes.
11:36:00 <gjanssens> The previous implementation as I had it in the csv importer required the user to keep and array of names in sync with an array of regex specs.
11:36:49 <gjanssens> I've pushed the current implementation to my PR. Unit tests work now without segfault.
11:37:24 <gjanssens> My next step is to make the csv importer use GncDate directly instead of it's private date parsing implementation
11:38:26 <gjanssens> I'm currently stuck there because at some point I'm copying a shared ptr around which holds (among others) a GncDate and hence tries to make a copy of the GncDate as well.
11:38:46 <gjanssens> But there's no copy constructor/assignment operator for a GncDate and so it fails to compile.
11:39:52 <gjanssens> I'm not sure of your intentions with the omitted copy constructor so I'll wait for your reply before to continue this avenue.
11:40:32 <gjanssens> Is the copy constructor omitted because of the use of a uniqe_ptr as private member variable ?
11:41:29 <gjanssens> I realize I'm interrupting you a lot the last few days. Hope you're not getting frustrated :(
11:56:59 <jralls> gjanssens: Re the copy semantics on GncDate: Yes, because a GncDate's m_impl is a std::unique_ptr which is moveable but not copyable. Same for GncDateTime. IIRC it was a recommendation from one of Sutter's GotD posts about Pimpl.
11:58:09 <gjanssens> jralls: Ok, which means I have to figure out how to cope with move-only objects in my csv importer :(
11:59:09 <jralls> Not necessarily. We can implement copy operations on GncDate and GncDateTime, either by switching to shared_ptrs or using deep copies.
12:02:22 <jralls> Another way to keep the date-order designator and the regex together is with std::vector<std::pair>. That has the advantage of keeping all of the memory together.
12:03:05 <jralls> It occurs to me, though, that the the crash might have been due to putting the regexes in const char* instead of std::string.
12:04:07 <gjanssens> Perhaps. The crash is gone in the current implementation.
12:04:35 <gjanssens> The std::vector<std::pair> is an interesting approach as well.
12:05:12 <gjanssens> Can such a date structure be initialized directly as well using nested curly braces ?
12:05:23 <gjanssens> Never tried that.
12:06:10 <gjanssens> It would allow us to avoid the map-keys-to-vector conversion, which is good.
12:07:09 <gjanssens> OTOH it would also expose the regexes to GncDate consumers. Which is not evil but less clean in terms of implementation detail hiding...
12:08:54 <jralls> Yet another option is to make a struct with the two members and have a vector of those.
12:10:41 <jralls> Or for data hiding, a class (the difference being that conceptually a struct's member variables are public and a class's are private).
12:15:06 <gjanssens> Brings me back to the initialization challenge. Can such a vector be initialized directly using recursive curly braces ?
12:17:45 <jralls> Yes.
12:18:49 *** User_ has quit IRC
12:18:59 <jralls> Though if you go with the pair you'll be calling std::make_pair<std::string, const char*> for each one.
12:22:00 <jralls> The vector constructor will be called with either std::vector<T> gnc_day_formats({...}); or std::vector<T> gnc_day_formats = {...};
12:22:36 <gjanssens> Ok, will experiment with the various options. The vector of classes seems the most promising to me. The class can have one public (fmt_string) and one private (regex) member
12:23:12 <gjanssens> Lots of work on the drawing board still :D
12:25:47 <jralls> Enjoy. I'm still working on getting webkit-2.16.1 to build on OSX. It's been almost a week now.
12:26:10 *** mlncn has joined #gnucash
12:26:17 <gjanssens> Phew. An ugly beast that is...
12:27:43 <jralls> Now I have to go rescue Ellie. She walked to a not-quite-nearby coffee shop and decided that it's too far to walk back. Then time for a bike ride...
12:43:39 <gjanssens> :) See you later
12:52:12 <Andrew-> fell, USA here. No rules governing the disbursement, just my money now. I'll google for that mailing list and go there. I appreciate it
13:02:47 <fell> Andrew-: you can subscribe or view the archive at https://lists.gnucash.org/mailman/listinfo/gnucash-user
13:08:22 *** mrklintscher has quit IRC
13:09:44 *** mrklintscher has joined #gnucash
13:16:18 *** fekepp has quit IRC
13:18:32 *** gjanssens is now known as gjanssens_afk
13:24:44 *** Mechtilde has quit IRC
14:09:47 *** jonas_ has quit IRC
14:11:51 *** jonas has joined #gnucash
14:18:38 *** frakturfreak has joined #gnucash
14:21:20 *** mlncn has quit IRC
14:21:41 *** fabior has quit IRC
14:37:34 *** nitin has joined #gnucash
14:44:34 *** mrklintscher has quit IRC
14:45:44 *** mrklintscher has joined #gnucash
15:15:51 <jralls> gjanssens: Some more thoughts on GncDate and GncDateTime being not-copyable. They can still be passed around as function parameters using cont &, which is probably the best course.
15:19:37 <jralls> You can also wrap the object in a shared_ptr and copy that, though you'll have to allocate the object in the free store if you do.
15:20:34 <jralls> OTOH if you need to copy-and-mutate then we'll need to write a deep-copying copy ctor and op=().
15:26:02 *** mrklintscher has quit IRC
15:27:27 *** mrklintscher has joined #gnucash
15:48:05 *** fekepp has joined #gnucash
16:15:32 *** mrklintscher has quit IRC
16:16:51 *** mrklintscher has joined #gnucash
16:26:33 *** nitin has quit IRC
17:24:26 *** fekepp has quit IRC
17:24:31 *** fekepp has joined #gnucash
17:25:02 *** mlncn has joined #gnucash
17:32:54 *** fekepp has quit IRC
17:38:33 *** gjanssens_afk has quit IRC
18:53:30 *** User_ has joined #gnucash
18:54:44 *** User__ has joined #gnucash
18:56:34 *** User_ has quit IRC
19:00:59 *** mlncn has quit IRC
19:35:41 *** User_ has joined #gnucash
20:00:02 *** User__ has quit IRC
20:19:25 *** vjacob has joined #gnucash
20:40:10 *** gnomey has joined #gnucash
21:15:41 *** frakturfreak has quit IRC
21:31:51 *** User__ has joined #gnucash
21:35:44 *** User__ has quit IRC
21:37:03 *** mrklintscher has quit IRC
21:38:34 *** mrklintscher has joined #gnucash
22:01:59 *** gnomey has quit IRC
22:02:40 *** gnomey has joined #gnucash
22:02:47 *** User_ has quit IRC
23:46:56 *** gnomey has quit IRC
23:48:12 *** gnomey has joined #gnucash
23:53:26 *** kael has joined #gnucash
23:59:28 *** kael has quit IRC