![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I think I got it where all this bs about passing around numerical ids of entities instead of entity references (maybe lazy) come from. It's like 'error code'. It comes from the ancient c programming, where we just could not allocate a string for a readable piece of text, or for the data that may need some efforts to instantiate or allocate.
In short. It's stupid to pass around "ids" in a program.
In short. It's stupid to pass around "ids" in a program.
no subject
Date: 2015-10-02 12:36 am (UTC)And I never suggested to pass around internal references outside. This may be an interesting problem, passing around internal references; even a numerical id is an internal reference if we look from outside. I routinely talk to our analysts like this - "did it work now for account number 10567"? Now imagine... well, we all know how it is. Phone number (why the fuck it is still a number?), SSN, card number (why number?), etc.
no subject
Date: 2015-10-02 01:08 am (UTC)Numbers can be trivially entered by a blind, mute person using their foot prosthesis.
no subject
Date: 2015-10-02 01:28 am (UTC)Have you ever developed any software for those phones? I did. Not only I know about their CPU registers, I even know which specific SIMD instruction sets they support.
>I never suggested to pass around internal references outside
“Outside” is a big place sometimes hard to define. If you’re working on a big system like Facebook or Google that spans thousands of servers, where exactly is “outside”?
>why the fuck it is still a number?
Many reasons. The most obvious one is 3G TS 23.038 standard: it’s nearly impossible to quickly replace the whole cellular network infrastructure in the world.
>card number (why number?)
Merely a legacy.
Nowadays, the number is only used when you buy online. In the rest of the use cases the EMV part of your card (https://en.wikipedia.org/wiki/EMV) kicks in.
no subject
Date: 2015-10-02 05:00 am (UTC)And yes, I understand that replacing the network standards is pretty hard. Unlike the software.
By "outside" I mean outside one single piece of code.
no subject
Date: 2015-10-02 07:09 am (UTC):) funny, but in the 21st century buying online is the overwhelming majority of the cases (even if not by volume).
no subject
Date: 2015-10-02 04:45 am (UTC)What do you suggest instead? Card identifiers must be
1. Unique
2. Long enough so they are hard to remember
3. Hard to guess based on publicly available information
4. Easily transferable by voice over phone lines
5. Short enough to fit in paper forms
6. Replaceable in case of compromise
Anything based on a person's obviously fails #1, #3 and #5.
Some generated words like "GreatBrownFoxJumpsOverALazyDog" fail #4 and #5.
Any form of long hexadecimal gibberish also fails #4 and #5.
Decimal numbers 10-20 digits long work perfectly.
no subject
Date: 2015-10-02 04:56 am (UTC)no subject
Date: 2015-10-02 07:07 am (UTC)