2019-05-04 GnuCash IRC logs

00:07:15 *** GumShoe_ has joined #gnucash
00:07:21 *** GumShoe has quit IRC
00:08:22 *** seanh has quit IRC
00:08:25 *** seanh has joined #gnucash
00:08:59 *** seanh has joined #gnucash
00:09:01 *** jchonig has quit IRC
00:09:26 *** seanh has quit IRC
00:09:29 *** seanh has joined #gnucash
00:09:56 *** seanh has quit IRC
00:10:25 *** jchonig has joined #gnucash
00:10:47 *** seanh has joined #gnucash
00:11:57 *** seanh has joined #gnucash
00:12:27 *** seanh has quit IRC
00:12:30 *** seanh has joined #gnucash
00:14:17 *** seanh has joined #gnucash
00:16:11 *** nimish2711 has joined #gnucash
00:25:05 *** mikee_ has quit IRC
00:54:30 *** marusich has joined #gnucash
00:54:31 *** ChanServ sets mode: +v marusich
01:03:32 *** warlord has quit IRC
01:03:55 *** mikee_ has joined #gnucash
01:04:41 *** warlord has joined #gnucash
01:04:41 *** gncbot sets mode: +o warlord
01:05:40 *** mikee has joined #gnucash
01:07:01 *** mikee_ has quit IRC
01:12:08 *** fell_laptop has joined #gnucash
01:12:09 *** ChanServ sets mode: +o fell_laptop
01:13:51 *** fell has quit IRC
01:44:52 *** nimish2711 has quit IRC
01:49:52 *** nimish2711 has joined #gnucash
02:04:05 *** GumShoe_ has quit IRC
02:14:04 *** nimish2711 has quit IRC
02:22:08 *** peanutbutterandcrackers has quit IRC
02:29:46 *** Mechtilde has joined #gnucash
02:29:46 *** ChanServ sets mode: +v Mechtilde
02:34:44 *** fabior has joined #gnucash
02:36:18 *** fabior has quit IRC
03:07:43 *** mikee has quit IRC
03:38:47 *** peanutbutterandcrackers has joined #gnucash
03:55:00 *** mikee has joined #gnucash
03:55:00 *** ChanServ sets mode: +o mikee
04:05:37 *** ldir has joined #gnucash
04:05:37 *** ChanServ sets mode: +v ldir
04:06:03 *** KevinDB has quit IRC
04:08:18 *** fabior has joined #gnucash
04:14:09 *** nicoroumeau has joined #gnucash
04:15:20 <gjanssens> peanutbutterandcrackers: be careful with calling setlocale (<something>, "")
04:16:02 <gjanssens> I remember jralls recently made changes to the source to to explicitly make sure it gets run only once to avoid locale related issues
04:16:41 <gjanssens> That may have been a Windows only issue though.
04:18:05 <gjanssens> fell_laptop: that wiki addition looks ok to me.
04:19:07 *** fell_laptop is now known as fell
04:20:03 *** GabrieleV has quit IRC
04:20:19 *** GabrieleV has joined #gnucash
04:20:37 <fell> Fine
04:29:20 *** marusich has quit IRC
04:31:05 *** Aussie_matt has quit IRC
04:33:58 *** nicoroumeau has quit IRC
04:37:01 *** nicoroumeau has joined #gnucash
04:48:58 *** nicoroumeau has quit IRC
05:11:59 *** tienne has joined #gnucash
05:51:48 *** nicoroumeau has joined #gnucash
05:54:28 *** nicoroumeau has quit IRC
06:03:27 *** nicoroumeau has joined #gnucash
06:24:05 *** oozer has joined #gnucash
06:24:48 *** KevinDB has joined #gnucash
06:24:48 *** ChanServ sets mode: +v KevinDB
06:26:10 *** ldir has quit IRC
06:27:17 *** nicoroumeau has quit IRC
06:30:24 *** Aussie_matt has joined #gnucash
06:35:05 *** nicoroumeau has joined #gnucash
06:37:14 *** Jimraehl1 has joined #gnucash
06:37:50 *** Jimraehl1 has left #gnucash
06:42:07 *** fell has quit IRC
07:01:55 *** chris has joined #gnucash
07:01:56 *** ChanServ sets mode: +v chris
07:01:59 <chris> .
07:09:09 *** omnireq has quit IRC
07:12:31 *** fabior has quit IRC
07:21:23 *** srji has joined #gnucash
07:26:31 *** nicoroumeau has quit IRC
07:39:01 <warlord> .
07:44:18 * chris can load libgnc-module but cannot access modules yet
07:44:40 <chris> https://pastebin.com/raw/8X0aZTvt
07:44:59 <chris> need GUILE_LOAD_COMPILED_PATH
07:49:55 *** hnasiet has joined #gnucash
07:50:06 *** ChanServ sets mode: +v hnasiet
07:50:12 <hnasiet> Hi
07:50:42 <hnasiet> I believe I just solved this bug
07:50:44 <hnasiet> https://bugs.gnucash.org/show_bug.cgi?id=796949
07:50:56 <hnasiet> however the problem lies a bit deep
07:51:13 <hnasiet> in the division method of GncInt128
07:55:04 <hnasiet> it was returning a positive remainder when the dividend was negative which is wrong for a truncation towards zero
07:55:17 <hnasiet> even the tests were expecting this behaviour
07:56:16 <chris> hnasiet: cool, could you can attach a patch?
07:57:43 <hnasiet> I will correct the tests and submit it in an hour
07:58:03 *** nicoroumeau has joined #gnucash
08:04:24 *** nicoroumeau has quit IRC
08:11:33 *** peanutbutterandcrackers has quit IRC
08:12:38 *** warlord has quit IRC
08:13:19 *** KevinDB has quit IRC
08:15:39 *** KevinDB has joined #gnucash
08:15:39 *** ChanServ sets mode: +v KevinDB
08:19:14 *** warlord has joined #gnucash
08:19:14 *** gncbot sets mode: +o warlord
08:24:23 *** User_ has joined #gnucash
08:28:14 *** storyjesse has joined #gnucash
08:28:57 *** User_ has quit IRC
08:41:07 *** peanutbutterandcrackers has joined #gnucash
08:55:55 *** hnasiet has quit IRC
08:56:41 *** hnasiet has joined #gnucash
09:07:01 *** jervin has joined #gnucash
09:10:51 *** jervin has quit IRC
09:21:25 *** tienne has quit IRC
09:24:52 *** peanutbutterandcrackers has quit IRC
09:31:15 *** nimish2711 has joined #gnucash
09:32:14 *** fabior has joined #gnucash
09:35:50 *** nimish2711 has quit IRC
09:36:32 *** nimish2711 has joined #gnucash
09:41:25 *** nimish2711 has quit IRC
10:02:34 *** nimish2711 has joined #gnucash
10:07:26 *** nimish2711 has quit IRC
10:07:54 *** nimish2711 has joined #gnucash
10:08:29 *** ChanServ sets mode: +v hnasiet
10:17:46 *** nimish2711 has quit IRC
10:18:14 *** nimish2711 has joined #gnucash
10:21:53 *** tienne has joined #gnucash
10:23:06 *** nimish2711 has quit IRC
10:26:09 *** nicoroumeau has joined #gnucash
10:35:01 *** Aussie_matt has quit IRC
10:37:33 <hnasiet> I just attached the patch
10:49:50 *** chris has quit IRC
11:07:36 *** jervin has joined #gnucash
11:10:42 *** fabior has quit IRC
11:11:58 *** fabior has joined #gnucash
11:24:16 *** jervin has quit IRC
11:24:26 *** jervin has joined #gnucash
11:29:29 *** nimish2711 has joined #gnucash
11:34:16 *** nimish2711 has quit IRC
11:40:19 *** nimish2711 has joined #gnucash
11:50:11 *** nimish2711 has quit IRC
12:03:42 *** omnireq has joined #gnucash
12:03:42 *** ChanServ sets mode: +v omnireq
12:06:55 *** nicoroumeau has quit IRC
12:21:34 *** tienne has quit IRC
12:45:09 *** storyjesse has quit IRC
12:53:42 *** hnasiet has quit IRC
13:01:23 *** nimish2711 has joined #gnucash
13:03:48 *** peanutbutterandcrackers has joined #gnucash
13:12:35 *** nimish2711 has quit IRC
13:12:37 *** srji has left #gnucash
13:22:03 *** tienne has joined #gnucash
13:34:37 *** Mechtilde has quit IRC
13:36:31 *** hnasiet has joined #gnucash
13:38:28 *** ChanServ sets mode: +v hnasiet
13:40:48 <jralls> @tell GumShoe: Yes, that's a normal console message. Success!
13:40:48 <gncbot> jralls: The operation succeeded.
13:40:57 *** peanutbutterandcrackers has quit IRC
13:42:16 *** Mechtilde has joined #gnucash
13:42:16 *** ChanServ sets mode: +v Mechtilde
13:44:22 <jralls> gjanssens: peanutbutteroncrackers is writing a python script using the GnuCash API/bindings. No gnucash-bin.c to set the locale for him.
13:45:36 <jralls> hnaslet: I saw your patch earlier. GncInt128 follows Knuth (I pinched the algorithm from Mastering the Art) so it should be doing a floor not a truncation.
13:46:12 <jralls> But you're right that the sign of the remainder should follow the sign of the dividend.
13:49:26 <hnasiet> jralls: if it is doing a floor then it should be also doing a floor when the absolute value of the dividend is less that the divisor
13:50:16 <jralls> Yes...
13:50:55 <hnasiet> jralls: line 774 of gnc-int128.cpp
13:53:23 <jralls> hnaslet: Does Intel's microcode truncate? line 774 is a regular integer divide, compiler should use a div instruction.
13:54:59 <hnasiet> ANSI C defines integer division as truncation
13:56:50 <jralls> hnaslet: This is C++, which may or may not define it the same and regardless it is indeed calling the assembler divq instruction so what matters is what Intel is doing.
14:01:46 *** frakturfreak has joined #gnucash
14:01:46 *** ChanServ sets mode: +v frakturfreak
14:03:24 <hnasiet> still in line 765
14:03:30 <hnasiet> it's doing truncation
14:03:48 <hnasiet> the remainder is equal to the dividend and the quotient is 0 I believe
14:06:14 <jralls> Are you on your patched version or the current HEAD? In the latter line 765 is r = *this; and what you just said doesn't make sense. Or did you mean 775?
14:07:39 <hnasiet> yes that line
14:07:44 <hnasiet> for negative this
14:07:57 <hnasiet> the remainder is negative
14:08:07 <hnasiet> and so you are doing a truncation towards zero
14:08:28 <hnasiet> with floor division the remainder is always positive
14:08:32 *** frakturfreak has quit IRC
14:09:39 *** Mechtilde has quit IRC
14:09:43 *** frakturfreak has joined #gnucash
14:10:05 <jralls> hnaslet: No, that's Euclidean, see https://en.wikipedia.org/wiki/Modulo_operation
14:10:54 <hnasiet> https://www.felixcloutier.com/x86/idiv
14:11:03 <hnasiet> idiv truncates toward zero
14:11:40 <jralls> and div...?
14:11:56 *** frakturfreak has quit IRC
14:12:02 <jralls> The compiled code calls divq not idivq.
14:13:28 *** frakturfreak has joined #gnucash
14:14:21 <hnasiet> yes you are right
14:14:40 <hnasiet> but that's because you are dividing two unsigned integers
14:15:00 <hnasiet> but then you apply the negative flag
14:15:12 <hnasiet> which is equivalent to a truncation towards zero
14:18:43 <hnasiet> for example -5/2, unsigned 5/2=2, signing it -2 with remainder -1, with euclidian division you would have quotient -3 with remainder 1
14:20:21 *** frakturfreak has quit IRC
14:21:35 *** frakturfreak has joined #gnucash
14:23:08 *** frakturfreak has quit IRC
14:23:43 *** Mechtilde has joined #gnucash
14:23:43 *** ChanServ sets mode: +v Mechtilde
14:24:41 *** frakturfreak has joined #gnucash
14:24:43 *** ChanServ sets mode: +v frakturfreak
14:28:50 <jralls> So the correction should be at 758, adding a line rflags |= neg;.
14:29:06 *** trying2Simplify has joined #gnucash
14:31:52 <hnasiet> Wait, I was confusing floored division for euclidian division
14:32:17 *** trying2Simplify has quit IRC
14:32:28 <hnasiet> in floored division the remainder has the sign of the divisor
14:32:42 <jralls> Yes...
14:32:49 <hnasiet> no the dividend
14:33:17 <hnasiet> so it would be 762
14:34:18 <jralls> No, 758. this is the dividend, b is the divisor.
14:35:46 <jralls> But I'm assuming that Knuth's algo really is floored based on the Wikipedia article. I'm looking it up now to make sure.
14:35:52 <hnasiet> you would also have to change inside the block of 763 and put q=-1 if the dividend and the divisors have different signs
14:36:33 <hnasiet> yes Knuth is floored
14:36:59 <hnasiet> euclidian puts the remainder between 0 and divisor-1
14:37:27 <hnasiet> for floored the sign of the remainder is equals to the sign of the divisor
14:39:23 <jralls> Oh, right, so 762 it is.
14:44:34 *** fabior has quit IRC
14:45:06 <jralls> But wait: If the hardware computation is truncated then the remainder needs to follow the dividend, so it's more complicated than just plugging in to 758 or 762.
14:46:24 <hnasiet> yes it is, I was writing it down now
14:48:30 <hnasiet> for example 5%6=5, 5%-6=-1, -5%6=1, -5%-6=-5 for floored division
14:50:13 <hnasiet> brb
15:15:00 <hnasiet> I just checked again and since C++ division is well-defined and always truncated towards 0
15:15:30 <hnasiet> and the modulus is such that a/b*b + r = a
15:15:43 <hnasiet> so r inherits the sign from a
15:16:28 <hnasiet> I don't know how dependent the code is on floored division if it is at all
15:16:43 <jralls> Right, truncated. That's C++11 and later, before it was implementation defined. NP, we require C++11.
15:17:05 <hnasiet> so it might be easier to define truncation division
15:19:10 <jralls> I'm not sure either. Knuth labels his algorithm as being "division of non-negative numbers".
15:19:54 <jralls> I guess I could look at gmp and see what they do.
15:21:44 *** tienne has quit IRC
15:24:20 <hnasiet> https://gmplib.org/manual/Integer-Division.html#Integer-Division
15:25:12 <jralls> Naturally they do it all three ways. :-/
15:25:38 <hnasiet> so
15:27:23 <hnasiet> I'm guessing that you are doing the rounding right after the division
15:28:08 <hnasiet> I don't believe there is much dependence on the division rule
15:28:18 <hnasiet> other than the rounding
15:28:35 <hnasiet> and that's why we had that conversion to EUR give -0.01
15:29:37 <hnasiet> I just found out a mistake I made
15:30:39 <hnasiet> if the division is between a negative and a negative, the real number is positive
15:30:47 <hnasiet> but the remainder is negative
15:31:39 <jralls> Yes.
15:31:47 <hnasiet> and I was using the remainder to round it but it doesn't hold enogh information
15:34:07 <jralls> Which rounding? GncInt128 will round results that don't fit in 128 bits, but GncNumeric rounding is for rationals, GncInt128/GncInt128 or converting to GncNumeric, int64_t/int64_t.
15:35:20 <jralls> No, I misremember: GncInt128 will throw if the result doesn't fit in 128 bits.
15:35:42 <hnasiet> you have to round to display the value, when you need to convert
15:36:06 <hnasiet> if you have something like value ={num=0.98, den=100}
15:36:24 <hnasiet> in conversions for example
15:36:55 <jralls> Don't have to, but it upsets the users if we don't. And you mean {98, 10000}. No doubles allowed!
15:37:13 <hnasiet> yes
15:37:43 <hnasiet> but you have to convert it to denom=100
15:37:50 <hnasiet> to display 0.01
15:38:03 <jralls> Which is {1, 100}.
15:38:21 <hnasiet> exactly
15:38:39 <hnasiet> but for that you do the integer division which gives 0
15:39:52 <jralls> If it's already 1/100 we just spit out .01. It's when the result is 13/7 that rounding kicks in.
15:40:36 <jralls> But a negative denominator in a rational is an error.
15:41:08 <hnasiet> yeah but in this case you have to compute 98 * 100/10000
15:41:47 <hnasiet> or 98/(10000/100)
15:41:59 <jralls> No, if the denominator is a multiple of 10 we just count zeros.
15:43:46 <hnasiet> for a conversion between currencies you have nothing like that
15:46:08 <hnasiet> the rounding I'm refering to is gnc-rational-rounding
15:46:18 <jralls> Right. Then it's {98, 100} / {121, 100} or something (dunno what the rate is right now). That of course is {98, 121} which probably won't make a pretty decimal value.
15:47:24 <hnasiet> normally you have something like
15:47:27 <jralls> So it gets rounded. Exchange rates are also not likely to be negative, so the issue is with small numbers where the remainder follows the dividend.
15:48:17 <hnasiet> {1, 100} / {1627, 1546}
15:48:58 <hnasiet> exactly
15:50:08 <hnasiet> the problem is that neither the quotient nor the remainder hold enough information to round it correctly
15:50:34 <hnasiet> because in the cause that the dividend is smaller than the divisor
15:52:05 <hnasiet> q is zero and r only tells us whether the dividend is positive or negative, not the sign of real quotient
15:53:34 <hnasiet> for all other cases both are necessary and sufficient
15:53:41 <jralls> Unless you posit that in real life the divisor will always be positive.
15:53:54 <hnasiet> yes
15:55:32 <jralls> I can't think of any case in finance where one would divide by a negative number. Can you?
15:56:15 <hnasiet> in that case the sign of the remainder is the necessary and sufficient datum
15:56:19 <hnasiet> No
15:57:32 <hnasiet> at least nothing that you have to store as an integer
15:57:48 <hnasiet> or a rational
15:58:29 <jralls> There is nothing else. Or rather there should be nothing else, but sloppy people created something else and I haven't cleaned it all up yet.
15:58:48 <jralls> What case were you thinking of?
16:01:23 <jralls> Hmm, -0 is a possible quotient value to guide rounding.
16:02:31 <hnasiet> yes
16:02:38 <hnasiet> I don't think there is anything
16:02:49 <hnasiet> I was just thinking purely in mathematics
16:03:29 <jralls> So maybe we should just throw if there's a negative divisor > dividend.
16:04:33 <hnasiet> -0 is the only solution that doesn't require info about the divisor
16:05:13 <jralls> I meant at the top of GncInt128::div.
16:05:24 *** Mechtilde has quit IRC
16:05:58 <hnasiet> yes, the 3rd bit from the top
16:07:46 <hnasiet> I guess that now it's not that relevant and it's up to you whether to maintain mathematical rigour or ignore cases that probably don't happen
16:07:53 <jralls> The pointer inequality asserts?
16:09:26 <jralls> Hmm, those should also assert (&q != &r)...
16:12:40 <hnasiet> also I had r to negative if dividend was negative and r was not zero because it would fail the test otherwise
16:12:41 *** guak has joined #gnucash
16:13:07 <hnasiet> because -zero is not zero in bits
16:15:43 <jralls> Which bits? int64_t has no -0. GncInt128 does because it uses a flag for negative; multi-leg arithmetic in 2's complement is too hard.
16:16:25 <hnasiet> for GncInt128 yes
16:21:13 <hnasiet> and that's the smarter way
16:21:24 <hnasiet> there is no need for that extra value :)
16:22:12 *** tienne has joined #gnucash
16:22:25 <jralls> Sorry, you mean -0 as "that extra value"?
16:22:58 <hnasiet> no the extra negative value from the two's complement
16:24:05 <jralls> Oh, 0x8000. Yes, not terribly useful. But 2's complement is much easier to implement in transistors.
16:24:54 <hnasiet> btw, what's your academic background?
16:25:03 <hnasiet> do you have anything in finance?
16:26:19 <jralls> Nuclear and Industrial Engineering (separate degrees), total of 3 courses in finance and accounting.
16:26:44 <jralls> And about a dozen in CS.
16:27:14 <hnasiet> cool!
16:27:53 <hnasiet> I have a masters on mechanical engineering
16:28:05 <hnasiet> that's why I went for the maths
16:28:26 <jralls> You must have done some CS in there too...
16:30:17 <jralls> The thing about engineering is that doubles are fine. It's rare that we can measure anything to better than 4 or 5 significant digits. Start declaring digits insignificant with somebody's money and they get mad at you.
16:30:32 <hnasiet> I learned much of it myself and took a post graduation degree in software engineering and information systems
16:31:49 <hnasiet> I guess what can go wrong is the thousands of millions of microtrasanctions that occur every day
16:32:43 <hnasiet> you could easily earn a lot by rounding it in a certain way
16:34:18 <jralls> There was a famous skimming case back in the 60's where some fintech programmer took all of the rounding errors and sent them to his personal account. It was enough of a difference that someone noticed he seemed to have more money than he should, given his salary.
16:36:33 <hnasiet> wow
16:36:37 <jralls> Then there's e-currency. This whole GncInt128 dance is to be able to handle 10"9 divisors. It's not hard to overflow 64-bit with that.
16:41:19 <hnasiet> they don't play when we are talking about people's e-money
16:42:05 <hnasiet> btw the gtest uses the overloaded operator== right?
16:42:21 <hnasiet> for Expect_EQ
16:43:12 <jralls> Dunno offhand, let me check.
16:49:27 <jralls> Yes.
16:54:39 *** jervin has joined #gnucash
16:55:02 <hnasiet> so the cmp operator has to contemplate the comparison between zero and -zero
16:56:39 *** jervin has quit IRC
16:57:22 <jralls> Which it does. It tests in order Overflow, NaN, sign, high legs, low legs.
16:58:19 <hnasiet> yeah and if sign is different -zero is different from zero
16:58:29 <hnasiet> when in reality it's the same number
16:59:53 <jralls> That depends. It's the same point on the number line, but logically may not have the same meaning.
16:59:54 <hnasiet> you just have to change the if condition when you are checking the sign to !b.isNeg() && !b.isZero()
17:01:51 <jralls> Or test isZero() && b.isZero().
17:02:10 <jralls> before testing for sign.
17:02:21 <hnasiet> yeah
17:02:30 *** mikee has quit IRC
17:04:50 <hnasiet> hmm
17:05:32 <hnasiet> logically the minus sign means that the 0 was truncated from a negative
17:06:24 <hnasiet> but I guess that for comparison we are concerned only with the actual value
17:06:47 <jralls> Yeah, I think so.
17:09:10 <hnasiet> Do you have a test suite for rounding?
17:09:39 <hnasiet> I could write a bunch of them
17:12:31 <jralls> Not exhaustive. There are rounding tests in all of the numeric suites but I don't see any that test negative values.
17:13:46 <jralls> Nope, I'm wrong. See https://github.com/Gnucash/gnucash/blob/maint/libgnucash/engine/test/gtest-gnc-numeric.cpp#L403
17:18:11 <hnasiet> but for the round function in gnc-rational-rounding.hpp?
17:20:27 <jralls> Convert does a divide-and-round using those templates.
17:21:55 <hnasiet> oh ok
17:22:21 <hnasiet> they were just missing that sweet spot when the quotient is zero
17:22:35 <hnasiet> but the real quotient is negative
17:23:28 <jralls> Notice that there are specializations for GncInt128 further down, so the general templates apply only to built-in types.
17:25:38 <hnasiet> I gotta go, tommorow I will send a PR
17:25:54 <hnasiet> It was a pleasure talking to you, have a nice weekend
17:26:02 <jralls> Just keep working on the one you've got. Force-push to the same branch
17:26:10 <jralls> Same, thanks for your help on this.
17:26:50 <jralls> I've got a couple of other comments on the PR, I'll finish those up shortly.
17:28:22 *** hnasiet has quit IRC
17:40:04 *** frakturfreak1 has joined #gnucash
17:41:12 *** frakturfreak has quit IRC
17:57:33 *** guak has quit IRC
18:02:35 *** jervin has joined #gnucash
18:07:23 *** KevinDB has quit IRC
18:09:41 *** KevinDB has joined #gnucash
18:09:41 *** ChanServ sets mode: +v KevinDB
18:16:57 *** fell has joined #gnucash
18:16:57 *** ChanServ sets mode: +o fell
18:17:33 <fell> .
18:21:53 *** tienne has quit IRC
18:22:00 *** mikee has joined #gnucash
18:22:33 *** mikee has left #gnucash
18:25:04 *** mikee has joined #gnucash
18:30:02 *** mikee has quit IRC
18:30:21 *** mikee has joined #gnucash
18:54:27 *** fell has quit IRC
18:55:51 *** mikee has quit IRC
18:56:18 *** frakturfreak1 has quit IRC
19:22:21 *** tienne has joined #gnucash
19:30:31 *** Aussie_matt has joined #gnucash
20:44:20 *** oozer has quit IRC
20:48:46 *** peanutbutterandcrackers has joined #gnucash
21:22:02 *** tienne has quit IRC
22:17:32 *** jervin has joined #gnucash
22:22:30 *** tienne has joined #gnucash
22:33:15 *** nimish2711 has joined #gnucash
22:43:07 *** nimish2711 has quit IRC
22:49:31 *** jervin has quit IRC
22:58:55 *** nimish2711 has joined #gnucash
23:13:48 *** nimish2711 has quit IRC
23:19:38 *** nimish2711 has joined #gnucash
23:24:31 *** nimish2711 has quit IRC
23:25:02 *** nimish2711 has joined #gnucash
23:28:07 *** bertbob has quit IRC
23:29:54 *** nimish2711 has quit IRC
23:30:22 *** nimish2711 has joined #gnucash
23:35:14 *** nimish2711 has quit IRC
23:40:59 *** bertbob has joined #gnucash
23:41:00 *** ChanServ sets mode: +v bertbob
23:41:05 *** nimish2711 has joined #gnucash
23:46:32 *** jervin has joined #gnucash
23:47:33 *** jervin has quit IRC
23:51:03 *** bertbob has quit IRC
23:55:57 *** nimish2711 has quit IRC
23:56:01 *** peanutbutterandcrackers has quit IRC
23:56:26 *** nimish2711 has joined #gnucash