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).
> 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.
Yes, my historical understanding is definitely that it could be split into two easily, not that we counted with our fingers skipping the thumb (Spaniard here).
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)
8 pieces is easier for a human than 10. You halve it, then again, then halve the remaining quarters. For 10 you'd need to work harder to get the angles right and that's a lot harder.
That'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).
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.
> 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.
I 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.
I 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
I 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.
I 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.
I 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.
Well, there is legislation before Committee to mandate open APIs that any accredited institution can use. As a consumer you will not be eligible, but you will be allowed to pay some third-party to pull your data from your bank and save it in their database, after which maybe they might allow you to download it in their proprietary format should they choose.
Me, I use plain-text accounting (hledger) that automatically imports the CSVs from my bank and categorizes transactions automatically, and I wrote some quick scripts using Python to import the PDFs from my brokerages and paystubs. It's not automated pulls but I only have a handful of accounts so it's really not a pain to manually pull statements once a month and run the import scripts. It takes me longer to reconcile everything to the penny then it does to do the imports, and it's a whale of a lot faster than manually entering through GNUCash. Plus, it's plain text so all you need is vim, git, and the command line.
The openbanking thing has been going on for 4-5 years now, with no end in sight. The banks simply do not want to enable a system which allows third party apps to step into the space, and they are too large and lobby a lot. I don't expect anything to happen for a while still.
Import-only is the lazy way. :) If you want, GnuCash also has features to support manually entering each transaction as it occurs.
Then GnuCash has features to match up financial institutions data exports against your transaction splits, see the discrepancies, and then reconcile against their PDF statements.
It's a way of life, but you always know what money you have, where. Although that sounds like something for wealthy people, I'd say it's actually more important the less money you have.
When I was a poor student, I carried around a small notepad in my pocket and a pencil and wrote down every transaction. Only way I ensured discipline to not waste money and then go hungry later.
But now I am ruined by smartphones, which are way too slow to type in every transaction manually.
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.
Yup 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.
I'm using self-hosted Sure.am and also using SimpleFin to connect to Canadian banks. It works, but barely, since it effectively scrapes with no real API access. I have to login daily to update 2-FA on various accounts, and have suffered account lockouts a couple of times, due to "suspicious activity".
But it still beats downloading multiple exports from the bank and importing it manually...
Storing 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.
Yeah 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
}
hm, 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
I 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.
The discussion on Spanish traders set the standa raises interesting points. In practical applications, the key challenge is balancing performance with maintainability. Would be valuable to see more concrete examples of trade-offs.
You're not. You're not bad at all. Please ignore the negatives here, they're certainly more a result of AI paranoia/fatigue than meaningful criticism.
Anyone reading this and who is complaining that it's too long and content-light? Respectfully, you really need to check yourselves, you're probably the one with the "internet brain" dopamine or whatever problem. This is NOT an unreasonable amount/style of words for what is said.
Your 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.
Yeah, I got an AI vibe off it too, and was surprised to find this. The problem is, to quote Orson Welles, "it's not as conversationally written. It's full if things that are only correct because they're grammatical, but it's tough on the ear, you see." AI writing bears a resemblance to the most insufferable marketing speak, so if you ape that kind of writing in an attempt to sound punchy or whatever, you're going to be accused of being a bot.
That would explain a lot. Grammarly went full LLM brainrot a few years back, so if you rely on its suggestions your writing will... sound a certain way.
Yeah this one is my attempt to write without LLMs rewriting my thoughts.
P.S. Came to the decision after going through https://thebullshitmachines.com/
I 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.
Side 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
> 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.
Yes, my historical understanding is definitely that it could be split into two easily, not that we counted with our fingers skipping the thumb (Spaniard here).
Yeah, I thought about it when I first saw the coin cut into pieces - 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 ?
> But then why didn't they cut it into 10 pieces - 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)
8 pieces is easier for a human than 10. You halve it, then again, then halve the remaining quarters. For 10 you'd need to work harder to get the angles right and that's a lot harder.
Easier to cut into halves?
Yeah. Likely so. While at the same time, they may have some other reason - https://www.youtube.com/watch?v=g9S6qD_Wylw
Reminds 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.
That'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).
My grandpa always called horse racing in general "the guineas", but I always assumed it was "the ginnies" for some reason.
The guinea was also seen as posher. So guineas were used as a social indicator
I 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
> 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...
God 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.
Treasuries, 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.
> 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!
Did not know that. Will update the article. Thank you!
I 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.
Lived through something like this after USSR collapsed and before Hryvnya was introduced. Boy I remember the bread cost - 10,000,000 :D
How's the inflation now with Milei's changes? I know charts show its at a 10 year low but reality could feel different.
I 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
Thanks for the info! But did you guys thought about fractional commodities those days? Or was it clear that it is going away?
I 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.
In hindsight do you think it was an right decision or too "pure"?
I 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.
I 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.
Well, there is legislation before Committee to mandate open APIs that any accredited institution can use. As a consumer you will not be eligible, but you will be allowed to pay some third-party to pull your data from your bank and save it in their database, after which maybe they might allow you to download it in their proprietary format should they choose.
Me, I use plain-text accounting (hledger) that automatically imports the CSVs from my bank and categorizes transactions automatically, and I wrote some quick scripts using Python to import the PDFs from my brokerages and paystubs. It's not automated pulls but I only have a handful of accounts so it's really not a pain to manually pull statements once a month and run the import scripts. It takes me longer to reconcile everything to the penny then it does to do the imports, and it's a whale of a lot faster than manually entering through GNUCash. Plus, it's plain text so all you need is vim, git, and the command line.
The openbanking thing has been going on for 4-5 years now, with no end in sight. The banks simply do not want to enable a system which allows third party apps to step into the space, and they are too large and lobby a lot. I don't expect anything to happen for a while still.
I was contemplating between hledger and GnuCash for a while and then choose GnuCash because it has pretty good UX for transactions entry.
The missing piece for me was a mobile app. So trying closing this gap with HandsOnMoney.
But I'll be honest - I'm putting off the statement import as much as I can until my financial anxiety kicks in.
Import-only is the lazy way. :) If you want, GnuCash also has features to support manually entering each transaction as it occurs.
Then GnuCash has features to match up financial institutions data exports against your transaction splits, see the discrepancies, and then reconcile against their PDF statements.
It's a way of life, but you always know what money you have, where. Although that sounds like something for wealthy people, I'd say it's actually more important the less money you have.
When I was a poor student, I carried around a small notepad in my pocket and a pencil and wrote down every transaction. Only way I ensured discipline to not waste money and then go hungry later.
But now I am ruined by smartphones, which are way too slow to type in every transaction manually.
Agree. 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).
> 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.
Only 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.
Yup 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/
Agree on this. Current situation is kinda broken:
- people do not trust Plaid and Finicity - data is captive inside of bank portals - each damn CSV has it's own format
I'm using self-hosted Sure.am and also using SimpleFin to connect to Canadian banks. It works, but barely, since it effectively scrapes with no real API access. I have to login daily to update 2-FA on various accounts, and have suffered account lockouts a couple of times, due to "suspicious activity".
But it still beats downloading multiple exports from the bank and importing it manually...
I simplified to just 2 accounts and I enter them manually twice a week. I keep a detailed budget so it helps to do it that frequently.
Do you do budget in GnuCash or somewhere else?
Storing 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.
displaying as a decimal is nondestructive, whereas doing math with a decimal is asking for trouble
Yeah 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:
Because 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.
>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.
I wonder if Hackernews ranking algorithm has been updated to exclude comments toing and froing about whether or not the article is LLM generated!
haha, 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.
Doesn't sound like reality to me. The article looks very much AI-generated. Nothing to do with not being an English native speaker.
hm, 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
I was cutting edge, a few people assumed I was a Markhov chain.
I 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.
Yeah, I'm just a developer mostly chatting with LLMs. I hope I'll develop a distinct style some day.
The discussion on Spanish traders set the standa raises interesting points. In practical applications, the key challenge is balancing performance with maintainability. Would be valuable to see more concrete examples of trade-offs.
Thanks for idea. I think I'll do another more techy article on this.
Feels ai generated and waste of time to read even though the topic could be interesting.
I 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.
yep, I'm Ukrainian
So surprised to see people saying this. AI articles tend to be soulless, smooth and samey, this one has quirk, nerdy charm and personality.
> Surprisingly written by a human :)
Article ends with this
A true surprise if so, but still low in informational density and annoying to read.
huh, sorry I'm really bad at writing - this is one of my first attempts
I really enjoyed the read. Not everything needs to be some sort of utilitarian information density optimized reading piece.
Keep up the good work!
Thanks!
You're not. You're not bad at all. Please ignore the negatives here, they're certainly more a result of AI paranoia/fatigue than meaningful criticism.
Anyone reading this and who is complaining that it's too long and content-light? Respectfully, you really need to check yourselves, you're probably the one with the "internet brain" dopamine or whatever problem. This is NOT an unreasonable amount/style of words for what is said.
You're not bad at writing. You have your own style. Keep it up! This was an interesting article.
Thanks :)
Your 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.
Yeah, sorry. It's kind of intentional. Did not want to give it a boring name like "Storing fractions vs decimals".
Don'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/
Thanks. After all I'm a human too. I'm prone to AI psychosis.
Clickbait is a thing and pisses people off.
Yeah, I got an AI vibe off it too, and was surprised to find this. The problem is, to quote Orson Welles, "it's not as conversationally written. It's full if things that are only correct because they're grammatical, but it's tough on the ear, you see." AI writing bears a resemblance to the most insufferable marketing speak, so if you ape that kind of writing in an attempt to sound punchy or whatever, you're going to be accused of being a bot.
I think it's because thought-process is done in Russian, translated into English and the checked for grammar mistakes with Grammarly.
That would explain a lot. Grammarly went full LLM brainrot a few years back, so if you rely on its suggestions your writing will... sound a certain way.
I'm using a free version, so if an LLM suggestions slipped in - it only a couple of them.
I think its not.
It is :) No AI slop. I'm intentionally trying to write without LLM (my previous blog posts clearly disclose it).
(you mean it's _not_ AI generated)
Yeah this one is my attempt to write without LLMs rewriting my thoughts. P.S. Came to the decision after going through https://thebullshitmachines.com/
I 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.
Thanks! I believe blogs and indie products should have personality - otherwise it so easy to overlook them.
Curious what made you think it's AI slop?
the overwhelming desire to be an edgy edgelord