Comments on: Qu’est-ce qu’un UUID et à quoi ça sert ? http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: Krysztof von Murphy http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6760 Fri, 08 Mar 2013 21:56:50 +0000 http://sametmax.com/?p=5179#comment-6760 Dans les clés primaires de table, l’UUID ça marche, oui, mais c’est un cauchemar pour déboguer. Si je cherche la PK 1234 dans plusieurs tables ou que je crée des requêtes avec ça, je m’en sors. Mais avec des UUID qui tiennent à peine dans les colonnes sur l’écran ? Je pleure…
(Cas réel : le CRM de SAP) (on va dire que c’est un progrès par rapport aux tables sans clés primaire technique de R/3, même éditeur…)
Bref, faut vraiment en avoir besoin.

]]>
By: Sam http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6745 Fri, 08 Mar 2013 14:36:33 +0000 http://sametmax.com/?p=5179#comment-6745 Les usages sont différents.

uuid5 génère un uuid à partir d’une donnée. C’est juste un hash sha1 qui prend en compte un name space. Lui passer deux fois la donnée donne deux fois le même résultat:

>>> uuid5(uuid.NAMESPACE_URL, 'http://sametmax.com')
UUID('4c29cbcb-4c6f-5195-b0a8-1636fa52c4a0')
>>> uuid5(uuid.NAMESPACE_URL, 'http://sametmax.com')
UUID('4c29cbcb-4c6f-5195-b0a8-1636fa52c4a0')

– uuid4() est purement aléatoire. Chaque appel donnera quelque chose de différent.

]]>
By: JeromeJ http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6740 Fri, 08 Mar 2013 12:55:26 +0000 http://sametmax.com/?p=5179#comment-6740 Si on a uuid5 de dispo sur notre machine, c’est plus mieux de choisir ça non ?

]]>
By: Sam http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6728 Thu, 07 Mar 2013 19:37:13 +0000 http://sametmax.com/?p=5179#comment-6728 Les tirets sont seulement pour faciliter la lecture/dictée/comparaison visuelle (et identification de version) de l’UUID. Quand on stocke l’uuid, c’est plutôt sous forme de raw bytes ou de int.

Raisons de ne pas choisir md5(rand()) :

– c’est un standard. Quand on parle d’uuid v4, c’est la même chose quel que soit le langage (format, longueur de l’uuid, taux de collision, etc)
– c’est explicite (quand on voit uuid4(), on sait ce qu’on va faire avec, alors qu’un md5() peut servir à plein de choses)
– on a detecté des collisions dans md5, certes minimes, mais suffisantes pour emmerder quelqu’un qui gère des bases de données gigantesques avec des milliards d’insertion secondes (ex: google qui utilise les uuid pour ses clés dans big table)
– ça évite de faire des conneries car si on s’y connait pas, choisir la bonne fonction pour rand() c’est risquer de se planter. La crypto et la génération peusdo aléatoire, c’est compliqué.

]]>
By: le hollandais volant http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6727 Thu, 07 Mar 2013 19:21:31 +0000 http://sametmax.com/?p=5179#comment-6727 Mh… Mais pourquoi ne pas utiliser quelque chose comme md5(rand()) ? En choisissant une fonction rand() aussi aléatoire que celui pour UUID.

Le UUID est bien joli avec ses tirets dedans, mais y’a une raison à leur présence dedans ?

]]>
By: Sam http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6722 Thu, 07 Mar 2013 14:02:48 +0000 http://sametmax.com/?p=5179#comment-6722 J’ai pourtant éditer les bytes que je pensaient responsable de l’echec critique, mais bon, visiblement ça marche pas mieux. Si quelqu’un trouve une solution simple, qu’il fasse tourner.

]]>
By: Glandos http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6721 Thu, 07 Mar 2013 13:51:58 +0000 http://sametmax.com/?p=5179#comment-6721 @Sam: Merci pour la correction !
Je voulais renvoyer une commande style wget http://sametmax.com/feed/ -O - -o /dev/null | xmllint --valid --noout - mais maintenant que le flux a changé…
Je précise qu’avant de râler, j’ai téléchargé le RSS avec wget, et j’ai fait une validation avec Netbeans (c’était le seul outil que j’avais sous la main à ce moment). Et ça avait également échoué.
Google Reader et Liferea sont donc sûrement de meilleurs lecteurs, plus tolérants sur les erreurs…

]]>
By: Anucunnilinguiste http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6709 Thu, 07 Mar 2013 00:29:50 +0000 http://sametmax.com/?p=5179#comment-6709 @Sam : Merci, mais ça dépend fortement de mon humeur ;)

Aujourd’hui, il faisait beau. Enfin, je ne voudrais pas que l’on subodore que je ne sois seulement un trou du cul, un trouble-fête, un agitateur voire pire un salafiste, “j’ai beaucoup changé depuis le massacre de la rave de Villemont” ;) *

*http://www.allocine.fr/film/fichefilm_gen_cfilm=15558.html

]]>
By: Sam http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6708 Wed, 06 Mar 2013 23:07:46 +0000 http://sametmax.com/?p=5179#comment-6708 Je note le premier commentaire constructif d’@Anucunnilinguiste depuis qu’il a rejoint notre blog. Mais ça valait le coup d’attendre, c’est une très bonne lecture. Ca mérite un tampon tient.

]]>
By: Anucunnilinguiste http://sametmax.com/quest-ce-quun-uuid-et-a-quoi-ca-sert/#comment-6702 Wed, 06 Mar 2013 22:05:11 +0000 http://sametmax.com/?p=5179#comment-6702 Quelques informations supplémentaires sur les UUID qui me semblent importantes :

http://blog.ptsecurity.com/2012/10/random-number-security-in-python.html

http://bugs.python.org/issue15206

http://programmers.stackexchange.com/questions/130261/uuid-collisions

]]>