🛠️

Whiz Tools

Build • Create • Innovate

گیلا پیری میٹر کیلکولیٹر - ہائیڈرولک انجینئرنگ کے لیے

مختلف چینل کی شکلوں کے لیے گیلا پیری میٹر کا حساب لگائیں جن میں ٹریپیزائڈز، مستطیل/مربع اور گول پائپ شامل ہیں۔ ہائیڈرولک انجینئرنگ اور سیال میکینکس کی ایپلی کیشنز کے لیے ضروری ہے۔

ULID جنریٹر

بنائی گئی ULID:

ULID کی ساخت


ٹائم اسٹیمپ (10 کردار)

ریاندومنس (16 کردار)
📚

دستاویزات

ULID جنریٹر

تعارف

ULID (یونیورسل یونیک لکیگرافیکلی سورت ایبل آئیڈینٹیفائر) ایک منفرد شناخت کنندہ ہے جو ایک ٹائم اسٹیمپ کو بے ترتیب ڈیٹا کے ساتھ ملا کر 26 حروف کی ایک سٹرنگ بناتا ہے۔ ULIDs کو لکیگرافیکلی سورت کرنے کے لئے ڈیزائن کیا گیا ہے جبکہ منفرد ہونے اور بے ترتیبی کی اعلیٰ ڈگری کو برقرار رکھتے ہیں۔

ULID کی ساخت

ULID دو اہم حصوں پر مشتمل ہے:

  1. ٹائم اسٹیمپ (10 حروف): پہلے 10 حروف یونکس ایپوک (1970-01-01) کے بعد ملی سیکنڈز میں وقت کی نمائندگی کرتے ہیں۔
  2. بے ترتیبی (16 حروف): باقی 16 حروف کو خفیہ طور پر محفوظ بے ترتیب ڈیٹا کا استعمال کرتے ہوئے تیار کیا جاتا ہے۔

نتیجے میں 26 حروف کی سٹرنگ کو کروکفورڈ کی بیس32 حروف تہجی (0-9 اور A-Z، I، L، O، اور U کو چھوڑ کر) کا استعمال کرتے ہوئے کوڈ کیا جاتا ہے۔

فارمولا

ULID کو درج ذیل مراحل کے ذریعے تیار کیا جاتا ہے:

  1. 48 بٹ کا ٹائم اسٹیمپ تیار کریں (یونکس ایپوک کے بعد ملی سیکنڈز)۔
  2. 80 بٹ کا خفیہ طور پر محفوظ بے ترتیب ڈیٹا تیار کریں۔
  3. کروکفورڈ کی بیس32 کوڈنگ کا استعمال کرتے ہوئے ملے جلے 128 بٹ کو کوڈ کریں۔

حساب

ULID جنریٹر درج ذیل مراحل انجام دیتا ہے:

  1. موجودہ وقت کو ملی سیکنڈز میں حاصل کریں۔
  2. خفیہ طور پر محفوظ بے ترتیب نمبر جنریٹر کا استعمال کرتے ہوئے 10 بے ترتیب بائٹس (80 بٹ) تیار کریں۔
  3. ٹائم اسٹیمپ اور بے ترتیب ڈیٹا کو 128 بٹ کے عدد میں یکجا کریں۔
  4. 128 بٹ کے عدد کو کروکفورڈ کی بیس32 کوڈنگ کا استعمال کرتے ہوئے کوڈ کریں۔

استعمال کے معاملات

ULIDs مختلف منظرناموں میں مفید ہیں، بشمول:

  1. ڈیٹا بیس کی چابیاں: ULIDs کو ڈیٹا بیس کے ریکارڈز کے لئے منفرد شناخت کنندوں کے طور پر استعمال کیا جا سکتا ہے، جو منفرد ہونے اور سورت کرنے کی ضمانت دیتا ہے۔
  2. تقسیم شدہ نظام: تقسیم شدہ ماحول میں، ULIDs بغیر کسی ہم آہنگی کے جنریٹ کیے جا سکتے ہیں۔
  3. لاگنگ اور ٹریسنگ: ULIDs کو لاگ کی اندراجات یا واقعات کو ٹیگ کرنے کے لئے استعمال کیا جا سکتا ہے، جو ایک سورت کرنے کے قابل اور منفرد شناخت کنندہ فراہم کرتا ہے۔
  4. URL کے لئے دوستانہ IDs: ULIDs URL محفوظ ہیں اور ویب ایپلیکیشنز میں URLs میں شناخت کنندوں کے طور پر استعمال کیے جا سکتے ہیں۔

متبادل

اگرچہ ULIDs متنوع ہیں، لیکن دیگر منفرد شناخت کنندہ نظاموں پر غور کرنے کے لئے بھی موجود ہیں:

  1. UUID (یونیورسل یونیک آئیڈینٹیفائر): ایک 128 بٹ کا شناخت کنندہ جو ٹائم اسٹیمپ کے جزو کو شامل نہیں کرتا۔
  2. KSUID (K-Sortable Unique IDentifier): ULID کی طرح لیکن مختلف ٹائم اسٹیمپ کوڈنگ کے ساتھ۔
  3. اسنو فلیک آئی ڈی: ٹویٹر کا تقسیم شدہ منفرد شناخت کنندہ پیدا کرنے کا نظام، جو ٹائم اسٹیمپ اور ورکر آئی ڈی کو شامل کرتا ہے۔

تاریخ

ULIDs کو 2016 میں علیزین فیراستا نے UUIDs کے متبادل کے طور پر متعارف کرایا۔ انہیں UUIDs کی کچھ حدود، خاص طور پر سورت کرنے کی صلاحیت اور پڑھنے کی قابلیت کے لحاظ سے حل کرنے کے لئے ڈیزائن کیا گیا تھا۔ ULID کی وضاحت اپنے تعارف کے بعد سے مستحکم رہی ہے، اور مختلف پروگرامنگ زبانوں میں مختلف عمل درآمد دستیاب ہیں۔

مثالیں

یہاں مختلف پروگرامنگ زبانوں میں ULIDs پیدا کرنے کے کچھ کوڈ کے نمونے ہیں:

1// جاوا اسکرپٹ کا نفاذ
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

یہ مثالیں جاوا اسکرپٹ، پائتھن، اور جاوا میں ULIDs پیدا کرنے کا طریقہ ظاہر کرتی ہیں۔ آپ ان افعال کو اپنی مخصوص ضروریات کے مطابق ڈھال سکتے ہیں یا انہیں ان بڑے نظاموں میں ضم کر سکتے ہیں جو منفرد شناخت کنندوں کی ضرورت رکھتے ہیں۔

حوالہ جات

  1. "ULID وضاحت۔" GitHub، https://github.com/ulid/spec. 2 اگست 2024 کو رسائی حاصل کی۔
  2. "کروکفورڈ کی بیس32 کوڈنگ۔" بیس32 کوڈنگ، http://www.crockford.com/base32.html. 2 اگست 2024 کو رسائی حاصل کی۔
  3. "UUID بمقابلہ ULID۔" اسٹیک اوور فلو، https://stackoverflow.com/questions/54222235/uuid-vs-ulid. 2 اگست 2024 کو رسائی حاصل کی۔