Калькулятор для розрахунку змоченого периметра каналів

Розрахуйте змочений периметр для різних форм каналів, включаючи трапеції, прямокутники/квадрати та круглі труби. Необхідний для гідравлічного інженерного та гідромеханічного застосування.

Генератор ULID

Згенерований ULID:

Структура ULID


Часова мітка (10 символів)

Випадковість (16 символів)
📚

Документація

Генератор ULID

Вступ

ULID (Універсальний Унікальний Лексикографічно Сортований Ідентифікатор) — це унікальний ідентифікатор, який поєднує в собі часову мітку з випадковими даними для створення рядка з 26 символів. ULID розроблені для того, щоб бути лексикографічно сортованими, зберігаючи при цьому високий ступінь унікальності та випадковості.

Структура ULID

ULID складається з двох основних частин:

  1. Часова мітка (10 символів): Перші 10 символів представляють час у мілісекундах з моменту Unix Epoch (1970-01-01).
  2. Випадковість (16 символів): Решта 16 символів генеруються за допомогою криптографічно безпечних випадкових даних.

Отриманий 26-символьний рядок кодується за допомогою алфавіту бази 32 Крокфорда (0-9 та A-Z, виключаючи I, L, O та U).

Формула

ULID генерується за допомогою наступних кроків:

  1. Згенерувати 48-бітну часову мітку (мілісекунди з моменту Unix Epoch).
  2. Згенерувати 80 біт криптографічно безпечних випадкових даних.
  3. Закодувати об'єднані 128 біт за допомогою кодування бази 32 Крокфорда.

Обчислення

Генератор ULID виконує наступні кроки:

  1. Отримати поточну часову мітку в мілісекундах.
  2. Згенерувати 10 випадкових байтів (80 біт) за допомогою криптографічно безпечного генератора випадкових чисел.
  3. Об'єднати часову мітку та випадкові дані в 128-бітне ціле число.
  4. Закодувати 128-бітне ціле число за допомогою кодування бази 32 Крокфорда.

Сценарії використання

ULID корисні в різних сценаріях, зокрема:

  1. Ключі бази даних: ULID можуть використовуватися як унікальні ідентифікатори для записів у базі даних, забезпечуючи унікальність і сортованість.
  2. Розподілені системи: У розподілених середовищах ULID можуть генеруватися без координації між вузлами.
  3. Логування та трасування: ULID можуть використовуватися для позначення записів журналу або трасування подій, надаючи сортований і унікальний ідентифікатор.
  4. URL-дружні ідентифікатори: ULID безпечні для URL і можуть використовуватися в веб-додатках як ідентифікатори в URL.

Альтернативи

Хоча ULID є універсальними, існують й інші системи унікальних ідентифікаторів, які варто розглянути:

  1. UUID (Універсальний Унікальний Ідентифікатор): 128-бітний ідентифікатор, який не містить компонента часової мітки.
  2. KSUID (K-Сортований Унікальний Ідентифікатор): Подібний до ULID, але з іншим кодуванням часової мітки.
  3. Snowflake ID: Система генерації розподілених унікальних ID від Twitter, яка включає часову мітку та ID робочого вузла.

Історія

ULID були представлені в 2016 році Алізаїном Феерастою як альтернатива UUID. Вони були розроблені для вирішення деяких обмежень UUID, особливо в термінах сортованості та читабельності. Специфікація ULID залишалася стабільною з моменту її впровадження, з різними реалізаціями, доступними на різних мовах програмування.

Приклади

Ось кілька прикладів коду для генерації ULID на різних мовах програмування:

1// Реалізація на JavaScript
2function generateULID() {
3  const timestamp = Date.now().toString(36).padStart(10, '0');
4  const randomness = crypto.getRandomValues(new Uint8Array(16))
5    .reduce((acc, byte) => acc + byte.toString(36).padStart(2, '0'), '');
6  return (timestamp + randomness).toUpperCase();
7}
8
9console.log(generateULID());
10

Ці приклади демонструють, як генерувати ULID на JavaScript, Python і Java. Ви можете адаптувати ці функції під свої специфічні потреби або інтегрувати їх у більші системи, які потребують унікальних ідентифікаторів.

Посилання

  1. "Специфікація ULID." GitHub, https://github.com/ulid/spec. Доступно 2 серпня 2024 року.
  2. "Кодування бази 32 Крокфорда." Кодування бази 32, http://www.crockford.com/base32.html. Доступно 2 серпня 2024 року.
  3. "UUID проти ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Доступно 2 серпня 2024 року.
🔗

Пов'язані Інструменти

Відкрийте більше інструментів, які можуть бути корисними для вашого робочого процесу