• Immich के विकास के दौरान सीखे गए शापित ज्ञान की सूची साझा की गई है
  • विभिन्न software और infrastructure वातावरणों में पाए गए अप्रत्याशित समस्याओं का संकलन
  • इसमें EXIF metadata, YAML whitespace handling, PostgreSQL जैसी टूल और भाषा-विशिष्ट समस्याओं का उल्लेख है
  • कुछ मुद्दे सीधे security, platform compatibility और open source dependencies से जुड़े हुए हैं
  • इसमें डेवलपर्स के लिए वास्तविक उदाहरण और कारण पर फोकस किया गया है

अवलोकन

Immich की विकास टीम ने परियोजना बनाते समय हुए उन शापित ज्ञान को सार्वजनिक किया है जिन्हें वे फिर कभी याद नहीं करना चाहते। यह सूची वास्तविक सेवा निर्माण और ऑपरेशन के दौरान अलग-अलग tools, languages और platforms में सीधे अनुभव किए गए अप्रत्याशित जाल और समस्याओं का वर्णन करती है।

शापित ज्ञान सूची

  • 4 जून, 2025

    • Zitadel की Actions एक शापित फीचर है
    • Zitadel का दिया हुआ कस्टम स्क्रिप्टिंग फीचर JS engine पर आधारित है, लेकिन यह regex में नामित capture groups सपोर्ट नहीं करता, इसलिए इसकी सीमा तुरंत दिख जाती है
  • 30 मई, 2025

    • Microsoft Entra में PKCE सपोर्ट मौजूद है, लेकिन इसे OpenID discovery दस्तावेज़ में स्पष्ट नहीं किया गया
    • इसलिए मौजूद फीचर को क्लाइंट पर detect नहीं किया जा सकता, जिससे समस्या आती है
  • 5 मई, 2025

    • किसी image का विवरण देने वाला EXIF metadata का size वास्तविक image से अलग हो सकता है
    • इस अंतर की वजह से crop और resize ऑपरेशन में errors आ सकती हैं
  • 1 अप्रैल, 2025

    • YAML में whitespace handling अपेक्षा के अनुसार काम न करके अलग तरह से behave कर सकता है
    • फ़ॉर्मैटिंग के प्रति संवेदनशील होने से कंटेंट गलत तरीके से interpret होने का खतरा रहता है
  • 20 सितंबर, 2024

    • Windows के hidden files को "w" फ्लैग से नहीं खोला जा सकता
    • SMB के "hide dot files" विकल्प के साथ जोड़ने पर फाइल खोज और प्रोसेसिंग में अधिक भ्रम हो सकता है
  • 7 अगस्त, 2024

    • Bash scripts में carriage return (CRLF) की समस्या आ सकती है
    • यदि Git checkout के दौरान tự LF को CRLF में बदल दे, तो स्क्रिप्ट रन करने पर error आ सकता है
  • 7 अगस्त, 2024

    • Cloudflare Workers में fetch में https लिखने के बाद भी default में http लागू हो जाता है
    • इससे redirect loop जैसी नेटवर्क संबंधित समस्याएँ पैदा होती हैं
  • 21 जुलाई, 2024

    • मोबाइल में GPS sharing तब silently GPS info हटा देता है जब app के पास location permission नहीं होती
    • इससे location-based services की accuracy और privacy दोनों पर असर पड़ता है
  • 3 जुलाई, 2024

    • PostgreSQL का NOTIFY केवल transaction के अंदर काम करता है
    • socket.io के postgres-adapter के साथ उपयोग करने पर हर 5 सेकंड में WAL writes होती हैं, जिससे load बढ़ता है
  • 3 जुलाई, 2024

    • प्रत्येक npm script रन पर npm registry को एक HTTP request भेजी जाती है
    • इसलिए health check अगर script से किया जाए तो वह inefficient हो जाता है
  • 28 जून, 2024

    • JavaScript community के कुछ users ने "backward compatibility" के नाम पर लगभग 50 पैकेज dependencies ज़बरदस्ती जोड़ दीं
    • ये सभी पैकेज उसी उपयोगकर्ता द्वारा maintain किए गए थे
  • 25 जून, 2024

    • bcrypt implementation केवल स्ट्रिंग के पहले 72 bytes उपयोग करता है
    • उसके बाद के characters ignore हो जाते हैं, इसलिए लंबा password अर्थहीन हो जाता है
  • 31 जनवरी, 2024

    • JavaScript Date object में year और date 1 से शुरुआत करते हैं, जबकि month 0 से होता है
    • यह confusion पैदा करने वाली संरचना है
  • 9 जनवरी, 2024

    • Node.js v20.8 से पहले, --experimental-vm-modules विकल्प वाले CommonJS प्रोजेक्ट में जब ES modules फिर से CommonJS module लाते हैं
      • तब segfault (segmentation fault) के कारण Node.js crash होने वाली समस्या आती है
  • 28 दिसंबर, 2023

    • PostgreSQL में parameters की सीमा 65,535 है
    • बड़े data sets के bulk insert में यह performance bottleneck पैदा कर सकता है
  • 26 जून, 2023

    • कुछ web APIs केवल Secure Contexts में उपलब्ध हैं
    • उदाहरण के लिए clipboard API केवल https या localhost environment में ही काम करती है
  • 23 फरवरी, 2023

    • TypeORM का remove implementation सीधे इनपुट object को modify कर देता है
    • यह original object के id attribute तक हटाकर देता है

निष्कर्ष

ये शापित ज्ञान वास्तविक service development और operations में बार-बार आने वाले traps हैं। यदि डेवलपर्स हर tool, भाषा, और environment में छिपी हुई constraints और issues पहले ही पहचान लें, तो तेज़ समस्या समाधान और stable service निर्माण में मदद मिलती है।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.