Windows NT का ‘Format Dialog’ फीचर
(twitter.com/davepl1968)- 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 टिप्पणियां
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 बनने की कोशिश कर रहे हैं, और बढ़ा-चढ़ाकर कहना शायद ऐसे लोग करते हैं
पता नहीं 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 करना भी संभव है
सच कहूं तो वह ऐसा दिखता था जैसे किसी obfuscation tool से गुजरा हो, और मुझे लगा कि मूल लेखक ने Microsoft के लिए उसमें बदलाव या सुधार करना मुश्किल बनाने के लिए जानबूझकर ऐसा किया था। आज भी उस code के बुरे सपने आते हैं
तो Corvette कहां से आई होगी: https://www.tomshardware.com/software/windows/dev-shows-off-...
लगता है वह 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
यह एक आम जाल को अच्छी तरह दिखाता है। जब आप किसी समस्या को अस्थायी समाधान से “हल” कर देते हैं, तो बेहतर समाधान की प्राथमिकता उन सभी समस्याओं से कम हो जाती है जो अभी तक हल नहीं हुई हैं
ऐसी अनसुलझी समस्याएँ हमेशा पर्याप्त संख्या में होती हैं, इसलिए कोई भी उस अस्थायी समाधान को दोबारा देखने नहीं आता
यह कहाँ सुना था, पता नहीं, लेकिन कंपनी में अस्थायी समाधान बाहर न भेजकर शुरुआत से ही सही तरीके से बनाने के लिए मनाने में मैं इसे अक्सर इस्तेमाल करता हूँ
“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...
यह अभी जैसा है वैसा ही perfect है, उम्मीद है इसे “elegant UI” से नहीं बदलेंगे
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 है
मेरे हिसाब से अस्थायी और स्थायी समाधान अलग-अलग नहीं होते, बल्कि खराब समाधान और अच्छे समाधान होते हैं। अच्छा समाधान जल्दी 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 से बड़ा हो चुका था
आप हमेशा हर चीज़ perfect नहीं कर सकते; सबसे important चीज़ों को priority देकर कम important चीज़ों को कुछ हद तक जाने देना पड़ता है—मैं खुद को यही समझाता हूँ
पुराने कहावत की तरह, अस्थायी समाधान जितना स्थायी कुछ नहीं होता