1 puan yazan GN⁺ 2024-03-26 | 1 yorum | WhatsApp'ta paylaş
  • 1994 sonlarında Microsoft, Windows95 UI kodunu Windows NT’ye taşırken, NT ile Windows95 arasındaki farklar nedeniyle disk biçimlendirme için ayrı bir UI’a ihtiyaç duydu
  • Dosya sistemi, etiket, küme boyutu, sıkıştırma, şifreleme gibi biçimlendirme seçenekleri kâğıda döküldükten sonra VC++ 2.0 Resource Editor ile dikey bir seçim listesi oluşturuldu
  • Daha iyi bir UI gelene kadar kullanılmak üzere yapılan geçici iletişim kutusu, yaklaşık 30 yıl sonra bile o dönemki hâliyle duruyor
  • Aynı çalışma sürecinde cluster slack için kabul edilebilir aralığın keyfî biçimde belirlenmesi, FAT birimleri için biçimlendirme boyutu sınırının 32GB olmasına yol açtı
  • Geçici olarak check-in edilen bir uygulama bile uzun vadeli ürün davranışına ve kısıtlarına dönüşebileceğinden, “temporary” çözümler eklerken dikkatli olmak gerekiyor

Perşembe Sabahı Yapılan Windows NT Format Dialog

  • 1994 sonlarında Microsoft, Windows95 kullanıcı arayüzü kodunun önemli bir bölümünü Windows NT’ye port ediyordu
  • Format özelliği, NT ile Windows95 arasındaki farkların büyük olması nedeniyle ayrı bir özel UI gerektiren alanlardan biriydi
  • Disk biçimlendirmede seçilecek öğeler önce kâğıt üzerinde düzenlendi
    • Dosya sistemi
    • Etiket
    • Küme boyutu
    • Sıkıştırma
    • Şifreleme
  • Ardından VC++ 2.0 ve Resource Editor ile seçim öğeleri, gereken sıraya yakın olacak şekilde dikey bir yığın hâlinde yerleştirildi
  • Bu UI, tamamlanmış bir tasarımdan ziyade, daha iyi bir UI gelene kadar kullanılacak geçici bir uygulamaydı

Geçici Uygulamanın Bıraktığı Uzun Vadeli Etki

  • Yaklaşık 30 yıl sonra bile söz konusu iletişim kutusu, o Perşembe sabahı oluşturulan hâliyle duruyor
  • FAT birimleri için biçimlendirme boyutunun 32GB ile sınırlanması da aynı dönemde alınan keyfî bir karardan kaynaklandı
    • O sırada cluster slack’in ne kadarına izin verileceğine karar vermek gerekiyordu
    • Bu karar, FAT birimi biçimlendirme boyutu sınırına dönüştü
  • “temporary” check-in’ler, niyetin aksine ürünün uzun vadeli davranışı ve kısıtları olarak kalıcılaşabilir

1 yorum

 
GN⁺ 2024-03-26
Hacker News yorumları
  • Windows NT4 kaynak kodunda, 13 Şubat 1995’te format iletişim kutusu kodunun bir kısmını ilk kez onun yazdığı doğrulanabiliyor; yani 1994 sonu–1995 başı ifadesi genel olarak doğru
    Ancak NT4 FAT32 desteklemiyordu; FAT birimleri de 64K kümelere izin verdiği için o dönemdeki pek çok sistemden daha büyük, 4GB’a kadar çıkabiliyordu. NT4’ün FAT formatında küme denetimi ya da seçenek yoktu; küme boyutu birim boyutuna göre belirleniyordu
    Üstelik FAT32 birimlerindeki 32GB sınırı iletişim kutusunda değil, dahili format fonksiyonu tarafındaydı. Windows 2000’de 32GB’tan büyük bir sürücüyü FAT32 olarak biçimlendirmeyi deneyebilirsiniz, ama biçimlendirmenin sonunda hard-coded sınır yüzünden başarısız olur. Aynı fonksiyonu kullanan komut satırı aracı format.com için de durum aynıdır
    Onun kendi katkısını neden sürekli abarttığını bilmiyorum. Microsoft’un Info-Zip’ten lisansladığı Zip klasör kodunu da, entegrasyon sırasında dokunduğu için onun yazdığına inananlar çıktı. Şimdi bir influencer olmaya çalışıyor gibi; abartı da böyle insanların yaptığı bir şey sanki

    • Hafızaya güvenmek zor, ama FAT32 sınırını format iletişim kutusunun dayattığı hikâyesi Dave’in eski hikâyeleri içindeki en büyük hatalardan birine yakın
      1994 sonunda FAT32 geliştirme aşamasında mıydı bilmiyorum, ama ne Windows NT 4’te ne de ilk Windows 95’te vardı. Windows 95 OSR2’ye girdiğinde bile format komutu 128GiB bölümleri sorunsuz kabul ediyordu; gerçi Windows 95, NT değil
      Asıl neden Windows 2000’in dahili format fonksiyonu gibi görünüyor. GUI, format komutu ve diskpart’ın hiçbiri 32GiB üstünde dosya sistemi oluşturamıyor. O dönemde zaten bu boyutun üzerinde sürücüler vardı; bunun neden böyle yapıldığı belli değil. Linux’taki mkdosfs gibi bir şey kullanırsanız Windows 2000+’ın VFAT sürücüsü 2TiB birimleri bile kabul ediyor ve bu kadar büyük birimlere Windows 2000 kurulabiliyor
    • Windows Vista döneminde bir süre Zip klasörlerinden sorumluydum; o kodun Microsoft içinde yazılmadığına, satın alınmış kod olduğuna emindim
      Açıkçası bir obfuscation aracından geçmiş gibi görünüyordu ve asıl yazarın Microsoft’un değişiklik ya da iyileştirme yapmasını zorlaştırmak için bunu bilerek yaptığını düşünmüştüm. Hâlâ o kodun kâbuslarını görüyorum
    • plummer@visualzip.com olarak görünen "vzip150.zip" içinde info-zip ile ilgili bir şey yok: https://www.sac.sk/files.php?d=7&l=V
      Öyleyse Corvette nereden çıktı: https://www.tomshardware.com/software/windows/dev-shows-off-...
    • Başvuru için kaynak: https://github.com/lianthony/NT4.0/blob/b4a8d373d8a082db6758...
    • Format kısmını yanlış hatırlıyor gibi. UI’da NTFS için isteğe bağlı küme boyutu ile ilgili kod var: https://github.com/lianthony/NT4.0/blob/b4a8d373d8a082db6758...
      O kod XP’nin bazı sürümlerinde de kalmış gibi görünüyor: https://github.com/tongzx/nt5src/blob/daad8a087a4e75422ec96b...
      ZIP desteği konusunda Zip klasörlerinin kendi kaynak kodunu bulmak zor. Bunun yerine başka bir şirket olan Schlumberger Technology Corp.’tan alınmış kod parçaları var: https://github.com/tongzx/nt5src/blob/daad8a087a4e75422ec96b... yorumlara inanırsak 1996’da eklenmiş kod
  • Dave Plummer gerçekten harika biri. Tarihin en yaygın kullanılan çekirdeklerinden birini yaparken yaşadıklarını bu kadar sakin anlatması hoşuma gidiyor
    Windows için Görev Yöneticisi, Windows NT için Space Cadet Pinball portu, Windows için Zip dosya desteği, Amiga için HyperCache[4] gibi pek çok yazılım geliştirmiş; ayrıca yazılım mühendisliği alanında 6 patenti olduğu söyleniyor
    https://en.wikipedia.org/wiki/Dave_Plummer

  • Yaygın bir tuzağı iyi gösteriyor. Bir sorunu geçici çözümle “çözdüğünüzde”, daha iyi çözümün önceliği hâlâ çözülmemiş tüm sorunların altına düşer.
    Böyle çözülmemiş sorunlar her zaman yeterince çoktur; bu yüzden kimse geçici çözüme tekrar dönüp bakmaz.

    • Kariyerimde bunun yaşandığını gördüm. Çıkarılacak ders şu: Kendinizin gurur duyacağı seviyeye gelmeden “yayınlamayın”. Elbette bu her zaman söylendiği kadar kolay olmayabilir.
    • “Çalışan bir geçici çözümden daha kalıcı bir şey yoktur.”
      Nerede duydum bilmiyorum ama şirkette geçici çözüm göndermek yerine baştan düzgün yapmaya ikna etmek için sıkça kullanırım.
    • Katılmıyorum. Bir özelliği 30 yıl boyunca düzeltilmesine gerek kalmadan dayanacak şekilde geliştirdiyseniz, bence bu verimli mühendisliğin tam bir zaferidir.
  • “Dosya sistemi, etiket, küme boyutu, sıkıştırma, şifreleme vb. disk biçimlendirmeyle ilgili seçilebilecek tüm seçenekleri kâğıda yazdım” akışından “zarif UI gelene kadar idare edecek geçici bir UI idi” sonucuna pek varılamıyor gibi.
    Gerekli tüm seçenekleri basit bir arayüzde gösteriyorsa, daha “zarif” arayüzde ne olması gerekiyor ki?

  • O iletişim kutusu hâlâ durmakla kalmadı, HP USB Disk Storage Format Tool gibi araçları da etkiledi. 32GB FAT32 sınırını aşmak için her zaman kullandığım araçtı: https://www.majorgeeks.com/files/details/hp_usb_disk_storage...

    • Kullanışlı bir araç. Retro PC’ler arasında oyun koleksiyonlarını paylaşmak için 128GB FAT32 flash sürücüler oluştururken kullanmıştım.
  • Şu hâliyle mükemmel; umarım “zarif UI” ile değiştirmezler.

    • Zaten Settings -> Storage -> Disks & volumes altında “yerine konmuş” durumda. File Explorer’dan çalıştırınca eski iletişim kutusunun çıkması, File Explorer’ın hâlâ büyük ölçüde legacy tarzı bir uygulama olmasından kaynaklanıyor.
      Biçimlendirme iletişim kutusunun yerine gelen yeni UI’ı oldukça beğeniyorum. Ancak Disk Manager işlevlerini ikame eden kısmı, disk düzeninin grafiksel gösterimi olmadığı için biraz eksik kalıyor.
      Varsayılan görünüm: https://i.imgur.com/56yZ8gZ.png
      Gelişmiş görünüm bölümü: https://i.imgur.com/fKb3R8c.png
      Mevcut bölümü biçimlendirme: https://i.imgur.com/DmbX3FQ.png
      Mükemmel değil ama aynı yerleşimi büyük ölçüde koruyup OS temasına uydurmuş; eski Disk Manager’da birkaç sayfalık sihirbaz olan bazı seçenekleri de eklemiş. “start” yerine “format”ın daha doğrudan olması, “close” yerine “cancel”ın daha uygun olması gibi küçük iyileştirmeler de var. Tabii genişliğin %33 artmasını dünyanın sonu gibi görecek kişiler de olacaktır.
      Yine de yeni bölüm boyutunu hâlâ MB cinsinden girdirmesi muğlak. Yerelleştirilmiş sayı ayırıcıları koyuyor ama gelecekte sayılar daha da büyüyecekken milyonlarca MB’ı önemsemek biraz tuhaf.
    • Format için güncelleme gerekiyor. Güncelleme hazırlanıyor…
    • Disk birleştirme UI’ını değiştirmeleri gerçekten üzücü. Blokların oradan oraya taşındığını izlemeyi severdim. Sırf bunun için döner metal sabit disklerden birini saklamaya değer.
  • Geçici çözüm ve kalıcı çözüm ayrı şeylermiş gibi değil de, kötü çözümler ve iyi çözümler var diye düşünüyorum. İyi çözüm, hızlı uygulanmış olsa bile yeterince iyi olduğu için kalmaya devam eder.
    Kötü çözüm de bir süre tek ya da gerçekçi seçenekse kalabilir ve sonrasında gelen her şeyin onunla geriye dönük uyum sağlaması gerekir.

  • Avrupa’nın en büyük ve en eski bankalarından birinde çalıştım; operasyon ortamı çoğu zaman böyle geçici çözümlerle doluydu.
    Genellikle önceki geçici düzeltmenin yarattığı büyük bir sorunu hızla düzeltmek için yine geçici olarak yapılmış şeylerdi.

  • “Yeterince iyi” geçici çözümlere dikkat etmek gerek. Şirketin çekirdek loglama bileşeni bir stajyer tarafından yazılmıştı ve adında POC geçiyordu.
    Veri formatı da bir stajyerin yapacağı türdendi; herkes bunu doğru düzgün fark ettiğinde ise çok fazla veri yazılmıştı ve düzeltmenin bütçesiyle emeği, sorunun kendisinden daha büyük hâle gelmişti.

    • Uzun süre kimse fark etmediyse, aslında yeterince iyi bir çözüm olmuş olabilir ve küçük bir tartışmaya değmeyebilir.
      Her şeyi her zaman mükemmel yapamayacağımı; en önemli olana öncelik verip daha az önemli olanları bir ölçüde geçiştirmem gerektiğini söyleyerek kendimi teselli ederim.
  • Eski deyişteki gibi, geçici çözüm kadar kalıcı bir şey yoktur.

    • Sanırım o söz vergiler hakkındaydı.