1 पॉइंट द्वारा GN⁺ 2024-03-26 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 1994 के आखिर में Microsoft, Windows95 UI कोड को Windows NT में पोर्ट कर रहा था, और NT व Windows95 के अंतर के कारण डिस्क फॉर्मैटिंग के लिए अलग UI की ज़रूरत पड़ी
  • फाइल सिस्टम, लेबल, क्लस्टर साइज, compression, encryption जैसे format options को पहले कागज़ पर व्यवस्थित किया गया, फिर VC++ 2.0 Resource Editor से एक vertical selection list बनाई गई
  • बेहतर UI आने तक इस्तेमाल के लिए बनाया गया यह temporary dialog लगभग 30 साल बाद भी लगभग उसी रूप में बना हुआ है
  • इसी काम के दौरान cluster slack की स्वीकार्य सीमा पर लिया गया एक मनमाना फैसला FAT volume format size की 32GB limit तक जा पहुंचा
  • temporary implementation भी लंबे समय के product behavior और constraints में बदल सकती है, इसलिए “temporary” समाधान जोड़ते समय सावधानी ज़रूरी है

गुरुवार सुबह बनाया गया Windows NT Format Dialog

  • 1994 के आखिर में Microsoft, Windows95 user interface code का बड़ा हिस्सा Windows NT में पोर्ट कर रहा था
  • Format फीचर वह हिस्सा था जहां NT और Windows95 के बीच बड़े अंतर के कारण अलग custom UI की ज़रूरत थी
  • डिस्क फॉर्मैटिंग में चुने जाने वाले विकल्प पहले कागज़ पर लिखे गए
    • फाइल सिस्टम
    • लेबल
    • क्लस्टर साइज
    • compression
    • encryption
  • इसके बाद VC++ 2.0 और Resource Editor का उपयोग करके विकल्पों को ज़रूरी क्रम के करीब एक vertical stack में रखा गया
  • यह UI किसी final design से ज़्यादा, बेहतर UI आने तक इस्तेमाल के लिए बनाई गई temporary implementation थी

अस्थायी implementation के लंबे असर

  • लगभग 30 साल बाद भी वह dialog उसी गुरुवार सुबह बने रूप में मौजूद है
  • FAT volume की format size का 32GB तक सीमित होना भी उसी समय के एक मनमाने निर्णय से निकला
    • उस समय यह तय करना था कि cluster slack कितनी सीमा तक स्वीकार्य माना जाए
    • उसी निर्णय से FAT volume format size limit बनी
  • “temporary” check-in, मंशा के विपरीत, product के लंबे समय के behavior और constraints के रूप में स्थायी हो सकता है

1 टिप्पणियां

 
GN⁺ 2024-03-26
Hacker News टिप्पणियां
  • Windows NT4 source code में यह पुष्टि हो सकी कि 13 फरवरी 1995 को उन्होंने format dialog code का कुछ हिस्सा पहली बार लिखा था, और 1994 के अंत से 1995 की शुरुआत वाली बात मोटे तौर पर सही है
    हालांकि NT4 FAT32 को support नहीं करता था, और FAT volumes में 64K clusters की अनुमति थी, इसलिए उस समय के कई systems से बड़ा, 4GB तक संभव था। NT4 के FAT format में cluster जांच या options नहीं थे, और cluster size volume size के हिसाब से तय होता था
    इसके अलावा FAT32 volumes की 32GB limit dialog box में नहीं, बल्कि internal format function में थी। Windows 2000 में 32GB से बड़े drive को FAT32 में format करने की कोशिश की जा सकती है, लेकिन format के अंत में hardcoded limit के कारण यह fail हो जाता है। वही function इस्तेमाल करने वाला command-line format.com भी ऐसा ही करता है
    समझ नहीं आता कि वे अपनी भागीदारी को हमेशा बढ़ा-चढ़ाकर क्यों बताते हैं। Microsoft ने Info-Zip से licensed Zip folders code लिया था, लेकिन integration के दौरान उन्होंने उसे छुआ था, इस वजह से कुछ लोग मानने लगे कि वह उन्होंने लिखा था। अब लगता है वे influencer बनने की कोशिश कर रहे हैं, और बढ़ा-चढ़ाकर कहना शायद ऐसे लोग करते हैं

    • याददाश्त भरोसेमंद नहीं होती, लेकिन FAT32 limit को format dialog ने enforce किया वाली कहानी Dave की पुरानी कहानियों में शायद सबसे बड़ी गलती के करीब है
      पता नहीं 1994 के अंत में FAT32 development में था या नहीं, लेकिन वह Windows NT 4 में भी शामिल नहीं था और शुरुआती Windows 95 में भी नहीं। जब वह Windows 95 OSR2 में आया, तब भी format command 128GiB partitions तक ठीक से accept करता था, हालांकि Windows 95 NT नहीं है
      असली वजह Windows 2000 का internal format function लगती है। GUI, format command और diskpart — तीनों 32GiB से बड़े file system नहीं बना सकते। उस समय इस size से बड़े drives पहले से थे, फिर ऐसा क्यों था, यह पता नहीं। Linux का mkdosfs जैसा कुछ इस्तेमाल करें तो Windows 2000+ का VFAT driver 2TiB volumes भी accept करता है, और ऐसे बड़े volume पर Windows 2000 install करना भी संभव है
    • Windows Vista के दौर में कुछ समय तक मैं Zip folders संभालता था, और मुझे पूरा यकीन था कि वह code Microsoft के अंदर नहीं लिखा गया था, बल्कि खरीदा गया code था
      सच कहूं तो वह ऐसा दिखता था जैसे किसी obfuscation tool से गुजरा हो, और मुझे लगा कि मूल लेखक ने Microsoft के लिए उसमें बदलाव या सुधार करना मुश्किल बनाने के लिए जानबूझकर ऐसा किया था। आज भी उस code के बुरे सपने आते हैं
    • plummer@visualzip.com के रूप में दिखाए गए "vzip150.zip" में info-zip से संबंधित कुछ नहीं है: https://www.sac.sk/files.php?d=7&l=V
      तो Corvette कहां से आई होगी: https://www.tomshardware.com/software/windows/dev-shows-off-...
    • reference के लिए source: https://github.com/lianthony/NT4.0/blob/b4a8d373d8a082db6758...
    • लगता है format वाला हिस्सा गलत याद है। UI में NTFS के लिए arbitrary cluster size से जुड़ा code जरूर है: https://github.com/lianthony/NT4.0/blob/b4a8d373d8a082db6758...
      लगता है वह code XP के कुछ versions में भी बचा हुआ था: https://github.com/tongzx/nt5src/blob/daad8a087a4e75422ec96b...
      ZIP support के लिए Zip folders का actual source code ढूंढना मुश्किल है। इसके बजाय किसी दूसरी कंपनी Schlumberger Technology Corp. का excerpted code है: https://github.com/tongzx/nt5src/blob/daad8a087a4e75422ec96b... comments पर भरोसा करें तो यह code 1996 में add किया गया था
  • Dave Plummer वाकई शानदार व्यक्ति हैं। मुझे अच्छा लगता है कि वे इतिहास के सबसे ज्यादा इस्तेमाल किए गए kernels में से एक बनाने की कहानी इतनी सहजता से लिखते हैं
    कहा जाता है कि उन्होंने Windows के लिए Task Manager, Windows NT के लिए Space Cadet Pinball port, Windows के लिए Zip file support, Amiga के लिए HyperCache[4] जैसे कई software बनाए, और software engineering क्षेत्र में 6 patents भी हासिल किए
    https://en.wikipedia.org/wiki/Dave_Plummer

  • यह एक आम जाल को अच्छी तरह दिखाता है। जब आप किसी समस्या को अस्थायी समाधान से “हल” कर देते हैं, तो बेहतर समाधान की प्राथमिकता उन सभी समस्याओं से कम हो जाती है जो अभी तक हल नहीं हुई हैं
    ऐसी अनसुलझी समस्याएँ हमेशा पर्याप्त संख्या में होती हैं, इसलिए कोई भी उस अस्थायी समाधान को दोबारा देखने नहीं आता

    • अपने करियर में मैंने ऐसा होते देखा है। सबक यह है कि जब तक आप खुद उस पर गर्व न कर सकें, तब तक उसे “रिलीज़” न करें। बेशक, यह कहना हमेशा करना जितना आसान नहीं होता
    • “काम कर रहे अस्थायी समाधान से ज़्यादा स्थायी कुछ नहीं होता”
      यह कहाँ सुना था, पता नहीं, लेकिन कंपनी में अस्थायी समाधान बाहर न भेजकर शुरुआत से ही सही तरीके से बनाने के लिए मनाने में मैं इसे अक्सर इस्तेमाल करता हूँ
    • सहमत नहीं हूँ। अगर आपने कोई feature ऐसा बनाया है कि 30 साल तक उसे ठीक करने की ज़रूरत नहीं पड़ी, तो मेरे हिसाब से यह efficient engineering की पूरी जीत है
  • “file system, label, cluster size, compression, encryption आदि disk format से जुड़े चुने जा सकने वाले सभी options कागज़ पर लिखे” वाली बात से “यह एक अस्थायी UI था जो elegant UI आने तक काम चलाने के लिए था” वाला निष्कर्ष ठीक से जुड़ता नहीं लगता
    ज़रूरी सभी options को सरल interface में दिखाया जा रहा है, तो और “elegant” interface में आखिर क्या होना चाहिए

  • वह dialog box अब भी बचा हुआ है ही, साथ ही उसने HP USB Disk Storage Format Tool जैसे tools को भी प्रभावित किया। 32GB FAT32 सीमा को bypass करते समय मैं हमेशा इसी tool का इस्तेमाल करता था: https://www.majorgeeks.com/files/details/hp_usb_disk_storage...

    • उपयोगी tool है। retro PCs के बीच game collection share करने के लिए 128GB FAT32 flash drive बनाते समय मैंने इसका इस्तेमाल किया था
  • यह अभी जैसा है वैसा ही perfect है, उम्मीद है इसे “elegant UI” से नहीं बदलेंगे

    • यह पहले ही Settings -> Storage -> Disks & volumes के तहत “replace” हो चुका है। File Explorer से चलाने पर पुराना dialog box इसलिए आता है क्योंकि File Explorer अभी भी ज़्यादातर legacy style app है
      format dialog के replacement के रूप में नया UI मुझे काफ़ी पसंद है। हालांकि Disk Manager functionality को replace करने वाला हिस्सा disk layout की graphical representation न होने के कारण थोड़ा कमज़ोर है
      basic view: https://i.imgur.com/56yZ8gZ.png
      advanced view section: https://i.imgur.com/fKb3R8c.png
      existing partition format: https://i.imgur.com/DmbX3FQ.png
      यह perfect नहीं है, लेकिन broadly वही layout बनाए रखते हुए OS theme से match करता है, और पुराने Disk Manager में जो options कई-page वाले wizard में थे, उनमें से कुछ भी जोड़े गए हैं। “start” की जगह “format” ज़्यादा direct है, और “close” की जगह “cancel” ज़्यादा सही है—ऐसे छोटे improvements भी हैं। बेशक कुछ लोग 33% ज़्यादा width को दुनिया का अंत भी मानेंगे
      हालांकि नए partition size को अब भी MB units में enter करवाना थोड़ा अजीब है। localized number separators तो जोड़ता है, लेकिन आगे numbers और बड़े होंगे, ऐसे में लाखों MB units का ध्यान रखवाना थोड़ा weird है
    • Format को update की ज़रूरत है। update तैयार किया जा रहा है…
    • disk defragmentation UI को बदलना वाकई अफ़सोसजनक है। blocks को इधर-उधर move होते देखना अच्छा लगता था। सिर्फ़ उसके लिए एक rotating metal hard disk संभालकर रखने लायक है
  • मेरे हिसाब से अस्थायी और स्थायी समाधान अलग-अलग नहीं होते, बल्कि खराब समाधान और अच्छे समाधान होते हैं। अच्छा समाधान जल्दी implement किया गया हो, फिर भी इतना अच्छा होता है कि बना रहता है
    खराब समाधान भी अगर कुछ समय तक अकेला या व्यावहारिक option हो, तो बना रह सकता है, और उसके बाद आने वाली हर चीज़ को उसके साथ backward compatibility रखनी पड़ती है

  • यूरोप के सबसे बड़े और पुराने banks में से एक में काम किया था, और production environment अक्सर ऐसे अस्थायी समाधानों से भरा रहता था
    आमतौर पर ये किसी पिछले temporary fix से पैदा हुई बड़ी problem को जल्दी ठीक करने के लिए बनाए गए एक और temporary fix होते थे

  • “काफ़ी अच्छे” अस्थायी समाधान से सावधान रहना चाहिए। कंपनी का core logging component एक intern ने लिखा था और उसके नाम में POC है
    data format भी वैसा ही था जैसा कोई intern बना सकता है, लेकिन जब तक सबने ठीक से notice किया, तब तक इतना data लिख चुका था कि उसे fix करने का budget और effort खुद problem से बड़ा हो चुका था

    • अगर इतने लंबे समय तक किसी ने notice नहीं किया, तो असल में वह काफ़ी अच्छा समाधान था और शायद छोटी-मोटी बहस करने लायक बात नहीं थी
      आप हमेशा हर चीज़ perfect नहीं कर सकते; सबसे important चीज़ों को priority देकर कम important चीज़ों को कुछ हद तक जाने देना पड़ता है—मैं खुद को यही समझाता हूँ
  • पुराने कहावत की तरह, अस्थायी समाधान जितना स्थायी कुछ नहीं होता

    • मुझे लगता है वह बात taxes के बारे में थी