SimuLook · Kameradan notlar
Parlak ton ve gölge ton yarım adımlarla hareket ediyor, biz de yuvarlayıp atıyorduk
Güncel bir Fujifilm’de parlak tonu ayarlayın; kadran −1, 0, +1 diye gitmiyor. −1, −0,5, 0, +0,5, +1 diye gidiyor. Gölge ton için de aynısı. Ton ayarları arasında yalnız bu ikisi yarım adımlarla hareket ediyor.
Uygulamamız bunları tam sayı olarak saklıyordu. Ondan sonraki her yol da öyle.
Bunun gerçek maliyeti
Kalibrasyon için kullandığımız kameradaki yedi slotun üçü −0,5’e ayarlı. O slotlardan birini uygulamaya okuyun; değer daha girişte yuvarlanıyordu — kaydedilmeden, yayımlanmadan, geri yazılmadan önce.
Sonuçlar, ilk duyulduğundan daha kötü bir biçimde üst üste biniyor:
- Kameranızdan okuduğunuz bir tarif, kameranızdaki tarif değildi. Ondan yarım kademe uzaktı.
- Yayımlayın; kaydeden herkes yuvarlanmış hâlini aldı.
- Bir slota geri yazın; kamera daha önce hiç tutmadığı bir değeri tutar hâle geldi.
- Çekildiği fotoğrafla eşleştirin; uygulama tam eşleşme bildirdi, çünkü iki taraf da yuvarlanarak uyuşmuştu.
En kötüsü sonuncusu. Bir fotoğrafı kütüphanenizle eşleştirmenin bütün amacı farkı adlandırmak. Yuvarlama, gerçek bir farkı sahte bir onaya çeviriyor.
Yorum zaten oradaydı
Yuvarlama, kimsenin fark etmediği bir gözden kaçırma değildi. Hemen üstünde duran bir yorum, modelin tonu tam sayı olarak sakladığını, güncel gövdelerin yarım adım sunduğunu ve bunun kameranın değil uygulamanın sınırı olduğunu söylüyordu.
Birisi bunu doğru biçimde yazmış ve yoluna devam etmiş. Aylarca doğru kaldı.
Bunu anlatıyoruz, çünkü ders “tiplerinizi kontrol edin” değil. Ders şu: bir yoruma yazılmış bilinen sınır, giderilmiş bir sınır değildir; ve bir kod tabanı, siz izin verdiğiniz sürece kendi hatasının doğru tarifini seve seve taşır.
Düzeltmeyi hassas kılan kısım
Bariz onarım, alanı ondalığa çevirip sunucuya −0,5 yazmak. Bu, güncellemeyen herkes için uygulamayı bozardı.
Sevk edilmiş sürümler o alanı tam sayı olarak çözüyor. Ellerine kesirli bir şey geçtiğinde yumuşak biçimde bozulmuyorlar — hata fırlatıyorlar. Topluluk akışının bir sayfası tek bir liste olarak çözüldüğü için, yarım adımlı tek bir tarif, eski sürümde kalan her kullanıcının Keşfet ekranını boşaltırdı. Bir tarif, herkesin akışı.
Bu yüzden değer iki kez yolculuk ediyor. Eski alan, o istemcilerin zaten okuduğu yuvarlanmış sayıyı olduğu gibi taşımaya devam ediyor. İkinci bir alan, kesin değeri kameranın kendi biriminde taşıyor — gövde tonu onda birlik sakladığı için −0,5 aslında −5’tir; bu bir tam sayıdır ve bir ondalığın gidiş dönüşten sağ çıkıp çıkmayacağı sorusunu tamamen atlar.
Bu sözü bir yorum değil, iki test tutuyor: biri, güncel uygulamanın yazdığını eski sözleşmenin şeklindeki bir yapıya çözüyor ve hâlâ tam sayı okuduğunu doğruluyor; diğeri her alanı gidiş dönüşe sokuyor, böylece elle yazılmış kodlayıcının dışında kalan bir özellik, ayarlarınızdan birini sessizce düşürmek yerine test paketini düşürüyor.
Aşağıdaki her şeyin de uyması gerekti
Bir değer, ancak yol boyunca hiçbir şey onu yeniden yuvarlamıyorsa korunmuş olur.
İki editör de artık yarım adımlarla ilerliyor. Tam adımlı bir editör, sahibi tarifi açar açmaz onu yeniden yuvarlardı — aynı kayıp, bir sınır ötede. Kameraya yazma yolu kesin onda birlikleri gönderiyor, yani aynı gövdeden okuduğunuz bir slotu yazmak artık orada gerçekten olanı geri getiriyor. Geri okuma denetimi, kayan nokta gürültüsüne toleransını koruyor ama gerçek bir yarım kademelik farkı affetmiyor. Fotoğraf eşleştirici de −0,5 ile 0 arasındaki farkı bildiriyor ve adlandırıyor.
Bunu neden yazıyoruz
Çünkü uygulamanın iddiası, ayarlarınız hakkında size doğruyu söylediği; ve aylarca size sessizce yarım kademe şaşan bir şey söyledi.
Düzeltme yerinde. Yayımladığımız altı tarif kesin değerlerine düzeltildi. Ama kesin olduğunu iddia eden bir uygulamanın, ne zaman olmadığını da söyleyebilmesi gerekir; yoksa iddia sadece pazarlamadır.
SimuLook geliştirilirken yazıldı — Fujifilm film benzetimi tariflerini okuyan ve yazan bir uygulama. Desteklenen kameraları görün · Diğer notları okuyun