From 04940f9c57e4d6aec9cb89175708cc86e6ebbcda Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Fri, 10 Jul 2020 12:01:23 -0600 Subject: [PATCH 1/3] [DOC] Adds alternatives This adds more alternatives including the Auth0 generator (with Stripe like prefix), GlobalID from Rails and KSUID from segment. Relates #27 --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9a0c5a5..15719c5 100644 --- a/README.md +++ b/README.md @@ -118,8 +118,12 @@ ## Alternatives - * [ULID][ulid_url] Universally Unique Lexicographically Sortable Identifier. - + * [Auth0 id-generator][auth0_id_generator_url]: Generates random ids with a prefix (a la Stripe). + * [CID][cid_url]: Content ID - a human-friendly unique ID function built for use with mobile-first/distributed apps. + * [GlobalID][global_id_url]: Reference models by URI - an app wide URI that uniquely identifies a model instance. + * [KUSID][ksuid_url]: K-Sortable Unique IDentifier. + * [ULID][ulid_url]: Universally Unique Lexicographically Sortable Identifier. + * [XID][xid_url]: Globally Unique ID Generator based on the Mongo Object ID algorithm. @@ -140,7 +144,12 @@ [contribution_guidelines]: https://github.com/riddler/.github/blob/master/CONTRIBUTING.md +[auth0_id_generator_url]: https://github.com/auth0/id-generator +[cid_url]: https://github.com/dwyl/cid +[global_id_url]: https://github.com/rails/globalid +[ksuid_url]: https://github.com/segmentio/ksuid [ulid_url]: https://github.com/ulid/spec +[xid_url]: https://github.com/rs/xid [top_ten_reasons_url]: https://changelog.com/posts/top-ten-reasons-why-i-wont-use-your-open-source-project [readme_template_url]: https://github.com/othneildrew/Best-README-Template From beb2cb4fcbdec5deee91e9cf217b10cb76b1c761 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 11 Jul 2020 17:38:11 -0600 Subject: [PATCH 2/3] [DOC] Updates project description This adds a more detailed description including more information about the user experience goals. Relates #27 --- README.md | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 15719c5..170ad22 100644 --- a/README.md +++ b/README.md @@ -10,22 +10,45 @@ *** for the actual URLs. *** See: https://www.markdownguide.org/basic-syntax/#reference-style-links --> -[![Issues][issues_shield]][issues_url] -[![MIT License][license_shield]][license_url] +# UXID [![Issues][issues_shield]][issues_url] [![MIT License][license_shield]][license_url] + +This project contains the specification and reference implementations of a type of unique identifier called a UXID. + +UXID stands for **U**ser e**X**perience focused **ID**entifier and is similar to a [ULID][ulid_url], with a strong focus on UX. + +## Why UXIDs? + +ID generation is a fun topic (for some :) and there are many existing libraries to do so (see [Alternatives]). +UXIDs build on strong concepts from some of these alternatives and have these primary goals: + + * User experience focused + * No coordination, no collisions, no (fixed) cardinality + * Sortable by time + +### User Experience Focused + +Most ID generation libraries focus on creating unique identifiers to work for the system (often distributed) and give little thought to the humans who use them. + +Who are these humans you speak of? There are two large groups: + +* The customer and tech support heros who need to easily pronounce and hear them over the phone. +* The engineers investigating a complex issue with multiple objects of different types. + + From b8ccb5e3385d5082a0572c416aa5ab823ae0c141 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Tue, 14 Jul 2020 20:22:34 -0600 Subject: [PATCH 3/3] fixup Updates link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 170ad22..9eb5db0 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ UXID stands for **U**ser e**X**perience focused **ID**entifier and is similar to ## Why UXIDs? ID generation is a fun topic (for some :) and there are many existing libraries to do so (see [Alternatives]). +ID generation is a fun topic (for some :) and there are many existing libraries to do so (see [Alternatives](#alternatives)). UXIDs build on strong concepts from some of these alternatives and have these primary goals: * User experience focused