{"id":29180,"date":"2019-01-05T16:48:15","date_gmt":"2019-01-05T14:48:15","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=29180"},"modified":"2019-01-05T16:48:23","modified_gmt":"2019-01-05T14:48:23","slug":"ulid-universally-unique-lexicographically-sortable-identifier","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/","title":{"rendered":"ULID &#8211; Universally Unique Lexicographically Sortable Identifier"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<p class=\"wp-block-paragraph\">If you thought that <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\">UUID<\/a> was the end of universally unique identifiers, think again.  Here&#8217;s the <a href=\"https:\/\/github.com\/ulid\/spec\">ULID spec<\/a>, with the following improvements:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>128-bit compatibility with UUID<\/li><li>1.21e+24 unique ULIDs per millisecond<\/li><li>Lexicographically sortable!<\/li><li>Canonically encoded as a 26 character string, as opposed to the 36 character UUID<\/li><li>Uses Crockford&#8217;s base32 for better efficiency and readability (5 bits per character)<\/li><li>Case insensitive<\/li><li>No special characters (URL safe)<\/li><li>Monotonic sort order (correctly detects and handles the same millisecond)<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s how it looks:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ulid() \/\/ 01ARZ3NDEKTSV4RRFFQ69G5FAV<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And there&#8217;s a wide selection of libraries implementing ULID for all major programming languages.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>If you thought that UUID was the end of universally unique identifiers, think again. Here&#8217;s the ULID spec, with the following improvements: 128-bit compatibility with UUID 1.21e+24 unique ULIDs per millisecond Lexicographically sortable! Canonically encoded as a 26 character string, as opposed to the 36 character UUID Uses Crockford&#8217;s base32 for better efficiency and readability &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">ULID &#8211; Universally Unique Lexicographically Sortable Identifier<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"ULID - Universally Unique Lexicographically Sortable Identifier #WebDev #PHP #security ","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[38,200,1216,1330],"keyring_services":[],"class_list":["post-29180","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-php","tag-security","tag-standards","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"If you thought that UUID was the end of universally unique identifiers, think again. Here&#039;s the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford&#039;s base32 for better efficiency and readability (5 bits per character)Case\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"ULID \u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"If you thought that UUID was the end of universally unique identifiers, think again. Here&#039;s the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford&#039;s base32 for better efficiency and readability (5 bits per character)Case\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-01-05T14:48:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-01-05T14:48:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"ULID \u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"If you thought that UUID was the end of universally unique identifiers, think again. Here&#039;s the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford&#039;s base32 for better efficiency and readability (5 bits per character)Case\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#blogposting\",\"name\":\"ULID \\u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov\",\"headline\":\"ULID &#8211; Universally Unique Lexicographically Sortable Identifier\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2019-01-05T16:48:15+02:00\",\"dateModified\":\"2019-01-05T16:48:23+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, Web work, PHP, security, standards, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#listItem\",\"name\":\"ULID &#8211; Universally Unique Lexicographically Sortable Identifier\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#listItem\",\"position\":4,\"name\":\"ULID &#8211; Universally Unique Lexicographically Sortable Identifier\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/\",\"name\":\"ULID \\u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov\",\"description\":\"If you thought that UUID was the end of universally unique identifiers, think again. Here's the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford's base32 for better efficiency and readability (5 bits per character)Case\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/01\\\/05\\\/ulid-universally-unique-lexicographically-sortable-identifier\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2019-01-05T16:48:15+02:00\",\"dateModified\":\"2019-01-05T16:48:23+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"ULID \u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov","description":"If you thought that UUID was the end of universally unique identifiers, think again. Here's the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford's base32 for better efficiency and readability (5 bits per character)Case","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#blogposting","name":"ULID \u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov","headline":"ULID &#8211; Universally Unique Lexicographically Sortable Identifier","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2019-01-05T16:48:15+02:00","dateModified":"2019-01-05T16:48:23+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#webpage"},"articleSection":"All, Programming, Technology, Web work, PHP, security, standards, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#listItem","name":"ULID &#8211; Universally Unique Lexicographically Sortable Identifier"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#listItem","position":4,"name":"ULID &#8211; Universally Unique Lexicographically Sortable Identifier","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/","name":"ULID \u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov","description":"If you thought that UUID was the end of universally unique identifiers, think again. Here's the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford's base32 for better efficiency and readability (5 bits per character)Case","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2019-01-05T16:48:15+02:00","dateModified":"2019-01-05T16:48:23+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"ULID \u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov","og:description":"If you thought that UUID was the end of universally unique identifiers, think again. Here's the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford's base32 for better efficiency and readability (5 bits per character)Case","og:url":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2019-01-05T14:48:15+00:00","article:modified_time":"2019-01-05T14:48:23+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"ULID \u2013 Universally Unique Lexicographically Sortable Identifier - Leonid Mamchenkov","twitter:description":"If you thought that UUID was the end of universally unique identifiers, think again. Here's the ULID spec, with the following improvements: 128-bit compatibility with UUID1.21e+24 unique ULIDs per millisecondLexicographically sortable!Canonically encoded as a 26 character string, as opposed to the 36 character UUIDUses Crockford's base32 for better efficiency and readability (5 bits per character)Case","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"29180","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-20 00:35:06","updated":"2026-01-15 13:59:45","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tULID \u2013 Universally Unique Lexicographically Sortable Identifier\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"ULID &#8211; Universally Unique Lexicographically Sortable Identifier","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/05\/ulid-universally-unique-lexicographically-sortable-identifier\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":9217,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/07\/09\/daily-del-icio-us-bookmarks\/","url_meta":{"origin":29180,"position":0},"title":"Daily del.icio.us bookmarks","author":"Leonid Mamchenkov","date":"July 9, 2005","format":false,"excerpt":"Shared bookmarks for del.icio.us user tvset on 2005-07-09 PORTFOLIO IN BLACK & WHITE Tagged as: art gallery history images people photography pictures PORTFOLIO IN COLOUR Tagged as: art gallery history images people photography pictures kipr.info [DokuWiki] Tagged as: beach cyprus dokuwiki limassol nicosia pafos resources travel travelling web wiki ::LightForce\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26269,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/07\/21\/the-regex-that-killed-stackoverflow\/","url_meta":{"origin":29180,"position":1},"title":"The RegEx that killed StackOverflow","author":"Leonid Mamchenkov","date":"July 21, 2016","format":false,"excerpt":"Here's an outage postmortem from the recent StackOverflow downtime. \u00a0It just shows you how easy it is to break things, even they were built by some of the smartest people around. \u00a0Programming is touch and there is no way around it. Technical Details The regular expression was: ^[\\s\\u200c]+|[\\s\\u200c]+$ Which is\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26388,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/31\/what-is-risk-management\/","url_meta":{"origin":29180,"position":2},"title":"What is risk management?","author":"Leonid Mamchenkov","date":"August 31, 2016","format":false,"excerpt":"O'Reilly runs a nice and simple article on what is risk management. \u00a0They look at it from the perspective of a web application, but the suggestions are generic enough to be applied universally. \u00a0The highlights are: Managing risk Identifying risk Remove worst offenders Mitigate Review regularly I particularly liked this\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"risk management","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/risk-management-500x130.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28418,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/27\/github-quickly-review-changed-functions-in-your-php-pull-requests\/","url_meta":{"origin":29180,"position":3},"title":"GitHub : Quickly review changed functions in your PHP pull requests","author":"Leonid Mamchenkov","date":"February 27, 2018","format":false,"excerpt":"GitHub is one of the greatest tools for developers ever.\u00a0 And it keeps getting better.\u00a0 Most of the new features that GitHub introduces are usually generic and apply to all developers universally.\u00a0 Today, however, they have a special present for the PHP developers -\u00a0Quickly review changed functions in your PHP\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/02\/github-php-500x221.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":20635,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/15\/dear-google-heres-what-i-want-for-the-next-olympics\/","url_meta":{"origin":29180,"position":4},"title":"Dear Google, here&#8217;s what I want for the next Olympics &#8230;","author":"Leonid Mamchenkov","date":"February 15, 2014","format":false,"excerpt":"... I hope that in accordance with your mission \"to organize the world\u2019s information and make it universally accessible and useful\", you will make that tiny little green \"Live\" word into a YouTube link, where I would be able to watch the game, without caring about in which country I\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"ice hockey","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/ice-hockey-500x233.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27879,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/28\/clean-code-solid-principles-applied-to-php\/","url_meta":{"origin":29180,"position":5},"title":"Clean Code SOLID principles applied to PHP","author":"Leonid Mamchenkov","date":"August 28, 2017","format":false,"excerpt":"clean-code-php is an excellent set of examples for the SOLID principles as applied to PHP programming: Software engineering principles, from Robert C. Martin's book\u00a0Clean Code, adapted for PHP. This is not a style guide. It's a guide to producing readable, reusable, and refactorable software in PHP. Not every principle herein\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/29180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=29180"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/29180\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=29180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=29180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=29180"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=29180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}