1 puan yazan GN⁺ 22 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Medium web editöründe yalnızca Lehçe büyük Ś harfinin girilememesine yol açan hata; giriş alışkanlıkları, PC ithalat ortamı, kaydetme kısayolu alışkanlığı ve Windows’un Right Alt işleme biçiminin üst üste gelmesiyle ortaya çıktı
  • Lehçe, Latin alfabesine 9 aksanlı harf ekleyerek yazılır; erken PC ortamlarında özel klavye yerine Alt+Latin harfi kombinasyonlarını kullanan “programmer’s layout” fiilen standart hâline geldi
  • Windows, Right Alt’ı içeride Ctrl+Alt gibi eşlediği için, Ś girmek için kullanılan Right Alt+S sistem açısından Ctrl+Alt+S gibi görünmeye başladı
  • Medium, tarayıcının kaydetme iletişim kutusunu engellemek için Ctrl+S’i yakalayıp preventDefault() çağırıyordu; ancak Alt’ın basılı olup olmadığını kontrol etmediği için harf girişinin kendisini engelledi
  • Düzeltme, Ctrl+S’i engelleme koşuluna !e.altKey ekleyen küçük bir değişiklikti; bu da İngilizcedeki 26 harf merkezli bilişim alışkanlıklarının başka dilleri kullananlar için nasıl istisnalar ve sürtüşmeler yaratabildiğini gösterdi

Medium’da kaybolan Ś

  • Bir kullanıcı, Medium’da Lehçe bir yazı yazmaya başladığında diğer harflerin girildiğini ama yalnızca Ś harfinin girilemediğini bildirdi
  • Medium belirli bir dili özel olarak ele almıyordu; bu yüzden Lehçedeki 32 harf içinde neden yalnızca bu harfin sorun çıkardığı başta tuhaf görünüyordu
  • Sebep tek bir özelliğin kusuru değil, onlarca yıla yayılan giriş yöntemleri ile işletim sistemi işleme biçimlerinin çakışmasının sonucuydu

Lehçe ve ek harfler

  • Lehçe, Rusçadan sonra en çok kullanılan Slav dilidir ve Ukraynacanın önündedir
  • Rusça ve Ukraynacadan farklı olarak Lehçe, İngilizce/Latin alfabesini temel alır ama birkaç harf ekler
  • Aslen Lehçe sözcüklerde Q, V, X yoktur; ancak Latince ve alıntı sözcükler için korunurlar
  • Bunun yerine Latin harflerini temel alan 9 aksanlı harf daha kullanılır
    1. yüzyılın başındaki daktilolar bu ek harfleri desteklemek zorundaydı; bazı harfler ayrı tuşlar aldı, kalanlar ise sayı tuşlarıyla paylaşıldı
    • Büyük harfler bazen Latin harfi yazıldıktan sonra backspace ile geri dönüp aksan eklenerek “simüle” edilirdi
    • Ek harflere yer açmak için noktalı virgül ve parantez gibi noktalama işaretlerinden de vazgeçildiği olurdu

Komünist Polonya’da PC ortamı ve programmer’s layout

  • 1980’lerde Polonya’daki erken kişisel bilgisayar ortamı, harcanabilir gelir eksikliği ve Batı bilgisayarlarının ticari ithalatının yasak olması gibi kısıtlarla karşı karşıyaydı
  • Batı’dan gelen bilgisayarlar çoğu zaman orijinal kılavuzları, çevrilmemiş yazılımları ve Amerikan klavyesiyle geliyordu
  • Fransa ve Almanya gibi ülkeler daktilo düzenlerini yansıtan özel klavyeler alırken, Polonya’nın Amerikan klavyesinde 9 ek harfi girmenin bir yolunu bulması gerekiyordu
  • Ctrl zaten kısayollarda yaygın olarak kullanılıyordu, Alt ise görece daha az kullanılıyordu; bu yüzden Alt kombinasyonları fiilen standart hâline geldi
    • 8 aksanlı harf, karşılık gelen Latin harfine atandı
    • Kalan bir harf ise yakındaki bir tuşa atandı
  • Mevcut düzene “typist’s layout”, yeni yönteme ise “programmer’s layout” denildi
    • Bunun nedeni erken PC kullanıcılarının çoğunlukla programcı olması olabilir
    • Ya da programlamada sık kullanılan noktalama işaretlerini olduğu gibi koruması olabilir
  • programmer’s layout, tek sol Alt ile yakındaki tuşları aynı elle basmayı gerektirdiği için ergonomik olarak rahatsızdı; ancak donanım değişikliği ya da etiket gerektirmeden anlaşılması kolay olduğu için yerleşti
  • Daha sonra özel typist’s keyboard ortaya çıktı, ama neredeyse kimse geçiş yapmadı; bu da daha az ideal olan QWERTY’nin yaygın biçimde yerleşmesine benzer bir seyir izledi

Ctrl+S alışkanlığı ile web editörünün çakışması

  • Otomatik kaydetme yaygınlaşmadan önce belgeleri elle kaydetme alışkanlığı önemliydi
  • 1980’ler ve 1990’lardaki kaydetme işlemleri yavaştı; disk gibi ortamları azar azar yıpratır, bazen CPU’yu yoğun biçimde meşgul ederek başka iş yapmayı zorlaştırırdı
  • Kullanıcılar yazarken her nefeslendiklerinde Command+S veya Ctrl+S’e basma alışkanlığı edindi
    • Bazıları her paragrafta basardı
    • Bazıları her cümlede, daha sonra da birkaç kelimede bir basardı
  • Web tabanlı editörlerde bu alışkanlık, tarayıcının geçerli web sayfası HTML’ini kaydetme iletişim kutusunu açması sorununa yol açtı
  • Medium da geçmişte bunu engellemek için editör kodunda Ctrl+S veya Command+S’i algılayıp kaydetmeyi çağırıyor ve varsayılan davranışı engelliyordu
if ((e.metaKey || e.ctrlKey) && e.keyCode === goog.events.KeyCodes.S) {
  this._editors.save()
  e.preventDefault()
}
  • Bu kod, Mac’te metaKey veya Windows/Linux’ta ctrlKey ile S birlikte basıldığında editör kaydetmeyi çalıştırır ve tarayıcının kaydetme iletişim kutusunu engeller
  • Sorun, bazı ortamlarda Lehçe Ś girişinin basit bir Alt+S gibi görünmemesiydi

Windows’un Right Alt işleme biçimi

  • Windows 3.x ve Windows 95, menü öğelerine ve iletişim kutusu kontrollerine Alt+altı çizili harf ile hızlı erişim sağlıyordu
  • Polonya’da Alt zaten aksanlı harf girişi için kullanıldığından Windows kısayollarıyla çakışıyordu
  • Klavyeler geliştikçe boşluk çubuğunun sağına ikinci bir Alt tuşu eklendi; böylece sol Alt’ı Windows kısayolları, sağ Alt’ı ise Lehçe giriş için kullanmak mümkün oldu
  • Ancak Right Alt işlevinin, yalnızca tek Alt tuşu olan eski klavyelerde de mümkün olması gerektiğinden Microsoft, Windows içinde Right Alt’ı nadiren kullanılan Ctrl+Alt eşzamanlı giriş kombinasyonu olarak eşledi
  • Bu karar nedeniyle Lehçe Ś girmek için kullanılan Right Alt+S, sistem açısından Ctrl+Alt+S gibi görünmeye başladı
  • Medium’un Ctrl+S engelleme kodu, Alt’ın da basılı olup olmadığını kontrol etmiyordu; sonuç olarak Ś girişini kaydetme kısayolunu engelleme işlemiymiş gibi bloke etti

Düzeltme: Alt basılıyken bunu Ctrl+S saymamak

  • Sebep anlaşıldıktan sonra düzeltme basitti
  • Ctrl+S’i koşulsuz engellemek yerine, Ctrl basılı olsa bile yalnızca Alt basılı değilse engelleyecek şekilde koşul değiştirildi
if ((e.metaKey || (e.ctrlKey && !e.altKey)) && e.keyCode === goog.events.KeyCodes.S) {
  this._editors.save()
  e.preventDefault()
}
  • Değişiklikten sonra Right Alt+S girişi, Ctrl+S kaydetme engelleme koşuluna takılmadı
  • Medium bu hatayı düzeltti ve söz konusu koşul satırına sonradan insanların anlayabilmesi için birçok yorum eklendi

Küçük bir koşul ifadesinin ardındaki daha büyük sorun

  • Polonya’da komünizm 1989’da çöktü ve artık bilgisayarlar hem bireyler hem de şirketler tarafından yasal olarak ithal edilebiliyor
  • Bugün Polonya’da satın alınan Windows ve Mac’ler Lehçeyi tamamen destekliyor ve işletim sistemleri de yerelleştirilmiş durumda
  • Buna rağmen sistem ayarlarında hâlâ programmer’s layout bulunuyor ve iki düzen arasında en yaygın kullanılan seçenek olarak kalıyor
  • Bu küçük hata, Amerikan bilişim alışkanlıklarının İngilizcedeki 26 aksansız harf etrafında gelişmiş olması gerçeğiyle bağlantılı
  • Lehçe, QWERTY türevi düzenler arasında gidip gelerek uzlaşmak zorunda kaldı; İngilizceden daha da uzak yazı sistemleri kullanan diller ise daha dezavantajlı koşullarla karşılaşabilir

1 yorum

 
Hacker News görüşleri
  • Lehçenin Latin alfabesini kullanması ve ek ses değerlerini küçük Slav tarzı uyarlamalarla göstermesi sayesinde Polonya’nın Batı’ya yönelim açısından uyum sağlamasının çok daha kolay olduğunu düşünüyorum
    Ortalama bir Polonyalı, Ukraynalı ya da Rus’tan ziyade batı komşularına kültürel olarak çok daha yakındır; muhtemelen tek istisna mutfak olabilir

    • Kazakistan da Rusya yerine Avrupa tarafına daha çok yönelmek için Kiril alfabesinden Latin alfabesine geçmeye karar verdi https://www.bbc.com/worklife/article/20180424-the-cost-of-ch...
      Uzak gelecekte Ukrayna’nın da aynı yolu izleyip izlemeyeceğini merak ediyorum
    • Latin alfabesinin benimsenmesi başlı başına Bizans dünyasından değil, Latin dünyasındaki krallıklardan yana bir Batı tercihi idi ve Ortodoksluk yerine Katolikliğin kabulüyle de bağlantılıydı
    • Kabaca özetlemek gerekirse, 10. yüzyılda Mieszko’nun Çek prensesi Doubravka/Dobrawa ile evlenmesiyle Hristiyanlığın Polonya’ya girmesi gibi, Jan Hus’un Çekçeyi düzenleme çabalarından doğan Çek yazısı, yani Latin alfabesi de benimsendi
      Akademisyenler, Lehçenin yaklaşık aynı dönemde ayrı bir dil olarak gelişmeye başladığını düşünüyor ve 13. yüzyıla kadar güney komşularıyla büyük sorunlar yaşamadan iletişim kurulabildiğini belirtiyor
      15. ve 16. yüzyıllarda Lehçe yazım sistemi şekillendi; Stanisław Zaborowski ve Jan Kochanowski, dönemin Lehçe ses yapısını daha doğru yansıtmak için yeni harfler getirmeye çalıştı ama önerdikleri alfabe oldukça uzundu
      Bölüşüm döneminde Lehçe ile Polonya kültürünü ortadan kaldırmaya yönelik güçlü bir Ruslaştırma vardı ve Kiril alfabesini getirme girişimleri de oldu, ancak sonuçta başarısız kaldı; o dönemin edebiyatında da yurtseverlik ve vatan sevgisi temaları çok yaygındı
      1936 dil reformuyla bugünkü bildiğimiz biçime yaklaşıldı ve komünizm döneminde Çekçe ve Slovakçadaki vykání benzeri şekilde resmî dilde ikinci çoğul şahıs kullanımı getirildi, ancak bu yapay ve siyasî yüklü bulunduğu için uzun ömürlü olmadı
      Lehçede lehçeler var, ancak II. Dünya Savaşı sonrası göçlerle farklar bulanıklaştı ve standart Lehçe de o dönemde yerleşti; bugün ise İngilizceden ödünçlemeler çoğaldı ve hater sözcüğünün hejter gibi doğallaşması görülebiliyor
    • Katolik olması da yardımcı oluyor
    • Polonya mutfağı Alman mutfağına çok benziyor
      Bu söz birçok Polonyalıyı epey kızdıracaktır
  • Asıl sorun, tarayıcıların tuş kombinasyonlarını denetlemenin basit bir yolunu sunmaması ve geliştiricilerin de bunu kendilerinin yapmaması
    Birçok sitede hedeflenen tuş kombinasyonu, alt ya da shift gibi ek değiştirici tuşlar basılı olsa bile yine de çalışıyor
    Buradaki kod da Windows’ta yalnızca daha büyük bir sorunu düzeltiyor, ama alt+cmd+s hâlâ engelleniyor
    Tarayıcıların keydown/up/press olaylarına CTRL+S, CTRL+ALT+S gibi tuş kombinasyonu kodu içeren bir özellik eklemesini öneren bir teklif gerekli
    Böylece geliştiriciler tuş kodu ve değiştirici tuşları tek tek denetlemek yerine bu özellik üzerinden dallanabilir
    Web geliştiricileri de kendi kodlarında böyle bir özelliği kendileri üretip değiştirici tuşları tek tek incelemek yerine doğrudan karşılaştırma yapabilse iyi olurdu. Orijinal yazıdaki gibi hatalar da önlenir ve kullanımı çok daha rahat olur

    • Bu hata, kullanıcı Control S tuşuna basınca kayıt iletişim penceresinin açılması sorununu düzeltmeye çalışan bir geliştiricinin temelde hataya açık bir davranışa müdahale etmesiyle ortaya çıktı
      Geliştiricilere daha kolay müdahale edebilecekleri daha fazla seçenek verirseniz ne kadar büyük hasar verebileceklerini düşünün
      Tuşları yakalamanız gerekiyorsa zaten düşük seviyeli API’ler var; bence orada kalmak daha iyi
      Öte yandan HTML’de kısayol tuşu atamaya yarayan bir accesskey özniteliği var: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
  • Yeni Copilot 365 de tam olarak böyle. Her Ć yazmaya çalıştığımda Copilot fırlıyor ve uygulamayı sürekli kapatmam gerekiyor

    • Böyle küçük küçük şeyler yeni Linux kullanıcıları yaratıyor
      Geçtikten sonra bir daha hiç arkama bakmadım
      SteamOS üzerinden yazıyorum
    • MSFT’deki aptalların kendi API’lerini bile bilmemesi şaşırtıcı değil https://devblogs.microsoft.com/oldnewthing/20040329-00/?p=40...
    • Okulda sınavdayken aynısını yaşadım. Macarca klavyede & yazmaya çalışıyordum, o da tabii ki altgr+c idi
    • Eskiden alt+c’nin ć yerine ATI Catalyst Control Center başlattığını hatırlayan var mı?
    • En güzel kısmı, hiçbir şey sormadan otomatik kurulması
      Teşekkürler Microsoft. Kalite güvencenizin ne kadar iyi işlediğini görmek harika
  • İlginç bilgi: Unicode kanonik ayrıştırma normalizasyonu uygulanınca Lehçedeki 9 harften 8’i (ż, ó, ć, ę, ś, ą, ź, ń) temel harf + birleşik aksan işaretine ayrışıyor, ama ł olduğu gibi kalıyor
    Bu yüzden sqlite’ın unicode61 remove_diacritics tokenizer’ı ile Lehçe metni tam metin arama için normalleştirmek mümkün olmuyor

    • Bir mülakat ödevi için kod yazarken bunu fark ettiğimi hatırlıyorum. Sebebi basit: Mac’te kullanılan ABC International gibi çeşitli giriş sistemlerinde ł girişi iki karakterlik bir dizi gibi görünse de aslında l’nin üzerinden geçen çizgiye karşılık gelen bir birleşik karakter yok
      Tam emin değilim ama sqlite’ın remove_diacritics özelliği muhtemelen benim yaptığım gibi NCD’ye dönüştürüp sonra birleşik karakterleri dizgeden silerek çalışıyor
      ħ ya da ø gibi ayrışmayan diğer özel durumların da benzer davranmasını beklerim
    • Lehçe kullanıcıları “ł” ile arama yaptıklarında “l” sonuçlarının da çıkmasını bekler mi?
  • Lehçe, Rusçadan sonra ve Ukraynacadan hemen önce en çok kullanılan ikinci Slav dilidir
    Ukraynaca söz konusu olduğunda bu tam olarak doğru değil. Resmî dili Ukraynaca olsa da, gerçekte Ukrayna’daki herkesin fiilen Ukraynaca konuştuğunu söylemek doğru olmaz

    • 2019’a geri dönsek bile Ukraynaca konuşanların sayısı fazlasıyla yüksek
      Lviv = 2,5 milyon
      Vinnytsia = 1,5 milyon
      Ivano-Frankivsk = 1,3 milyon
      Khmelnytskyi = 1,2 milyon
      Rivne = 1,1 milyon
      Ternopil = 1,0 milyon
      Volyn = 1,0 milyon
      Chernivtsi = 800 bin
      Zakarpattia = 800 bin (Macarlar hariç)
      Böylece Batı Ukrayna’da baskın durumda olan 11,2 milyon Ukraynaca konuşan kişi ediyor; ülkenin geri kalanını tamamen yok saysanız bile bu sayı Çekçe konuşanlardan fazla. Ayrıca kalan bölgeler de tamamen Rusça konuşulan yerler değildi, şimdi ise hiç değil
    • O “düzeltme”, Rusça ve Lehçeden sonra Ukraynacadan daha çok konuşura sahip olup 3. sıraya geçecek başka bir Slav dili önermediği için sıralamada hiçbir değişiklik olmuyor
  • Ne yazık ki bu sadece Medium’a özgü değil; birçok Windows uygulamasında da aynı şey var. Örneğin Active Presenter’da bir harf, muhtemelen Ó, girildiğinde ekran kaydı duruyor; bu yüzden Lehçe yazı yazmayı kaydetmek çoğu zaman imkânsız hale geliyor
    Diğer uygulamalar da benzer biçimde Alt + Ctrl + harf kombinasyonlarını kısayol olarak atayıp bir şekilde klavye düzeni sürücüsünün üstüne yazıyor gibi görünüyor

  • Yıl 2026 ama bir anda Mac için Edge’de büyük Ś yazılamaz oldu. Sanki 25 yıl geriye dönmüşüz gibi

    • Ben de Teams’de aynısını gördüm. İkisi de MS uygulaması olduğu için mi?
  • nvidia overlay içinde Alt+Z kısayolu var; bu hem sol Alt hem de sağ Alt ile çalışıyor, bu yüzden Lehçe kullanıcıları ya overlay’i açmak ya da tuşu yeniden atamak zorunda kalmadan “ż” yazamıyor; oldukça sinir bozucu
    Nvidia lütfen düzelt bunu

  • Özetle durum şu:

    Ctrl S’yi körlemesine ve açgözlüce engellemek yerine, yalnızca Alt tuşuna basılmadığında Ctrl S engellenseydi yeterliydi
    Lehçedeki S’nin klavye kısayolu Ctrl alt s idi; kaydetme işlevini iyileştirmek için Ctrl s engellenirken ctrl alt s de birlikte engellenmiş oldu

    • Hayır. Kısayol alt+s idi ve insanların gerçekten bastığı da buydu
      Windows zaten Alt kombinasyonlarını kullandığı için bu sağ Alt+s oldu; sağ Alt Windows’un kendisi tarafından kullanılmıyordu ama Windows, ayrı bir sağ Alt kodu yerine bu tuşu ctrl+alt kombinasyonu olarak yeniden yazdı
      Özet çıkaracaksan en azından en önemli ayrıntıyı doğru vermelisin. İnsanlar sadece Alt’a basıyordu ama Windows bunu “şimdi ctrl+alt basılıyor” diye dönüştürdü; böylece alt+s, ctrl+s gibi göründü ve olayı yakalayıp öldüren şeyin üzerine kimsenin kontrol etmediği bir Alt eklenmiş oldu