🛠️

Whiz Tools

Build • Create • Innovate

Kalkulator Perimeter Saluran untuk Pelbagai Bentuk

Kira perimeter basah untuk pelbagai bentuk saluran termasuk trapezoid, segi empat tepat/petak, dan paip bulat. Penting untuk aplikasi kejuruteraan hidraulik dan mekanik bendalir.

Penjana ULID

ULID yang Dihasilkan:

Struktur ULID


Timestamp (10 aksara)

Kebarangkalian (16 aksara)
📚

Dokumentasi

ULID Generator

Pengenalan

ULID (Universally Unique Lexicographically Sortable Identifier) adalah pengenal unik yang menggabungkan cap waktu dengan data rawak untuk mencipta rentetan 26 aksara. ULID direka untuk boleh disusun secara leksikografik sambil mengekalkan tahap keunikan dan keboleharapan yang tinggi.

Struktur ULID

ULID terdiri daripada dua bahagian utama:

  1. Cap Waktu (10 aksara): Sepuluh aksara pertama mewakili masa dalam milisaat sejak Unix Epoch (1970-01-01).
  2. Keboleharapan (16 aksara): 16 aksara yang tinggal dihasilkan menggunakan data rawak yang selamat secara kriptografi.

Rentetan 26 aksara yang terhasil dikodkan menggunakan abjad base32 Crockford (0-9 dan A-Z, tidak termasuk I, L, O, dan U).

Formula

ULID dihasilkan menggunakan langkah-langkah berikut:

  1. Hasilkan cap waktu 48-bit (milisaat sejak Unix Epoch).
  2. Hasilkan 80 bit data rawak yang selamat secara kriptografi.
  3. Kodkan gabungan 128 bit menggunakan pengkodan base32 Crockford.

Pengiraan

Penjana ULID melakukan langkah-langkah berikut:

  1. Dapatkan cap waktu semasa dalam milisaat.
  2. Hasilkan 10 bait rawak (80 bit) menggunakan penjana nombor rawak yang selamat secara kriptografi.
  3. Gabungkan cap waktu dan data rawak ke dalam integer 128-bit.
  4. Kodkan integer 128-bit menggunakan pengkodan base32 Crockford.

Kes Penggunaan

ULID berguna dalam pelbagai senario, termasuk:

  1. Kunci pangkalan data: ULID boleh digunakan sebagai pengenal unik untuk rekod pangkalan data, memastikan keunikan dan kebolehsusunan.
  2. Sistem teragih: Dalam persekitaran teragih, ULID boleh dihasilkan tanpa penyelarasan antara nod.
  3. Pencatatan dan penjejakan: ULID boleh digunakan untuk menandakan entri log atau menjejaki peristiwa, memberikan pengenal yang boleh disusun dan unik.
  4. ID mesra URL: ULID adalah selamat untuk URL dan boleh digunakan dalam aplikasi web sebagai pengenal dalam URL.

Alternatif

Walaupun ULID serbaguna, terdapat sistem pengenal unik lain yang perlu dipertimbangkan:

  1. UUID (Universally Unique Identifier): Pengenal 128-bit yang tidak termasuk komponen cap waktu.
  2. KSUID (K-Sortable Unique IDentifier): Serupa dengan ULID tetapi dengan pengkodan cap waktu yang berbeza.
  3. Snowflake ID: Sistem penghasilan ID unik teragih Twitter, yang merangkumi cap waktu dan ID pekerja.

Sejarah

ULID diperkenalkan pada tahun 2016 oleh Alizain Feerasta sebagai alternatif kepada UUID. Ia direka untuk menangani beberapa kekurangan UUID, terutamanya dari segi kebolehsusunan dan kebolehan dibaca. Spesifikasi ULID telah kekal stabil sejak diperkenalkan, dengan pelbagai pelaksanaan yang tersedia dalam pelbagai bahasa pengaturcaraan.

Contoh

Berikut adalah beberapa contoh kod untuk menghasilkan ULID dalam pelbagai bahasa pengaturcaraan:

1// Pelaksanaan 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

Contoh-contoh ini menunjukkan cara untuk menghasilkan ULID dalam JavaScript, Python, dan Java. Anda boleh menyesuaikan fungsi ini untuk keperluan khusus anda atau mengintegrasikannya ke dalam sistem yang lebih besar yang memerlukan pengenal unik.

Rujukan

  1. "Spesifikasi ULID." GitHub, https://github.com/ulid/spec. Diakses 2 Ogos 2024.
  2. "Pengkodan Base32 Crockford." Pengkodan Base32, http://www.crockford.com/base32.html. Diakses 2 Ogos 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Diakses 2 Ogos 2024.