8 ms·
Spanish traders set the standard for GnuCash database design
- benj111 3mo ago>Computers are not good with fractions. You're introducing a currency that does 1/8ths. A computer can handle that a lot better than decimal.
- WhyNotHugo 3mo agoI used GNUCash years ago in Argentina while we had high inflation. Some operations were in local currency and other are Dollars. The currency exchange changing hourly. Tracking finance is a nightmare, since you basically need an exchange rate for every operation.
- phyzix5761 3mo agoHow's the inflation now with Milei's changes? I know charts show its at a 10 year low but reality could feel different.
- vitalikpie 3mo agoLived through something like this after USSR collapsed and before Hryvnya was introduced. Boy I remember the bread cost - 10,000,000 :D
- gostsamo 3mo agoFeels ai generated and waste of time to read even though the topic could be interesting.
- ponyous 3mo ago> Surprisingly written by a human :) Article ends with this
- gostsamo 3mo agoA true surprise if so, but still low in informational density and annoying to read.
- vitalikpie 3mo agohuh, sorry I'm really bad at writing - this is one of my first attempts
- gostsamo 3mo agoYour title promises a story about the spanish traders. It does not deliver, but talks about 3 other different topics that I'm not interested in and jumping between them to test my nerves. If it is about the architecture of whatever you are doing, put the architecture in the title and don't make your title an offhand comment somewhere there. Fucked up clickbite.
- vitalikpie 3mo agoYeah, sorry. It's kind of intentional. Did not want to give it a boring name like "Storing fractions vs decimals".
- e40 3mo agoClickbait is a thing and pisses people off.
- internet_points 3mo agoDon't be. Keep writing! Boring people gonna be boring. I for one found it a fun article with a great title, and I also liked your other https://handson.money/blog/2026-05-20-ai-coding/ https://handson.money/blog/2026-05-20-ai-coding/
- vitalikpie 3mo agoThanks. After all I'm a human too. I'm prone to AI psychosis.
- Buxato 3mo agoI think its not.
- vitalikpie 3mo agoIt is :) No AI slop. I'm intentionally trying to write without LLM (my previous blog posts clearly disclose it).
- ctxc 3mo ago(you mean it's _not_ AI generated)
- vitalikpie 3mo agoYeah this one is my attempt to write without LLMs rewriting my thoughts. P.S. Came to the decision after going through https://thebullshitmachines.com/ https://thebullshitmachines.com/
- deleted 3mo ago[deleted]
- vitalikpie 3mo agoCurious what made you think it's AI slop?
- stronglikedan 3mo agothe overwhelming desire to be an edgy edgelord
- fbuilesv 3mo agoI think English is not the first language of the author ("we are counting fingers and thumbs"?). There's also a `Surprisingly written by a human :)` at the bottom.
- vitalikpie 3mo agoyep, I'm Ukrainian
- fractallyte 3mo agoI strongly disagree. I found the whole article interesting and enlightening – I certainly wasn't aware of the topic before, and I'm glad it was posted on HN. Furthermore, it didn't feel LLM-generated to me. Quirky, yes; nothing wrong with that.
- vitalikpie 3mo agoThanks! I believe blogs and indie products should have personality - otherwise it so easy to overlook them.
- lastorset 3mo agoSo surprised to see people saying this. AI articles tend to be soulless, smooth and samey, this one has quirk, nerdy charm and personality.
- abdullahkhalids 3mo agoI would like to use finance tracking products like GNUCash. But I don't have the patience to download the csv for half a dozen accounts every month (Products like plaid are a no go from a basic security perspective). I am in Canada, and there seems to be no hope that I will have API access to my bank accounts anytime soon. Also, did I mention how much it annoys me that the transaction description differs between the CSV and the PDF statement for pretty much all banks I use.
- vitalikpie 3mo agoAgree. I wish banks have their APIs open. It's 2026 and we have OIDC. But I used to actually pull the CSV once a week and feed it to GnuCash. It's pretty good at auto-categorization. Also I simplified my finances to only a couple of checking accounts and only one credit account (for car rentals).
- rbanffy 3mo ago> I wish banks have their APIs open There needs to be a lot of investment in training and safe defaults though. Most people are not ready to automate even a little of their banking like that. I would even prefer banks had the option to push data to trusted feeds than having open APIs you could call on your own.
- abdullahkhalids 3mo agoOnly need a read only API for financial analysis. I definitely do not support an API for doing financial transactions. That will result in so much hacking and theft.
- doodlesdev 3mo agoYup or restrict API usage to trusted providers. In Brazil, we have a system called Open Finance [1] which allows you to connect bank account, so you can see investments, money spent, credit card spending and limit, etc. from your other bank accounts. Some local personal finance systems integrate into Open Finance to pull all of this data for you. [1]: https://openfinancebrasil.org.br/ https://openfinancebrasil.org.br/
- 6LLvveMx2koXfwn 3mo agoI wonder if Hackernews ranking algorithm has been updated to exclude comments toing and froing about whether or not the article is LLM generated!
- vitalikpie 3mo agohaha, true. Thing is - I'm not a English speaker. But I chat a lot with Claude/ChatGPT - i feel like I'm picking the style from them unintentionally.
- simonebrunozzi 3mo agoDoesn't sound like reality to me. The article looks very much AI-generated. Nothing to do with not being an English native speaker.
- vitalikpie 3mo agohm, I don't have any other ways to prove it. The thing is - I thought this is something LLM can't write about. Just imagine a prompt: "Hey Claude, go ahead and come up with idea why GnuCash stores numbers as fractions and come up with an article for HN". I actually tried it and god damn thing came up with something very similar :D
- fractallyte 3mo agoI am a native English speaker, and I find accusations of LLM-writing exceedingly annoying – to the point where I sometimes intentionally write in that style, just so I can hit back with a profanity.
- vitalikpie 3mo agoYeah, I'm just a developer mostly chatting with LLMs. I hope I'll develop a distinct style some day.
- aitchnyu 3mo agoI was cutting edge, a few people assumed I was a Markhov chain.
- swordlucky666 3mo ago[flagged]
- vitalikpie 3mo agoThanks for idea. I think I'll do another more techy article on this.
- deleted 3mo ago[deleted]
- gus_massa 3mo agoSide question: I'm surprised by the explanation of the 8 in the "real de a a ocho" because "traders counted gold doubloons on their fingers, skipping their thumbs." (and the link to investopedia has a similar explanation). But from https://en.wikipedia.org/wiki/Doubloon https://en.wikipedia.org/wiki/Doubloon > Spanish American gold coins were minted in one-half, one, two, four, and eight escudo denominations, with each escudo worth around two Spanish dollars or $2. The two-escudo (or $4 coin) was the "doubloon" or "pistole", and the large eight-escudo (or $16) was a "quadruple pistole" I think it makes more sense that some time ago it was possible to split some coins in half and quarters, so someone decide to continue the tradition and use base 2 to move up.
- vitalikpie 3mo agoYeah, I thought about it when I first saw the coin cut into pieces - https://www.pirateglossary.com/glossary/pieces-of-eight https://www.pirateglossary.com/glossary/pieces-of-eight But then why didn't they cut it into 10 pieces - https://etc.usf.edu/clipart/40600/40610/pie_01-10a_40610.htm https://etc.usf.edu/clipart/40600/40610/pie_01-10a_40610.htm ?
- Swizec 3mo ago> But then why didn't they cut it into 10 pieces - https://etc.usf.edu/clipart/40600/40610/pie_01-10a_40610.htm https://etc.usf.edu/clipart/40600/40610/pie_01-10a_40610.htm ? Ever tried cutting a cake? It’s a lot easier to visually judge half of a circle segment. You’d need a compass to get accurate tenths (or fifths) and I imagine it is generally frowned upon if some tenths are a lot smaller than others (happens a lot with cake)
- noja 3mo agoEasier to cut into halves?
- vitalikpie 3mo agoYeah. Likely so. While at the same time, they may have some other reason - https://www.youtube.com/watch?v=g9S6qD_Wylw https://www.youtube.com/watch?v=g9S6qD_Wylw
- bgribble 3mo agoI committed to the GnuCash codebase pretty regularly in the 1999-2002 era... I think maybe I actually implemented the fractional representation that the article discusses? Not sure, it was a long time ago! I definitely remember receiving some very heated emails about how this was total nonsense and there was no reason to do anything other than a decimal representation. The phrase "a superhighway of abstraction, leading nowhere" has stuck with me for lo these many years :) good times
- vitalikpie 3mo agoThanks for the info! But did you guys thought about fractional commodities those days? Or was it clear that it is going away?
- bgribble 3mo agoI seem to remember that we were aware that fractional commodities were going away, but exact rational values would still be important to be able to represent historical holdings and transactions.
- vitalikpie 3mo agoIn hindsight do you think it was an right decision or too "pure"?
- bgribble 3mo agoI guess I don't really have an opinion about that. Certainly an exact representation of decimal numbers was essential, and was something we needed to implement at the time, but going to a fully rational numeric stack was arguably overkill. The current value of held assets in another currency isn't really "counting" any more, it's a prediction of the outcome of some future transaction that hasn't happened. So I'm less concerned about exactly computing it than I am in never making a mistake in assets that I am counting, i.e. keeping in one account and only incrementing and decrementing the amount when a transaction occurs.
- wodenokoto 3mo ago> 1. Japanese Yen has no minor units (due to post-WWII inflation) Japanese yen do have minor units, and they are confusingly called sen (which is a homonym for one thousand) Now a days they are mostly used for stock prices. But they exist!
- vitalikpie 3mo agoDid not know that. Will update the article. Thank you!
- dmurray 3mo ago> So, unless you are a Spanish trader from the 16th century or have a book with fractional stocks from the 90s, HandsOnMoney will serve you well. US treasury futures are still priced in 32nds of a dollar increments. Sorry, that's not true, they're quoted in 32nds, but sometimes priced in half-, quarter- or eighth-32nds. One might trade at 105-22.5, which means 105 and 45/64ths. https://www.cmegroup.com/trading/interest-rates/basics-of-us-treasury-futures.html https://www.cmegroup.com/trading/interest-rates/basics-of-us...
- vitalikpie 3mo agoGod damn it! I did not bother to check the treasury. Thank you for catching mistake - I will correct it. I knew there will be something to hunt minor units.
- kulkarnic 3mo agoTreasuries, MBS, most non-corporate bonds all trade in eighths or 64ths. Coupon rates are in eighths as well. Commodities I think no longer do, but did until recently.
- cett 3mo agoReminds me a bit of how in the UK the guinea coin ceased to circulate decades ago but it's still used for bidding on racehorse auctions. 1 guinea = 1.05 pounds You purchase the horse in guineas, seller gets paid in pounds, auctioneer keeps the missing 5% as commission.
- flopsamjetsam 3mo agoThat's fascinating, I remember my Dad telling me you would pay for something in guineas as a sort of tip, but I never knew it was for horses (this is in Australia).
- snypher 3mo agoMy grandpa always called horse racing in general "the guineas", but I always assumed it was "the ginnies" for some reason.
- benj111 3mo agoThe guinea was also seen as posher. So guineas were used as a social indicator
- gus_massa 3mo agoI agree. [Time sink warning] [Fractions warning] There is an interesting video by Lindybeige that explains the old British coin system. The part about the guinea is at minute 42, and in particular explains why it was worth 21 instead of 20. https://youtube.com/watch?v=R2paSGQRwvo https://youtube.com/watch?v=R2paSGQRwvo
- pbreit 3mo agoStoring money as an integer is OK but I've never liked APIs that required financial amounts to be integers. Amounts always eventually need to be displayed to a human as a decimal.
- stronglikedan 3mo agodisplaying as a decimal is nondestructive, whereas doing math with a decimal is asking for trouble
- vitalikpie 3mo agoYeah this is exactly what I do under the hood. All the data is stored as Ints, charts use double for speed, views use decimal to display stuff properly in the user locale. P.S. Doubles are absolute evil for calculations: @Test func test() { var a = Decimal(100.4449315513924) * 100 // It's me being dumb, not noticing that let b = NSDecimalNumber(decimal: a).intValue #expect(b == 10044) // Expectation failed: (b → -8402) == 1044 }
- hakfoo 3mo agoBecause decimal types are still vanishingly scarce as a built-in in modern languages. Storage as an integer often adds complexity because of currency reforms. Decimals can and have been dropped in the past.