Destekle iletişim

E-postayla, genellikle iki gün içinde yanıt veririz.

Google reCAPTCHA, kötüye kullanıma karşı bu gönderimi denetler; bu sırada veriler Google'a aktarılır. Komut dosyası yalnızca bu form açıldığında yüklenir.

← Tüm yazılar

Sekiz diyagramda fazladan bir kaçış işlemi

Bir süre boyunca bu blogdaki sekiz yazı, diyagramların içinde, cümle ortasında — biçimindeki yedi karakteri gösterdi. Bir tire değil. Harfi harfine metin olarak. O zamandan beri her dilde onarıldı.

81 satırda 91 kez. Aynı sekiz yazının düz metninde ise hiç yok.

tire yerine HTML varlığını basan diyagram satırları on bir dil çerezsiz sayım middot, mdash veriyi CSV/JSON olarak dışa aktarma mdash etiket yöneticisiyle sayaç mdash HTTPS sayfasında sayaç mdash chomikuj profilinde sayaç mdash uzun bir URL sayacı çökertti mdash hariç tutma listesi neden hash'lenmiyor mdash bellekte duran önbellek mdash 8 yazıda 81 satır, 91 kez — düz metinde ise hiç yok genişlik denetimi onları hatalı değil, fazla geniş gördü

Fazladan bir kaçış

Diyagramlar satır içi SVG'dir ve doğrudan yazının gövdesine yazılır. Tire isteyen bir etiket şunu taşır: —, tarayıcı da onu tıpkı bir paragrafta yaptığı gibi tireye çevirir.

Ancak kaydedilen şey şuydu: —. Tarayıcı bunu görev bilinciyle, bir varlığı harf harf yazan yedi karaktere çevirdi ve onları çizdi. Düz metne dokunulmamıştı, çünkü düz metin fazladan kaçışı ekleyen o adımdan hiç geçmemişti; yalnızca etiketler geçmişti, o da yalnızca etiketleri o dönemde oluşturulan yazılarda.

Nedeni küçük ve sıkıcı. Yazmaya değer olan kısım, bunun neden o kadar uzun süre göz önünde durduğu ve buna neyin son verdiği.

Denetim bunu gördü ve başka bir şey söyledi

Bir diyagram etiketinin görseline sığıp sığmadığını ölçen bir denetim var. Bu etiketleri günlerdir bildiriyordu, hep aynı gerekçeyle — fazla geniş.

Öyleydiler de. Bir yerine yedi karakter çizen bir etiket, amaçlanandan yaklaşık kırk beş piksel daha geniştir; yani ölçüm de doğruydu, bildirim de. Doğru olmayan, o bildirimi okuyan birinin çıkaracağı sonuçtu. Sayı, geometrinin fazla sıkışık olduğunu söylüyordu. Gerçek ise metnin göründüğü şey olmadığıydı.

Meselenin özü bu. Bir denetim kendisine sorulan soruyu yanıtlar ve sorunun yanlış olduğunu bildiremez. Burada hiçbir şey yanlış ölçülmedi; ölçüm yalnızca göründüğünden farklı bir sorunla ilgiliydi.

Hatayı ne buldu

Bir diyagramı çizdirip ona bakmak. Headless Chromium, bir ekran görüntüsü, on saniye. Varlık, görselin üçüncü satırında, diğer her şeyle aynı boyuttaki harflerle duruyordu.

Onarım bir veritabanı geçiş betiğiyle yapıldı; bu betik &amp; dizisini & ile değiştirdi, bunu sabit bir varlık adı listesiyle sınırlı tuttu ve yalnızca <svg class="dg"> blokları içinde yaptı; böylece gerçekten ve işareti anlamında kullanılan işaretlere dokunulmadı. Listenin dışındaki her şey tahminle düzeltilmek yerine raporlandı ve olduğu gibi bırakıldı. 81 satırın tamamı her dilde düzeltildi; blogda kalan tek örnekler, bu yazıda bilerek alıntılananlar.

Buradan çıkan ders

Bu projedeki her otomatik denetim sayısal bir şey ölçer, çünkü bir programın karşılaştırabildiği şey sayılardır. Hiçbiri bir görselin anlamsızlaştığını, bir kutunun boş olduğunu ya da bir simgenin olması gereken yerde bir kelimenin harf harf yazıldığını göremez.

Bu yüzden buradan çıkan kural kısa: bir diyagramda yapılan her değişiklikten sonra, en çok yere ihtiyaç duyan dilde bir diyagram çizdirip ona bakmak. Bu kural şimdiye dek hiçbir ölçümün yakalayamayacağı iki şeyi yakaladı — bunu ve içinden bir başlık taşındığında geride kalan boş bir kutuyu.

Reklam