If anyone wants a horrible python program that will write integers in cuneiform sexegesimal (base sixty) using unicode so you can paste it all over the place in emails, documents and text messages I have just the thing.
-
The answers for the last table are in the wikipedia article. There are some mistakes but the numbers are shockingly largeβ my students were impressed they did this without calculators.
Someone on etsy made a replica, although, I think it's a bit larger than the original.
To make one we'd need a cuneiform stylus. I wonder what kind of clay they used back in old Babylon?
Seems wrong to make it of sculpy...
-
If anyone wants a horrible python program that will write integers in cuneiform sexegesimal (base sixty) using unicode so you can paste it all over the place in emails, documents and text messages I have just the thing. Use with https://en.wikipedia.org/wiki/Plimpton_322
For maximum amusement.
@futurebird now i'm going to write something to rewrite factions in egyptian fractions thanks
-
@futurebird now i'm going to write something to rewrite factions in egyptian fractions thanks
I would like this please, those gave me a headache last time I messed with them.
-
@futurebird I wonder what the uses for base-60 would be. Maybe for representing hours and minutes?
I know the ancient Babylonians used base-60, but other than that I can't think of any uses!
The Mayan calendar is equally interesting:
Ages ago I read a book called 'Time Among the Maya' that was pretty good.
Base 60, being divisible by 12 makes for a nice number system arithmetic-wise.
-
If anyone wants a horrible python program that will write integers in cuneiform sexegesimal (base sixty) using unicode so you can paste it all over the place in emails, documents and text messages I have just the thing. Use with https://en.wikipedia.org/wiki/Plimpton_322
For maximum amusement.
If any unicode/python nerds want to show me how to use the unicode addresses to make the string look-up table I'd *love* that but I found working with python and unicode very annoying and just ended up using the unicode support in trinket. Which is setting a bad example for The Children.
Think of the children!
-
If any unicode/python nerds want to show me how to use the unicode addresses to make the string look-up table I'd *love* that but I found working with python and unicode very annoying and just ended up using the unicode support in trinket. Which is setting a bad example for The Children.
Think of the children!
Part of the problem is there are multiple representations for some of the numbers and I've used the ones that look most like the Plimpton 322 tablet. But, that means they aren't neatly in order. And just to be annoying it seems like the unicode block doesn't have all 59 symbols as characters, so the symbol list has to contain strings. Don't even get me started on there being no zero. But, we can blame THAT on the Babylonians.
-
Someone on etsy made a replica, although, I think it's a bit larger than the original.
To make one we'd need a cuneiform stylus. I wonder what kind of clay they used back in old Babylon?
Seems wrong to make it of sculpy...
@futurebird there must be copious archaelogical reserch into this, but I've no idea where to look. To me, it looks like kaolin based clay, with maybe a little bit of iron oxide, but surely not very much iron oxide.
-
If any unicode/python nerds want to show me how to use the unicode addresses to make the string look-up table I'd *love* that but I found working with python and unicode very annoying and just ended up using the unicode support in trinket. Which is setting a bad example for The Children.
Think of the children!
Python 3.13.2 (main, Feb 5 2025, 08:05:21) [GCC 14.2.1 20250128] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> symbols = ["π", "π"]
>>> symbols[0]
'π'
>>>Probably didn't get the problem. Do you might explaining?
-
Python 3.13.2 (main, Feb 5 2025, 08:05:21) [GCC 14.2.1 20250128] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> symbols = ["π", "π"]
>>> symbols[0]
'π'
>>>Probably didn't get the problem. Do you might explaining?
I am not sure (I don't know enough cuneiform):
>>> for i in range(0,20):
... print(chr(ord(symbols[0])+i), "\n")
...
ππ
π
π
π
π
π
π
π
π
π
π
π‘
π’
π£
π€
π₯
π¦
π§
π¨
So you can find the characters by using ord/char and adding some offset. This seems to work nice until ~9. The symbol you show, though, look different.
-
I am not sure (I don't know enough cuneiform):
>>> for i in range(0,20):
... print(chr(ord(symbols[0])+i), "\n")
...
ππ
π
π
π
π
π
π
π
π
π
π
π‘
π’
π£
π€
π₯
π¦
π§
π¨
So you can find the characters by using ord/char and adding some offset. This seems to work nice until ~9. The symbol you show, though, look different.
chr(n)
is only defined up to n=256 -
Part of the problem is there are multiple representations for some of the numbers and I've used the ones that look most like the Plimpton 322 tablet. But, that means they aren't neatly in order. And just to be annoying it seems like the unicode block doesn't have all 59 symbols as characters, so the symbol list has to contain strings. Don't even get me started on there being no zero. But, we can blame THAT on the Babylonians.
I can't prove it but it seems like they just added the cuneiform characters to unicode as they were requested by whoever needed them for their papers and that's the order they are in. "can you add these?" ... and a bunch of new ones get tacked on.
-
Interesting! I didn't realize the distinction between "π" and "π" was so that you could make multiple character digits, for 10's, 20's, 30's, 40's and 50's. It's like a base 10 numbering system rejiggered so it works in base 60. So with "16" 1, and 6 directly map to π and π, so ππ equals 16. But if you see ππππ it represents the number
16 * 60+16
or 976 in base 10, not 1616 in base 10. It's like base 10 for any single digit, then base 60 between multiple digits!It's odd how they use base 10 inside of the base 60. It sounds like it'd be a big mess, but it's not that hard to work with once you get into it.
-
I can't prove it but it seems like they just added the cuneiform characters to unicode as they were requested by whoever needed them for their papers and that's the order they are in. "can you add these?" ... and a bunch of new ones get tacked on.
@futurebird I'm pretty sure that's exactly how the process works, there is a committee that you can submit requests to asking for new characters to be added, they review them periodically and assign numbers for each new one then release a new version of the standard which font makers and operating systems then target
-
@futurebird I'm pretty sure that's exactly how the process works, there is a committee that you can submit requests to asking for new characters to be added, they review them periodically and assign numbers for each new one then release a new version of the standard which font makers and operating systems then target
I know it's a bad idea and can think of so many reasons not to do it... but my SOUL longs for them to be in some kind of more coherent order... so that the indices could be used in elegant ways.
But, I guess that's why I have to write little programs like the one that I made.
-
chr(n)
is only defined up to n=256@futurebird @glitzersachen Not in my copy of python (3.13), help(chr) says:
"Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff." -
@futurebird @glitzersachen Not in my copy of python (3.13), help(chr) says:
"Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff."I'll try it in python 3 when I get home.
-
If any unicode/python nerds want to show me how to use the unicode addresses to make the string look-up table I'd *love* that but I found working with python and unicode very annoying and just ended up using the unicode support in trinket. Which is setting a bad example for The Children.
Think of the children!
@futurebird also I just found out through reading the docs that python has the library `unicodedata` and within that, there is `unicodedata.numeric` which works on cuneiform, maybe you could use that?
Also failing that `unicodedata.lookup` could be used to get the character values in a readable way
-
@futurebird also I just found out through reading the docs that python has the library `unicodedata` and within that, there is `unicodedata.numeric` which works on cuneiform, maybe you could use that?
Also failing that `unicodedata.lookup` could be used to get the character values in a readable way
Wait. Does this mean there are default integer values for these? So I could do math on them?
I'm a little skeptical because there are multiple symbols with the same meaning and some are missing...
-
chr(n)
is only defined up to n=256@futurebird This used to be the case when
str
andunicode
used to be different data types. In modern Python, they have been unified, though. -
@futurebird This used to be the case when
str
andunicode
used to be different data types. In modern Python, they have been unified, though.So python 2 is why I have been suffering. WHELP