26 पॉइंट द्वारा GN⁺ 2023-11-26 | 6 टिप्पणियां | WhatsApp पर शेयर करें
  • Sqids एक open source लाइब्रेरी है जो संख्याओं से YouTube-स्टाइल ID जनरेट करती है
  • जनरेट किए गए ID छोटे होते हैं, कस्टम alphabet के साथ बनाए जा सकते हैं, और collision न होने की गारंटी होती है
  • उदाहरण के तौर पर दिया गया ID https://example.com/Lqj8a0 जैसे फ़ॉर्म में होता है

Sqids का उपयोग क्यों करें

  • Sqids का मुख्य उपयोग visual effect से जुड़ा है
  • जब आप web app में numbers की जगह ID इस्तेमाल करना चाहते हैं, तब Sqids एक अच्छा विकल्प हो सकता है
  • उपयोग के मामलों में link shortening, URL-safe usage, event ID, collision-free encoding/decoding, और one-time passwords शामिल हैं
  • यह sensitive data के लिए उपयुक्त नहीं है, और user ID के रूप में इस्तेमाल करने पर users की संख्या उजागर हो सकती है

Sqids की विशेषताएँ

  • non-negative numbers से छोटे ID बनाए जा सकते हैं
  • encoding और decoding आसान है
  • auto-generated ID में आम गालियाँ शामिल नहीं होतीं
  • कस्टम ID के लिए alphabet shuffle का समर्थन
  • 40 programming languages का समर्थन, जिनमें से 15 नई design का उपयोग करती हैं
  • सभी versions में एक जैसा ID जनरेट करता है
  • लाइब्रेरी का आकार छोटा है और license उदार है

GN⁺ की राय

  • Sqids लाइब्रेरी उन developers के लिए उपयोगी है जो web app में numbers की जगह छोटे और collision-free ID इस्तेमाल करना चाहते हैं
  • यह लाइब्रेरी visually attractive ID प्रदान करती है और कई programming languages को support करती है, जिससे इसकी accessibility बढ़ती है
  • यह open source developers के लिए लाभकारी अवसर प्रदान करती है, और MIT license के साथ copyright सुरक्षित रहता है

6 टिप्पणियां

 
haebom 2023-11-27

क्रॉलिंग रोकने के लिए अच्छा है।

 
stardust33 2023-11-30

क्या आप थोड़ा और विस्तार से समझा सकते हैं कि इसका उपयोग करने पर crawling को कैसे रोका जा सकता है?

 
ragus 2023-12-02

अगर url बस posts/1, posts/2, posts/3 जैसा हो, तो crawler उसमें 1,2,3,4,5... डालकर चलाता है।
लेकिन अगर url posts/L12Qsd, posts/dei24A जैसा हो, तो शायद वह ऐसा नहीं कर पाता।

 
stardust33 2023-12-05

आह! जवाब के लिए धन्यवाद।

 
jaypark 2023-11-27

मुझे जिज्ञासा हुई कि hashids से इसका क्या फर्क है, तो खोजकर देखा। https://hashids.org दर्ज करने पर https://sqids.org/ पर जाता है। लगता है उन्होंने नाम बदल दिया है.

https://sqids.org/faq#hashids

 
GN⁺ 2023-11-26
Hacker News राय
  • लगातार ID इस्तेमाल करने वाली कंपनियों से business insights मिलने की संभावना

    • उदाहरण के लिए, signup के समय दिए गए ID से कंपनी की growth rate का अनुमान लगाया जा सकता है
    • इसे application के भीतर सभी resource types पर लागू किया जा सकता है
    • यह सवाल है कि URL bar में मौजूद 'बेकार मान' आज के समय में कितना महत्वपूर्ण है
    • ज़्यादातर browser URL का बड़ा हिस्सा छिपा देते हैं, इसलिए UUID v7 के व्यापक उपयोग का इंतज़ार करते हुए, uulids का उपयोग किया जाता है
    • built-in time component कभी-कभी उपयोगी होता है (जैसे: object merge rules)
  • one-time passcode के उल्लेख पर सवाल

    • passcode का अप्रत्याशित होना ज़रूरी है, लेकिन उसका अनिवार्य रूप से unique होना ज़रूरी नहीं
    • सही random source दिया जाए तो यह काम करता है, लेकिन 'बेकार मानों से भरा' होने वाली विशेषता वास्तविकता से ज़्यादा जटिल लगती है
    • 4~8 random digits अच्छी तरह काम करते हैं और security level को स्पष्ट रूप से दिखाते हैं
    • digits, case-sensitive Latin characters की तुलना में समझना आसान होते हैं, खासकर उन भाषाओं के उपयोगकर्ताओं के लिए जो दूसरी लिपियाँ इस्तेमाल करते हैं
  • 128-bit integer या byte array को format न कर पाने पर निराशा

    • इससे UUID formatting संभव हो जाती
    • public integer ID के उपयोग के प्रति कम पसंद
    • ascending ID से महत्वपूर्ण जानकारी लीक होने का जोखिम मौजूद है
    • URL, QR code आदि के लिए UUID को Base64URL में format करके छोटा बनाना अधिक पसंद है
  • Ruby application में high-radix conversion method इस्तेमाल करने का तरीका

    • Sqid एक Ruby library देता है और कहीं अधिक high-radix setting की अनुमति देता है, जिसमें uppercase characters और emoji शामिल हैं
    • space saving बड़ा फर्क पैदा करे, उससे पहले कहीं बड़े numbers की ज़रूरत होती है
    • यह तय करना मुश्किल है कि नई dependency जोड़ना इसके लायक है या नहीं
  • गाली-गलौज filtering डिज़ाइन के हिसाब से liability बन सकती है

    • encoding को बनाए रखने के लिए banned words list को immutable रखना होगा
    • वरना पहले के sqids गलत तरीके से decode हो सकते हैं
  • nanoid के उपयोग और safe alphabet के उपयोग को प्राथमिकता

    • 'खराब' शब्द खोजने के लिए hardcoded implementation की जगह समान dictionary approach इस्तेमाल करने का सुझाव
    • performance test suite में रुचि व्यक्त की गई
    • ज़्यादातर भाषाओं में UUID v4 generation optimized होती है, इसलिए यह सवाल है कि custom solution वास्तव में बेहतर है या नहीं
  • randomly generated strings के उपयोग पर चर्चा

    • ID, password recovery token आदि में उपयोग
    • इनकी लाखों प्रतियां बनाई गईं, और हर दिन सैकड़ों हज़ार लोग इन्हें जांचते हैं
    • random content ID को लेकर शिकायत का कोई मामला नहीं
    • आधुनिक समाज किसी को अपमानित करने से इतना डरता है कि profanity filter database ID और password recovery token तक फैल गया है
    • minimum length को 8 रखने पर पूरे ID के रूप में पूर्ण शब्द वाली गाली आने की संभावना कम होती है
  • "Get Started" section में 40 भाषाओं के लिंक देने पर भ्रम

    • 40 में से केवल 15 भाषाओं में ही शुरुआत की जा सकती है, बाकी 25 skeleton repositories हैं जो लोगों से रुचि दिखाने के लिए repository को star करने का अनुरोध करती हैं
  • blocklist को समायोजित या विकसित करने के तरीके पर सवाल

    • अगर ID blacklist में हो, तो बस उसे बढ़ा दिया जाता है
    • ID blacklist की सामग्री पर fixed है, और इसे बदलने से पहले से generated ID के कुछ segments अमान्य हो जाते हैं
  • इस thread में कई लोगों ने इसे ID/number से insights छिपाने का अच्छा तरीका बताया

    • generated values आसानी से decode की जा सकती हैं, इसलिए यह सवाल उठता है कि क्या कुछ numbers decode करके फिर भी insights निकाले जा सकते हैं