ভেজা পরিধি গণনা করার জন্য কার্যকরী ক্যালকুলেটর
ট্র্যাপিজয়েড, আয়তক্ষেত্র/বর্গক্ষেত্র এবং বৃত্তাকার পাইপ সহ বিভিন্ন চ্যানেলের আকারের জন্য ভেজা পরিধি গণনা করুন। জলবিদ্যুৎ প্রকৌশল এবং তরল যান্ত্রিকতার প্রয়োগের জন্য অপরিহার্য।
ULID জেনারেটর
তৈরি করা ULID:
ULID গঠন
টাইমস্ট্যাম্প (১০ অক্ষর)
র্যান্ডমনেস (১৬ অক্ষর)
ডকুমেন্টেশন
ULID জেনারেটর
পরিচিতি
ULID (সার্বজনীন অনন্য লেক্সিকোগ্রাফিকভাবে সাজানো শনাক্তকারী) একটি অনন্য শনাক্তকারী যা একটি টাইমস্ট্যাম্পকে এলোমেলো ডেটার সাথে সংযুক্ত করে একটি 26-অক্ষরের স্ট্রিং তৈরি করে। ULIDs লেক্সিকোগ্রাফিকভাবে সাজানোর জন্য ডিজাইন করা হয়েছে, একই সাথে উচ্চ স্তরের অনন্যতা এবং এলোমেলোতা বজায় রেখে।
ULID-এর গঠন
একটি ULID দুটি প্রধান অংশ নিয়ে গঠিত:
- টাইমস্ট্যাম্প (10 অক্ষর): প্রথম 10 অক্ষর ইউনিক্স এপোক (1970-01-01) থেকে মিলিসেকেন্ডে সময়কে উপস্থাপন করে।
- এলোমেলোতা (16 অক্ষর): বাকি 16 অক্ষর ক্রিপ্টোগ্রাফিকভাবে নিরাপদ এলোমেলো ডেটা ব্যবহার করে তৈরি করা হয়।
ফলস্বরূপ 26-অক্ষরের স্ট্রিংটি ক্রকফোর্ডের বেস32 বর্ণমালায় (0-9 এবং A-Z, I, L, O, এবং U বাদে) এনকোড করা হয়।
সূত্র
ULID তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করা হয়:
- ইউনিক্স এপোক থেকে মিলিসেকেন্ডে 48-বিট টাইমস্ট্যাম্প তৈরি করুন।
- ক্রিপ্টোগ্রাফিকভাবে নিরাপদ এলোমেলো ডেটার 80 বিট তৈরি করুন।
- ক্রকফোর্ডের বেস32 এনকোডিং ব্যবহার করে একত্রিত 128 বিট এনকোড করুন।
গণনা
ULID জেনারেটর নিম্নলিখিত পদক্ষেপগুলি সম্পন্ন করে:
- মিলিসেকেন্ডে বর্তমান টাইমস্ট্যাম্প পান।
- ক্রিপ্টোগ্রাফিকভাবে নিরাপদ এলোমেলো সংখ্যা জেনারেটর ব্যবহার করে 10টি এলোমেলো বাইট (80 বিট) তৈরি করুন।
- টাইমস্ট্যাম্প এবং এলোমেলো ডেটাকে 128-বিট পূর্ণসংখ্যায় একত্রিত করুন।
- ক্রকফোর্ডের বেস32 এনকোডিং ব্যবহার করে 128-বিট পূর্ণসংখ্যাটি এনকোড করুন।
ব্যবহার ক্ষেত্রে
ULIDs বিভিন্ন পরিস্থিতিতে উপকারী, যার মধ্যে রয়েছে:
- ডেটাবেস কী: ULIDs ডেটাবেস রেকর্ডের জন্য অনন্য শনাক্তকারী হিসাবে ব্যবহার করা যেতে পারে, অনন্যতা এবং সাজানোর নিশ্চয়তা প্রদান করে।
- বিতরণকৃত সিস্টেম: বিতরণকৃত পরিবেশে, ULIDs সমন্বয় ছাড়াই তৈরি করা যেতে পারে।
- লগিং এবং ট্রেসিং: ULIDs লগ এন্ট্রি বা ইভেন্ট ট্রেস করতে ট্যাগ হিসাবে ব্যবহার করা যেতে পারে, একটি সাজানো এবং অনন্য শনাক্তকারী প্রদান করে।
- URL-বন্ধুত্বপূর্ণ আইডি: ULIDs URL-নিরাপদ এবং ওয়েব অ্যাপ্লিকেশনগুলিতে URL-এ শনাক্তকারী হিসাবে ব্যবহার করা যেতে পারে।
বিকল্প
যদিও ULIDs বহুমুখী, অন্যান্য অনন্য শনাক্তকারী সিস্টেম বিবেচনা করা যেতে পারে:
- UUID (সার্বজনীন অনন্য শনাক্তকারী): একটি 128-বিট শনাক্তকারী যা টাইমস্ট্যাম্প উপাদান অন্তর্ভুক্ত করে না।
- KSUID (K-সাজানো অনন্য শনাক্তকারী): ULID-এর অনুরূপ কিন্তু ভিন্ন টাইমস্ট্যাম্প এনকোডিং সহ।
- স্নোফ্লেক আইডি: টুইটারের বিতরণকৃত অনন্য আইডি উৎপাদন ব্যবস্থা, যা একটি টাইমস্ট্যাম্প এবং কর্মী আইডি অন্তর্ভুক্ত করে।
ইতিহাস
ULIDs 2016 সালে আলিজাইন ফিয়ারাস্তা দ্বারা UUID-এর বিকল্প হিসাবে পরিচIntroduced হয়েছিল। এগুলি UUID-এর কিছু সীমাবদ্ধতা, বিশেষ করে সাজানোর এবং পড়ার ক্ষেত্রে, মোকাবেলা করার জন্য ডিজাইন করা হয়েছিল। ULID স্পেসিফিকেশনটি তার পরিচIntroduced এর পর থেকে স্থিতিশীল রয়েছে, বিভিন্ন প্রোগ্রামিং ভাষায় বিভিন্ন বাস্তবায়ন উপলব্ধ রয়েছে।
উদাহরণ
বিভিন্ন প্রোগ্রামিং ভাষায় ULID তৈরি করতে এখানে কিছু কোড উদাহরণ রয়েছে:
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
1## পাইথন বাস্তবায়ন
2import time
3import secrets
4import base64
5
6def generate_ulid():
7 timestamp = int(time.time() * 1000).to_bytes(6, byteorder="big")
8 randomness = secrets.token_bytes(10)
9 return base64.b32encode(timestamp + randomness).decode("ascii").lower()
10
11print(generate_ulid())
12
1// জাভা বাস্তবায়ন
2import java.security.SecureRandom;
3import java.time.Instant;
4
5public class ULIDGenerator {
6 private static final SecureRandom random = new SecureRandom();
7 private static final char[] ENCODING_CHARS = "0123456789ABCDEFGHJKMNPQRSTVWXYZ".toCharArray();
8
9 public static String generateULID() {
10 long timestamp = Instant.now().toEpochMilli();
11 byte[] randomness = new byte[10];
12 random.nextBytes(randomness);
13
14 StringBuilder result = new StringBuilder();
15 // টাইমস্ট্যাম্প এনকোড করুন
16 for (int i = 9; i >= 0; i--) {
17 result.append(ENCODING_CHARS[(int) (timestamp % 32)]);
18 timestamp /= 32;
19 }
20 // এলোমেলোতা এনকোড করুন
21 for (byte b : randomness) {
22 result.append(ENCODING_CHARS[b & 31]);
23 }
24 return result.toString();
25 }
26
27 public static void main(String[] args) {
28 System.out.println(generateULID());
29 }
30}
31
এই উদাহরণগুলি জাভাস্ক্রিপ্ট, পাইথন, এবং জাভায় ULID তৈরি করার পদ্ধতি প্রদর্শন করে। আপনি এই ফাংশনগুলিকে আপনার নির্দিষ্ট প্রয়োজন অনুসারে অভিযোজিত করতে পারেন বা অনন্য শনাক্তকারীর প্রয়োজনীয়তার জন্য বৃহত্তর সিস্টেমে সংহত করতে পারেন।
রেফারেন্স
- "ULID স্পেসিফিকেশন।" GitHub, https://github.com/ulid/spec। ২ আগস্ট ২০২৪ তারিখে প্রবেশ করা হয়েছে।
- "ক্রকফোর্ডের বেস32 এনকোডিং।" বেস32 এনকোডিং, http://www.crockford.com/base32.html। ২ আগস্ট ২০২৪ তারিখে প্রবেশ করা হয়েছে।
- "UUID বনাম ULID।" স্ট্যাক ওভারফ্লো, https://stackoverflow.com/questions/54222235/uuid-vs-ulid। ২ আগস্ট ২০২৪ তারিখে প্রবেশ করা হয়েছে।
প্রতিক্রিয়া
এই টুল সম্পর্কে প্রতিক্রিয়া দিতে শুরু করতে প্রতিক্রিয়া টোস্টে ক্লিক করুন
সম্পর্কিত টুলস
আপনার কাজের প্রবাহের জন্য উপকারী হতে পারে এমন আরও টুল আবিষ্কার করুন