1 poin oleh GN⁺ 22 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Bug di editor web Medium yang membuat hanya huruf kapital Polandia Ś tidak bisa diketik terjadi karena tumpang tindih antara kebiasaan input, lingkungan impor PC, kebiasaan shortcut simpan, dan cara Windows menangani Right Alt
  • Bahasa Polandia menggunakan alfabet Latin dengan tambahan 9 huruf berdiakritik, dan di lingkungan PC awal, alih-alih keyboard khusus, kombinasi Alt+huruf Latin dalam “programmer’s layout” menjadi standar de facto
  • Karena Windows secara internal memetakan Right Alt seperti Ctrl+Alt, Right Alt+S yang dipakai untuk mengetik Ś dari sudut pandang sistem terlihat seperti Ctrl+Alt+S
  • Medium mencegat Ctrl+S untuk memblokir dialog simpan browser dengan memanggil preventDefault(), tetapi karena tidak memeriksa apakah Alt ikut ditekan, ia malah memblokir input karakter itu sendiri
  • Perbaikannya hanyalah perubahan kecil dengan menambahkan !e.altKey pada kondisi pemblokiran Ctrl+S, dan ini menunjukkan bahwa kebiasaan komputasi yang berpusat pada 26 huruf bahasa Inggris dapat menimbulkan pengecualian dan gesekan bagi pengguna bahasa lain

Ś yang Menghilang di Medium

  • Seorang pengguna melaporkan bahwa saat mulai menulis dalam bahasa Polandia di Medium, huruf lain bisa diketik tetapi hanya Ś yang tidak bisa dimasukkan
  • Medium tidak memperlakukan bahasa tertentu secara khusus, dan pada awalnya tampak aneh mengapa dari 32 huruf bahasa Polandia hanya satu huruf ini yang bermasalah
  • Penyebabnya bukan cacat pada satu fungsi tunggal, melainkan hasil bertumpuknya cara input dan cara sistem operasi memprosesnya selama puluhan tahun

Bahasa Polandia dan Huruf Tambahan

  • Bahasa Polandia adalah bahasa Slavia yang paling banyak digunakan setelah bahasa Rusia, bahkan melampaui bahasa Ukraina
  • Berbeda dari bahasa Rusia dan Ukraina, bahasa Polandia berbasis alfabet Inggris/Latin tetapi menambahkan beberapa huruf
  • Kata asli bahasa Polandia tidak memiliki Q, V, dan X, tetapi huruf-huruf itu tetap dipertahankan untuk bahasa Latin dan kata serapan
  • Sebagai gantinya, bahasa ini juga memakai 9 huruf berdiakritik berbasis huruf Latin
  • Pada awal abad ke-20, mesin tik harus mengakomodasi huruf-huruf tambahan ini; beberapa mendapat tombol terpisah, sementara sisanya berbagi dengan tombol angka
    • Huruf kapital kadang juga “disimulasikan” dengan mengetik huruf Latin lalu kembali dengan backspace untuk menambahkan aksen di atasnya
    • Untuk memberi ruang bagi huruf tambahan, tanda baca seperti titik koma dan tanda kurung kadang harus dikorbankan

Lingkungan PC Polandia era blok komunis dan programmer’s layout

  • Lingkungan komputer pribadi awal di Polandia pada 1980-an dibatasi oleh kurangnya pendapatan disposabel dan larangan impor komersial komputer Barat
  • Komputer yang masuk dari Barat sering kali tetap membawa buku manual asli, perangkat lunak yang belum diterjemahkan, dan keyboard gaya Amerika
  • Negara seperti Prancis dan Jerman mendapat keyboard kustom yang mencerminkan tata letak mesin tik mereka, tetapi Polandia harus mencari cara untuk memasukkan 9 huruf tambahannya di keyboard gaya Amerika
  • Karena Ctrl sudah luas dipakai sebagai shortcut dan Alt relatif lebih jarang dipakai, kombinasi Alt pun menjadi standar de facto
    • Delapan huruf berdiakritik dipetakan ke huruf Latin yang bersesuaian
    • Satu sisanya dipetakan ke tombol yang posisinya berdekatan
  • Tata letak lama disebut “typist’s layout”, sedangkan cara baru ini disebut “programmer’s layout”
    • Mungkin karena pengguna PC awal kebanyakan adalah programmer
    • Mungkin juga karena tanda baca yang sering dipakai dalam pemrograman tetap dipertahankan apa adanya
  • Programmer’s layout mengharuskan Alt kiri dan tombol di dekatnya ditekan dengan tangan yang sama sehingga tidak ergonomis, tetapi tetap diterima karena mudah dipahami tanpa modifikasi hardware atau stiker
  • Setelah itu keyboard typist khusus memang muncul, tetapi hampir tidak ada yang berpindah, menunjukkan pola serupa dengan bagaimana QWERTY yang kurang ideal tetap menjadi dominan

Kebiasaan Ctrl+S dan benturannya dengan editor web

  • Sebelum autosave menjadi umum, kebiasaan menyimpan dokumen secara manual sangat penting
  • Pada 1980-an dan 1990-an, proses menyimpan itu lambat, sedikit demi sedikit mengauskan media seperti disk, dan kadang sangat membebani CPU sehingga sulit melakukan hal lain
  • Pengguna pun membentuk kebiasaan menekan Command+S atau Ctrl+S setiap kali berhenti sejenak saat menulis
    • Ada yang menekannya setiap paragraf
    • Ada yang menekannya setiap kalimat, lalu belakangan setiap beberapa kata
  • Dalam editor berbasis web, kebiasaan ini memunculkan masalah karena membuka dialog browser untuk menyimpan HTML halaman web saat ini
  • Medium juga dulu mencegah hal ini dengan mendeteksi Ctrl+S atau Command+S di kode editornya, lalu memanggil simpan dan memblokir aksi default
if ((e.metaKey || e.ctrlKey) && e.keyCode === goog.events.KeyCodes.S) {
  this._editors.save()
  e.preventDefault()
}
  • Kode ini menjalankan simpan editor saat metaKey di Mac atau ctrlKey di Windows/Linux ditekan bersama S, lalu mencegah dialog simpan browser muncul
  • Masalahnya, di beberapa lingkungan, input huruf Polandia Ś tidak terlihat sekadar seperti Alt+S

Cara Windows menangani Right Alt

  • Windows 3.x dan Windows 95 memungkinkan akses cepat ke item menu dan kontrol dialog melalui kombinasi Alt+huruf bergaris bawah
  • Di Polandia, Alt sudah dipakai untuk memasukkan huruf berdiakritik, sehingga berbenturan dengan shortcut Windows
  • Seiring perkembangan keyboard, muncul tombol Alt tambahan di sebelah kanan spasi, sehingga Alt kiri bisa dipakai untuk shortcut Windows dan Alt kanan untuk input bahasa Polandia
  • Namun, fungsi Right Alt juga harus tetap bisa bekerja pada keyboard lama yang hanya punya satu tombol Alt, sehingga Microsoft di dalam Windows memetakan Right Alt ke kombinasi Ctrl+Alt yang jarang dipakai
  • Akibat keputusan ini, Right Alt+S yang dipakai untuk memasukkan Ś dari sudut pandang sistem tampak seperti Ctrl+Alt+S
  • Kode pemblokir Ctrl+S di Medium tidak memeriksa apakah Alt ikut ditekan, sehingga akhirnya mencegat input Ś seolah-olah itu shortcut simpan yang harus diblokir

Perbaikan: saat Alt ditekan, jangan anggap sebagai Ctrl+S

  • Setelah penyebabnya dipahami, perbaikannya sederhana
  • Alih-alih selalu memblokir Ctrl+S, kondisinya diubah agar hanya diblokir ketika Ctrl ditekan dan Alt tidak ditekan
if ((e.metaKey || (e.ctrlKey && !e.altKey)) && e.keyCode === goog.events.KeyCodes.S) {
  this._editors.save()
  e.preventDefault()
}
  • Setelah perubahan ini, input Right Alt+S tidak lagi masuk ke kondisi pemblokiran simpan Ctrl+S
  • Medium memperbaiki bug ini, dan pada kondisi tersebut kemudian ditambahkan banyak komentar agar orang tetap bisa memahaminya

Masalah yang lebih besar di balik satu kondisi kecil

  • Di Polandia, komunisme runtuh pada 1989, dan kini komputer dapat diimpor secara legal baik oleh individu maupun perusahaan
  • Windows dan Mac yang dibeli di Polandia saat ini sudah sepenuhnya mendukung bahasa Polandia, dan sistem operasinya juga sudah dilokalkan
  • Meski begitu, programmer’s layout masih tetap ada di pengaturan sistem dan tetap menjadi yang paling umum dipakai di antara dua tata letak itu
  • Bug kecil ini terhubung dengan kenyataan bahwa kebiasaan komputasi bergaya Amerika berkembang dengan berpusat pada 26 huruf tanpa aksen dalam bahasa Inggris
  • Bahasa Polandia harus terus berkompromi sambil berpindah-pindah di antara turunan tata letak QWERTY, dan bahasa yang memakai sistem tulisan yang lebih jauh lagi dari bahasa Inggris bisa berada dalam posisi yang lebih tidak menguntungkan

1 komentar

 
GN⁺ 22 jam lalu
Komentar Hacker News
  • Saya rasa karena bahasa Polandia memakai alfabet Latin dan hanya mengekspresikan bunyi tambahan dengan variasi Slavia kecil, Polandia jadi jauh lebih mudah menyesuaikan diri ke orientasi Barat
    Orang Polandia rata-rata secara budaya jauh lebih dekat dengan tetangga baratnya dibanding orang Ukraina atau Rusia, mungkin hanya masakan yang bisa jadi pengecualian

    • Kazakhstan juga memutuskan beralih dari alfabet Kiril ke alfabet Latin agar lebih selaras dengan Eropa ketimbang Rusia https://www.bbc.com/worklife/article/20180424-the-cost-of-ch...
      Saya penasaran apakah jauh di masa depan Ukraina juga akan menempuh jalan yang sama
    • Adopsi alfabet Latin itu sendiri adalah pilihan berorientasi Barat untuk menyelaraskan diri dengan kerajaan-kerajaan Latin, bukan dunia Bizantium, dan ini juga terkait dengan penerimaan Katolik, bukan Ortodoks
    • Kalau diringkas, sebagaimana Kristen masuk ke Polandia pada abad ke-10 ketika Mieszko menikahi putri Ceko Doubravka/Dobrawa, mereka juga mengadopsi aksara Ceko, yaitu alfabet Latin, yang berasal dari upaya Jan Hus untuk menata bahasa Ceko
      Para akademisi melihat bahwa pada periode yang kurang lebih sama, bahasa Polandia mulai berkembang sebagai bahasa tersendiri, dan hingga abad ke-13 penuturnya masih dapat berkomunikasi tanpa banyak masalah dengan tetangga di selatan
      Ortografi Polandia terbentuk pada abad ke-15 hingga ke-16, dan Stanisław Zaborowski serta Jan Kochanowski berusaha memperkenalkan huruf agar lebih akurat mencerminkan fonologi Polandia saat itu, tetapi alfabet yang mereka usulkan cukup panjang
      Pada masa pendudukan dan pembagian wilayah, ada Rusifikasi kuat yang berupaya menghapus bahasa dan budaya Polandia, termasuk percobaan memperkenalkan alfabet Kiril, tetapi akhirnya gagal; karya sastra masa itu banyak bertema patriotisme dan cinta tanah air
      Reformasi bahasa tahun 1936 membuatnya mendekati bentuk yang kita kenal hari ini, dan pada masa komunis diperkenalkan bentuk orang kedua jamak dalam bahasa resmi, seperti vykání dalam bahasa Ceko dan Slowakia, tetapi terasa tidak alami dan sangat politis sehingga tidak bertahan lama
      Bahasa Polandia memiliki dialek, tetapi setelah Perang Dunia II perbedaan itu memudar karena migrasi, sehingga bahasa Polandia baku juga menguat pada masa itu; kini kata serapan bahasa Inggris makin banyak, sampai hater dapat dinaturalisasi menjadi hejter
    • Fakta bahwa mereka Katolik juga membantu
    • Masakan Polandia sangat mirip dengan masakan Jerman
      Pernyataan ini akan membuat cukup banyak orang Polandia marah
  • Masalah sebenarnya adalah browser tidak mengekspos cara sederhana untuk memeriksa kombinasi tombol, dan para developer juga tidak membuatnya sendiri
    Di banyak situs, kombinasi tombol yang dimaksud tetap dijalankan meskipun ada tombol modifier tambahan seperti alt atau shift
    Kode yang ditampilkan di sini pun hanya memperbaiki masalah yang lebih besar di Windows, sementara alt+cmd+s tetap terblokir
    Perlu ada proposal agar browser mengekspos properti dalam event keydown/up/press yang berisi kode kombinasi tombol seperti "CTRL+S" atau "CTRL+ALT+S"
    Dengan begitu developer bisa melakukan percabangan berdasarkan properti itu, alih-alih memeriksa kode tombol dan modifier secara manual
    Developer web juga sebaiknya membuat sendiri properti semacam ini di kode mereka lalu membandingkannya, alih-alih memeriksa tombol modifier secara manual. Itu akan mencegah bug seperti di artikel asli dan jauh lebih nyaman dipakai

    • Bug ini muncul karena developer yang mencoba memperbaiki masalah dialog simpan muncul saat pengguna menekan Control S malah menyentuh perilaku mendasar yang rawan bug
      Bayangkan kerusakan sebesar apa yang bisa terjadi jika developer diberi lebih banyak pilihan untuk ikut campur dengan lebih mudah
      Kalau memang harus mencegat tombol, sudah ada API level rendah, jadi sebaiknya berhenti di situ saja
      Di sisi lain, HTML memiliki atribut accesskey untuk menetapkan tombol pintasan: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
  • Copilot 365 yang baru juga persis seperti ini. Setiap kali saya mencoba mengetik "Ć", Copilot muncul dan saya harus terus menutup aplikasinya

    • Hal-hal kecil seperti ini satu per satu menciptakan pengguna Linux baru
      Sejak beralih, saya tidak pernah menoleh ke belakang
      Ditulis di SteamOS
    • Tentu saja orang-orang bodoh di MSFT tidak tahu API mereka sendiri https://devblogs.microsoft.com/oldnewthing/20040329-00/?p=40...
    • Saya mengalami hal yang sama saat sedang ujian di sekolah. Saya mencoba mengetik & di keyboard Hungaria, dan tentu saja itu juga altgr+c
    • Ingat dulu ketika alt+c menjalankan ATI Catalyst Control Center alih-alih mengetik "ć"?
    • Bagian terbaiknya adalah itu terpasang otomatis tanpa bertanya
      Terima kasih Microsoft. Senang melihat quality assurance berjalan dengan baik
  • Fakta menarik: jika menerapkan normalisasi dekomposisi kanonis Unicode, 8 dari 9 huruf Polandia (ż, ó, ć, ę, ś, ą, ź, ń) terurai menjadi huruf dasar + tanda diakritik gabungan, tetapi ł tetap apa adanya
    Karena itu, dengan tokenizer unicode61 remove_diacritics milik sqlite, teks Polandia tidak bisa dinormalisasi untuk pencarian full-text

    • Saya ingat menemukan hal itu saat menulis kode untuk tugas wawancara. Alasannya sederhana: dalam beberapa sistem input seperti ABC International di Mac, meskipun input ł berupa urutan dua karakter, sebenarnya tidak ada karakter gabungan untuk garis yang melintasi l
      Saya tidak yakin, tetapi sepertinya remove_diacritics milik sqlite bekerja dengan cara mengubah ke NCD lalu menghapus karakter gabungan dari string, mirip dengan implementasi yang pernah saya buat sendiri
      Saya memperkirakan kasus khusus lain yang tidak terurai seperti ħ atau ø juga akan berperilaku serupa
    • Apakah pengguna bahasa Polandia berharap saat mencari “ł” hasil “l” juga ikut muncul?
  • Polish is the second most-used Slavic language, right after Russian and just before Ukrainian
    Mengenai bahasa Ukraina, itu tidak sepenuhnya tepat. Memang bahasa resmi Ukraina, tetapi dalam kenyataannya tidak semua orang Ukraina benar-benar berbicara bahasa Ukraina

    • Kalau pun kita memutar waktu kembali ke 2019, jumlah penutur bahasa Ukraina sudah cukup banyak
      Lviv = 2,5 juta
      Vinnytsia = 1,5 juta
      Ivano-Frankivsk = 1,3 juta
      Khmelnytskyi = 1,2 juta
      Rivne = 1,1 juta
      Ternopil = 1 juta
      Volyn = 1 juta
      Chernivtsi = 800 ribu
      Zakarpattia = 800 ribu (kelompok etnis Hungaria tidak dihitung)
      Dengan begitu ada 11,2 juta orang Ukraina Barat yang mayoritas besar memakai bahasa Ukraina, dan bahkan jika wilayah lainnya diabaikan sepenuhnya, jumlahnya tetap lebih besar daripada penutur bahasa Ceko. Selain itu, wilayah-wilayah lain pun tidak sepenuhnya berbahasa Rusia, apalagi sekarang
    • “Penyesuaian” itu tidak mengajukan bahasa Slavia lain yang punya lebih banyak penutur daripada bahasa Ukraina sehingga bisa menjadi peringkat ke-3 setelah Rusia dan Polandia, jadi peringkatnya tidak berubah sama sekali
  • Sayangnya bukan hanya Medium; beberapa aplikasi Windows juga sama. Misalnya di Active Presenter, ketika memasukkan satu huruf, mungkin Ó, perekaman layar berhenti, sehingga sering kali tidak mungkin merekam adegan mengetik dalam bahasa Polandia
    Aplikasi lain juga tampaknya menetapkan kombinasi Alt + Ctrl + huruf sebagai shortcut dan entah bagaimana menimpa driver layout keyboard

  • Bahkan pada 2026, tiba-tiba saya tidak bisa memasukkan huruf kapital Ś di Edge untuk Mac. Rasanya seperti kembali sekitar 25 tahun ke masa lalu

    • Saya juga melihat hal yang sama di Teams. Apakah karena keduanya aplikasi MS?
  • nvidia overlay punya shortcut Alt+Z, dan itu bekerja baik dengan Alt kiri maupun Alt kanan, sehingga pengguna bahasa Polandia tidak bisa mengetik “ż” kecuali membuka overlay atau mengubah pemetaan tombol; cukup menjengkelkan
    Nvidia, tolong perbaiki

  • Ringkasnya begini:

    Alih-alih secara serakah memblokir Ctrl S tanpa pandang bulu, cukup blokir Ctrl S hanya ketika tombol Alt tidak ditekan
    Shortcut keyboard untuk S Polandia adalah Ctrl alt s, dan saat mencoba memperbaiki aksi simpan dengan memblokir Ctrl s, mereka ikut memblokir ctrl alt s

    • Tidak. Shortcut-nya adalah alt+s, dan itulah yang benar-benar ditekan orang
      Karena Windows sudah memakai kombinasi Alt, jadinya Alt kanan+s, dan meskipun Alt kanan tidak dipakai oleh Windows sendiri, alih-alih kode Alt kanan terpisah, Windows menulis ulang tombol itu sebagai kombinasi ctrl+alt
      Kalau mau meringkas, setidaknya detail paling penting harus benar. Orang hanya menekan Alt, tetapi Windows mengubahnya menjadi “sekarang sedang menekan ctrl+alt”, sehingga alt+s terlihat seperti ctrl+s dan ada Alt yang tidak dicek siapa pun saat event itu dicegat lalu dimatikan