Remix.run Logo
Sing-song: a speakable encoding for long numbers and keys(blog.vrypan.net)
19 points by zdw 5 days ago | 13 comments
andrelaszlo 2 days ago | parent | next [-]

This is cool! The inclusion of z kind of breaks this for my fellow Scandinavians though. Many of us don't really hear the difference between z and s, and even if we do we can't pronounce it properly.

The P/B distinction will be difficult for many people as well.

I believe this is one of the reasons that Toki Pona only has nine consonants (/p, t, k, s, m, n, l, j, w/) and five vowels (/a, e, i, o, u/).

Somme kind of error correcting would be nice too, perhaps?

vintagedave 2 days ago | parent | next [-]

Maybe Z as in 'zed'?

It reminds me of yan tan tethera [0], leading to such glorious encodings as 'Yan-a-bub' (eleven, County Durham), 'Tetherabum' (eighteen, Swaledale and Tong in Yorkshire) and 'Fotherydik' (fourteen, West Country Dorset.) Each variant only seems to go up to twenty, but that's enough for hex...

[0]: https://en.wikipedia.org/wiki/Yan_tan_tethera

sudahtigabulan 2 days ago | parent | prev [-]

> The P/B distinction will be difficult for many people as well.

P/V/F confusion is also a thing, in Indonesia.

V and F tend to be pronounced as P. And if you pronounce the letter "correctly", some Indonesians might not recognize the word. They've never heard it this way.

notarobot123 2 days ago | parent | prev | next [-]

> vako-poku-piki-sino-dumi-wigo-bumo-subu-kuwu-suju-joku-wuru-libi-bafa-modu-pabu-zuro-kiva-givo-liju-pomu-ra

I like it. It feels like learning a magical incantation from some ancient lost language.

fwlr 2 days ago | parent | prev | next [-]

I highly recommend adding example words to the IPA chart:

    a    i     o     u     b     d
    /a/  /i/   /o/   /u/   /b/   /d/
    cot  feet  frog  rude  bit   dig

etc.
vrypan 2 days ago | parent [-]

Good idea.

japanuspus 2 days ago | parent | prev | next [-]

The IPA chart is missing `w`.

As a non-native English-speaker, I would say that the `v`/`w` pronunciation distinction would be a major challenge: Asking someone to pronounce "Darth Vader" is a pretty good check, at least in the Nordics.

totetsu 2 days ago | parent | prev | next [-]

input 0000000000000000000000000000000000000000000000000000000000000000 sing-song baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-baba-ba

this is not memorable.. It could use another pass to handle repeatings words like K8s, or .. some set rhythm patters that help you chunk and remember the overall count .. Baba-BAba-baba, Baba-BAba-baba or something ..

They didn't mention Mnemonic major system in the prior, art.

atoav 2 days ago | parent [-]

How do you usually remember uuids or hashes if you have to?

Many people basically just read the start and the end and compare that, given the huge collision space.

I find 51ac0759fc4d far less memorable than kalo-tadu-komu-tigi. Also if I had to tell one of those over the telephone to my parents and my life depended on it I would choose the latter.

NitpickLawyer 2 days ago | parent [-]

> Also if I had to tell one of those over the telephone to my parents and my life depended on it I would choose the latter.

Why not adopt the crypto (as in coins) seed thing with random words? Those are much more human readable, imo than "bubu bibi baba".

rjeli 2 days ago | parent | prev | next [-]

See also the @p encoding system used in urbit: https://cp4space.hatsya.com/2021/05/12/urbit-for-mathematici... https://github.com/urbit/urbit-ob

  > ob.patp('0')
  '~zod'
  > ob.patp2dec('~nidsut-tomdun')
  '15663360'
  > ob.hex2patq('010203')
  '~doznec-binwes'
  > ob.patq2hex('~marned-wismul-nilsev-botnyt')
  '01ca0e51d20462f3'
  > ob.isValidPatq('~marned-wismul-nilsev-botnyt')
  > true
Each byte is converted to a three letter syllable, from a hand-written LUT optimized for pronounceability, & different LUTs for even and odd bytes.
TacticalCoder a day ago | parent | prev | next [-]

We've got a solution for this already...

Raising my kid in three languages (english, french and spanish) and over four countries now, spelling words letter by letter was bound to be a never-ending problem (like french 'i' 's pronouciation is basically english 'e' etc.) so I decided, very early on, to teach both my wife and my kid the NATO alphabet.

It is really very convenient. As soon as there's any doubt, we switch to NATO alphabet.

The other day my daughter and I were confirming a code and I read a "fiver" and she told me: "wait, you skipped 'sierra'". Turns out I miswrote down a '5' into a 's' but during verification, we caught it. Which is precisely why we use that kind of stuff. Now we've got our own "code" to differentiate letters from digits too (for when we write codes down): every digit we place a little dot underneath it and every uppercase we underline it.

Besides that, there's also always the memorizing method from the I.T. Crowd:

https://youtu.be/HWc3WY3fuZU

a day ago | parent | prev [-]
[deleted]