June 6, 2026 • Author: Vitalik Horse arse set the standard for railways. Spanish traders set it for GnuCash database design.
TLDR: Spanish traders in the 1600s did not want to count their thumbs, which influenced GnuCash's database design choices in 1997. Much like a horse's arse set the standard for railways. How seemingly odd design turns out to be a genius solution that serves people pretty well.
It's one of those nights. A cup of hot coffee is on the table. I'm implementing a commodities support in HandsOnMoney which looks absolutely trivial on the surface, but is quite deep in reality. After all, what can be simpler than currency - there are dollars and cents. What can be simpler than storing a number and calculating totals?
Wait for it. There are multiple layers in this…
Layer one. Cultural.
There is not always 100 cents in a dollar. Well, there is. But other currencies may have no "cents" or have a thousand "cents". Those "cents" are generally called "minor units".
Here are a few concrete examples:
Japanese Yen has no minor units (due to post-WWII inflation) The Kuwaiti Dinar has a thousand minor units (this allows the country to use smaller increments of value and maintain precise pricing for trade) And Bitcoin has 100 million Satoshis!
But wait for it. There are even historical currency- real de a ocho that could be divided into 8 pieces! So 1/8th of a coin was the smallest indivisible unit!
Which brings us to the next layer - how in the world do we store it?
... continue reading