🛠️

Whiz Tools

Build • Create • Innovate

Islak Çevre Hesaplayıcı: Kanal Şekilleri için Hesaplama Aracı

Trapezler, dikdörtgenler/kareler ve dairesel borular dahil olmak üzere çeşitli kanal şekilleri için ıslak çevreyi hesaplayın. Hidrolik mühendisliği ve akışkanlar mekaniği uygulamaları için gereklidir.

ULID Üretici

Oluşturulan ULID:

ULID Yapısı


Zaman Damgası (10 karakter)

Rastgelelik (16 karakter)
📚

Dokümantasyon

ULID Üretici

Giriş

ULID (Evrensel Benzersiz Lexikografik Sıralanabilir Tanımlayıcı), zaman damgasını rastgele verilerle birleştirerek 26 karakterlik bir dize oluşturan benzersiz bir tanımlayıcıdır. ULID'ler, yüksek derecede benzersizlik ve rastgelelik sağlarken lexikografik olarak sıralanabilir olacak şekilde tasarlanmıştır.

ULID Yapısı

Bir ULID iki ana bölümden oluşur:

  1. Zaman Damgası (10 karakter): İlk 10 karakter, Unix Epoch'tan (1970-01-01) itibaren milisaniye cinsinden zamanı temsil eder.
  2. Rastgelelik (16 karakter): Kalan 16 karakter, kriptografik olarak güvenli rastgele veriler kullanılarak üretilir.

Sonuçta elde edilen 26 karakterlik dize, Crockford'un base32 alfabesi kullanılarak kodlanır (0-9 ve A-Z, I, L, O ve U hariç).

Formül

ULID, aşağıdaki adımlarla üretilir:

  1. Unix Epoch'tan (milisaniye cinsinden) 48 bitlik bir zaman damgası oluşturun.
  2. 80 bitlik kriptografik olarak güvenli rastgele veri oluşturun.
  3. Birleşik 128 bitlik veriyi Crockford'un base32 kodlaması ile kodlayın.

Hesaplama

ULID üretici aşağıdaki adımları gerçekleştirir:

  1. Mevcut zaman damgasını milisaniye cinsinden alın.
  2. Kriptografik olarak güvenli bir rastgele sayı üreteci kullanarak 10 rastgele byte (80 bit) oluşturun.
  3. Zaman damgasını ve rastgele veriyi 128 bitlik bir tam sayıya birleştirin.
  4. 128 bitlik tam sayıyı Crockford'un base32 kodlaması ile kodlayın.

Kullanım Alanları

ULID'ler çeşitli senaryolar için faydalıdır, bunlar arasında:

  1. Veritabanı anahtarları: ULID'ler, veritabanı kayıtları için benzersiz tanımlayıcılar olarak kullanılabilir, benzersizlik ve sıralanabilirlik sağlar.
  2. Dağıtık sistemler: Dağıtık ortamlarda, ULID'ler düğümler arasında koordinasyonsuz olarak üretilebilir.
  3. Günlükleme ve izleme: ULID'ler, günlük girişlerini veya olayları etiketlemek için kullanılabilir, sıralanabilir ve benzersiz bir tanımlayıcı sağlar.
  4. URL dostu kimlikler: ULID'ler URL güvenlidir ve web uygulamalarında URL'lerde tanımlayıcılar olarak kullanılabilir.

Alternatifler

ULID'ler çok yönlü olsa da, dikkate alınması gereken diğer benzersiz tanımlayıcı sistemleri vardır:

  1. UUID (Evrensel Benzersiz Tanımlayıcı): Zaman damgası bileşeni içermeyen 128 bitlik bir tanımlayıcı.
  2. KSUID (K-Sıralanabilir Benzersiz Tanımlayıcı): ULID'ye benzer ancak farklı bir zaman damgası kodlaması vardır.
  3. Snowflake ID: Twitter'ın dağıtık benzersiz ID üretim sistemi, zaman damgası ve işçi kimliği içerir.

Tarihçe

ULID'ler, 2016 yılında Alizain Feerasta tarafından UUID'lere alternatif olarak tanıtılmıştır. Sıralanabilirlik ve okunabilirlik açısından UUID'lerin bazı sınırlamalarını gidermek için tasarlanmıştır. ULID spesifikasyonu tanıtımından bu yana kararlı kalmış ve farklı programlama dillerinde çeşitli uygulamalar mevcuttur.

Örnekler

Farklı programlama dillerinde ULID üretmek için bazı kod örnekleri:

1// JavaScript uygulaması
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

Bu örnekler, JavaScript, Python ve Java'da ULID'leri nasıl üreteceğinizi göstermektedir. Bu işlevleri belirli ihtiyaçlarınıza uyarlayabilir veya benzersiz tanımlayıcılar gerektiren daha büyük sistemlere entegre edebilirsiniz.

Referanslar

  1. "ULID Spesifikasyonu." GitHub, https://github.com/ulid/spec. Erişim tarihi 2 Ağu. 2024.
  2. "Crockford'un Base32 Kodlaması." Base32 Kodlaması, http://www.crockford.com/base32.html. Erişim tarihi 2 Ağu. 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Erişim tarihi 2 Ağu. 2024.