Seperti yang saya lihat browser yang sempurna

Baru-baru ini, ada banyak artikel tentang kekurangan perangkat lunak modern, sementara tidak ada yang mencoba menawarkan solusi mereka untuk mengubah situasi. Artikel ini adalah jawaban untuk beberapa artikel tentang ini, serta mimpi tentang browser yang sempurna. Bagaimana kita bisa mendesain ulang browser, UI-nya, metode berinteraksi dengan situs, meningkatkan protokol dan pengalaman pengguna secara umum. Jika Anda punya, bahkan pemikiran paling berani tentang ini, maka saya sarankan mendiskusikannya dan mungkin meletakkan dasar untuk membuat browser yang sempurna. Pada akhirnya, cepat atau lambat ini perlu dilakukan, karena situasi di pasar browser saat ini sama sekali tidak menyenangkan. Dan itu bukan masalah bahwa browser lain sangat kompleks dan sulit untuk mengejar ketinggalan - kita bisa pergi dengan cara kita sendiri, hanya menerapkan bagian-bagian standar yang diperlukan, dan pada saat yang sama kita dapat memperkenalkan ekstensi non-standar kita sendiri. Tidak perlu mengejar orang lain, biarkan orang lain mengejar kita. Biarkan browser kami dibuat untuk orang-orang, dan bukan atas nama kepentingan komersial korporasi dari konsorsium baik dan aneh, yang belum pernah digunakan untuk waktu yang lama.



Apa yang seharusnya ada di browser yang ideal?





Cari

Jika Anda membuat browser baru, maka hal pertama yang harus dilakukan adalah pencarian lokal pada semuanya. Dengan membuka tab, cache, file yang diunggah, dan berton-ton informasi meta di dalamnya. Pencarian harus berdasarkan indeks dan secara teratur, dan pengguna harus dapat memilih semua opsi yang mungkin, termasuk penyandian dokumen (misalnya, pencarian yang sangat baik di Jauh).

Suatu ketika, di salah satu forum, saya menemukan konsep algoritma yang menarik. Tidak ada diskusi, jadi saya cepat-cepat menutup tab, tetapi konsep itu sendiri menetap di kepala saya. Setelah memikirkannya di latar belakang, saya memutuskan untuk membagikan ide-ide saya ... Tapi di mana? Cepat melihat forum tempat saya biasanya tinggal - saya tidak menemukan yang seperti itu. Mesin pencari juga tidak ada, tetapi ini tidak mengejutkan - forum tidak diindeks secara instan. Saya mulai membongkar-bongkar riwayat browser - saya tidak menemukan apa-apa, tapi ini tidak mengherankan, karena itu besar, tidak nyaman untuk digunakan, saya bisa melewatkan sesuatu. Saya menemukan kembali hampir semua halaman - saya tidak menemukan yang seperti itu. Saya mulai mencari pesan melalui pos, mengirim pesan, bahkan bertanya pada orang - tanpa hasil. Saya sudah mulai berpikir bahwa saya dikendalikan oleh reptilians, konsep yang menginspirasi, bagaimana saya memutuskan untuk menggunakan alat terakhir: mencari file cache browser. Dan hampir seketika ia menemukan tempat yang ia cari. Ternyata karena tidak ada yang menjawab topik forum, penulis berpikir bahwa dia telah menulis kebodohan, dia merasa malu dan dia hanya menghapus utasnya. Dan saya sedang mencari topik yang jauh ini untuk waktu yang lama dan tidak dapat menemukan, menutup diri.

Lain kali saya perlu memperbarui file video. File itu bernama 1.mp4 (saya pikir banyak dari file-file ini memiliki banyak). Bagi saya itu bernilai bagi saya, tetapi sayangnya, ternyata rusak. Di mana saya mengunduhnya? Saya harus mencarinya kembali untuk kata kunci yang ada di video itu sendiri.

Sesi

Saat Anda mencoba mencari topik baru, puluhan tab dibuka sendiri. Tautan demi tautan dan kami membaca selama beberapa hari. Apalagi setiap tab adalah sesuatu yang penting yang perlu dibaca. Apa yang kita lakukan Apalagi ketika semua ini menumpuk semakin banyak?

Anda bisa menutup semua yang Anda lihat dan mengandalkan sejarah, kata mereka di masa depan, jika perlu, itu akan ditemukan. Atau buang semua tab di bookmark. Atau bahkan menyimpan / mencetak halaman tidak terlalu nyaman, tetapi informasi pasti yang ditemukan tidak akan pernah hilang (namun, informasi tentang menyimpan informasi akan ditulis kemudian).

Atau mungkin menyimpan seluruh sesi sebagai proyek? Beri mereka nama yang bermakna seperti "Saya mencari model perahu", "Belajar memprogram" dan menghidupkan / mematikan sesuai kebutuhan? Setiap browser sekarang memiliki mekanisme profil atau sesi, tetapi kadang-kadang tersembunyi, yang membuatnya sulit ditemukan, dan bahkan lebih sulit untuk digunakan. Mungkin satu-satunya browser di mana mekanisme semacam itu diterapkan dengan baik adalah browser Edge dalam versi terbarunya. Dengan segala kekurangan browser ini, mekanisme ini dibuat senyaman mungkin dan memungkinkan Anda untuk tidak mengakumulasi tab, tetapi lebih mudah untuk menyortirnya. Tentu saja, tidak ada batasan untuk kesempurnaan, tetapi memiliki setidaknya pilihan seperti itu adalah suatu keharusan. Lebih baik lagi, dapat menyimpan sesi tersebut bersama dengan cache / konten halaman. Bukan hanya cara browser melakukannya sekarang, menyimpan cache dalam beberapa bentuk biner, tetapi untuk membuka 100 tab pada topik baru, simpan dalam beberapa format yang dapat dibaca oleh perangkat lain (.html / .pdf) dan unggah ke ponsel Anda , tempat yang mudah dibaca, mungkin jauh dari peradaban.

Privasi

Pengguna harus memutuskan informasi apa dengan situs yang ingin dibagikannya. Saya seharusnya tidak mencari switch User-Agent yang berbeda, fungsi seperti itu harus dibangun ke dalam browser itu sendiri. Misalnya, mesin pencari Google.com berfungsi dengan baik jika Anda memperkenalkan diri sebagai tautan, tetapi pencarian instan yang tidak menyenangkan yang memakan teks input tidak muncul.

Saya ingin dapat:

* atur lebar dan tinggi layar (apa saja, setidaknya 50000x50000 piksel)
* kedalaman warna, terlepas dari pengaturan saat ini
* tambahkan situs ke tepercaya sehingga cookie-nya tidak memburuk ketika Anda mengklik "hapus semua"
* ganti font pada halaman, sambil memberikan situs dengan daftar font yang diinginkan
* menyediakan Agen-Pengguna sewenang-wenang, bahkan mungkin yang acak, diambil dari file opsi yang besar atau diikat ke situs tertentu
* pilih bahasa konten dan lihat apa yang dikirimkan ke server, dan bukan hanya "bahasa pilihan", yang masih belum diketahui apa yang akan dibuka
* jumlah dan urutan tajuk, termasuk persaingan bug yang diketahui dari peramban lain

Dan secara umum, semua yang bisa diambil sidik jari harus bisa berubah. Saya ingin mendapat kesempatan ini.

Yang lucu adalah bahwa browser kuno memiliki banyak pengaturan untuk ini. Misalnya, peramban seperti tautan, w3m dan netsurf tidak hanya dapat menonaktifkan Perujuk / Agen-Pengguna, tetapi juga menyediakan berbagai opsi menarik di mana Anda dapat menyempurnakan perilaku peramban, bagaimana peramban itu akan mengisi bidang-bidang ini. Meskipun hanya versi Firefox yang akan belajar untuk melakukan ini, dan hanya sebagian, tanpa memberikan perlindungan pengguna 100%, tanpa opsi apa pun, hanya menentukan perilaku secara tegas dalam kondisi tertentu (namun, kami akan berbicara tentang pengaturan dan kondisi situs).

Kapal terbang

Untuk waktu yang sangat lama, MSIE tidak mendukung posisi: diperbaiki, yang ia dimarahi. Dan seperti yang diperlihatkan oleh latihan, ada baiknya saya tidak mendukungnya. Benar, ini tidak menghentikan orang dan mereka meniru itu melalui JS dengan menu melompat, yang bertahan sampai hari ini di jutaan situs.

Hari ini, elemen yang tumpang tindih digunakan untuk segala sesuatu yang berguna: jendela masuk layar penuh yang muncul saat menjelajah dan tidak dapat dihapus (facebook), asisten sembulan yang ternyata adalah bot obrolan, pesan layar penuh tentang promosi dan hadiah, bagaimana saya memenangkan sesuatu , kadang-kadang mereka hanya menampilkan iklan kepada saya (dengan sendirinya tanpa iklan, tetapi tanpa tombol tutup), pop-up transparan yang mencegah saya mengklik halaman (pornhub), dan pendewaan: mereka memberi tahu saya bahwa saya harus menonaktifkan AdBlock, yang tidak saya miliki.

Sudahkah Anda mencoba mencetak halaman apa pun? Tetapi saya sering "mencetak" PDF dan saya ingin mengalahkan mereka yang membuat ekstensi pop-up seperti "kami menggunakan cookie" atau "di sini berita terbaru" di suatu tempat di atas atau di bawah layar. Baik, atau hanya menu tetap di atas dan catatan kaki sederhana di bagian bawah. Tidak, well, di layar masih tidak terlihat, Anda dapat menggulir halaman dan membaca apa yang mereka blokir. Apakah Anda tahu bahwa kotoran ini dicetak pada setiap halaman? Dan dicetak di atas teks? Dan bahwa Anda tidak dapat mengikis kertas, meskipun itu adalah perburuan, karena kotoran ini memblokir bagian dari konten yang tidak dapat dibaca dengan cara apa pun? Sejauh ini, saya harus memecah gaya atau menghapus beberapa menu terpisah melalui elemen inspector / ublock, hanya setelah itu saya bisa "mencetak" halaman tersebut. Ini agak menjengkelkan. Tetapi jika ada elemen sederhana yang dapat dikontrol, maka ini bahkan tidak akan terjadi!

Tetapi di dalam mesin browser Anda dapat mendeteksi ketika suatu elemen tumpang tindih informasi teks dan ... Ya, misalnya, hapus di suatu tempat di samping. Atau bahkan menghancurkan gaya, menyatakannya berbahaya. Banyak pilihan. Anda dapat menyajikan halaman sebagai lapisan dan memberi pengguna beberapa tombol untuk "memotong" lapisan atas atau mengembalikannya, seperti yang dilakukan pada beberapa mainan atau editor tiga dimensi - Saya ingin fungsi ini selama bertahun-tahun!

Ini lucu, tetapi begitu IE menolak membuat tag blink, tetapi memungkinkan JS untuk memindahkan jendela browser dan membuat popup yang tidak ditutup. Saat ini, bahkan menampilkan teks di bilah status sudah sulit, lebih mudah untuk ditiru. Sekarang saya mengusulkan untuk melakukan sesuatu dengan blok teks yang tumpang tindih, adalah mungkin untuk entah bagaimana menghentikan fungsi ini. Dan Anda harus memutuskan fitur yang lebih banyak dan lebih banyak sehingga mereka tidak dapat digunakan untuk merugikan mereka. Ya, untuk ini, Anda dapat menulis peramban, meskipun tanpa memperhatikan standar, tetapi lebih nyaman untuk membaca teks, dan selain itu, lebih sedikit pemrograman.

Cuplikan Halaman

Itu terjadi ketika Anda membuka halaman sederhana dengan beberapa teks, kadang-kadang Anda melupakannya dan membiarkannya menggantung di tab, "untuk nanti", "agar tidak lupa." Sebagai aturan, tidak ada yang spesial di sana. Misalnya, mereka memberi tahu cara menanam stroberi di negara itu dan tidak ada yang menunjukkan masalah.

Dan setelah tiba di komputer setelah beberapa jam, Anda melihat bahwa MOUSE CURSOR hampir tidak bergerak, SEGALA SESUATU di SWAP tidak mungkin untuk bekerja di komputer, karena ngeri Anda membuka daftar proses dan dikutuk (jika Anda bisa menunggu proses untuk ditarik). Dan di sini tab ditutup hanya dengan situs yang tidak bersalah ini.

Untuk menghindari ini, saya pernah menulis sebuah plug-in untuk Firefox yang, 5 detik setelah memuat halaman (peristiwa onload), menggantikan setInterval / setTimeout / requestAnimationFrame dengan panggilan kosong yang tidak melakukan apa-apa, tetapi memutus yang sudah ada. Pada dasarnya, saya senang. Benar, semua jenis elemen interaktif, seperti spoiler yang sedang dibuka, juga berhenti bekerja, karena tidak ada lagi penghitung waktu, dan pembukaan spoiler meluncurkan timer untuk animasi. Apakah ini harga yang mahal? Saya harus meninggalkan plugin saya, karena saya tidak bisa mengembalikan handler untuk beberapa acara, tetapi jika kita menulis browser kita, mengapa tidak?

Implementasi alternatif: setelah 10 detik dari peristiwa onload, kami menghentikan seluruh JS, membongkar DOM dan hanya menyisakan struktur dalam memori yang diperlukan untuk membuat persegi panjang dengan teks, tabel, dan gambar. Itu saja, biarkan tab latar belakang menjadi sesuatu seperti gambar dengan teks, tidak lebih. Alternatif lain: kami merender seluruh tata letak dalam proses terpisah, dan hanya memuat koordinat teks dan gambar setelah rendering, seperti di Opera Mini, sehingga browser kami akan sedikit lebih aman.

Hal yang paling menarik adalah bahwa sudah ada sesuatu yang serupa di Opera modern, tetapi nyala hanya ketika beralih ke daya baterai. Saya ingin selalu memiliki opsi ini untuk situs, terutama untuk situs yang saya kunjungi untuk pertama kalinya. Secara umum, di nyali semua browser modern ada banyak fungsi yang berguna, tetapi mereka hardcoded dan tidak dapat dikonfigurasi oleh pengguna, itulah sebabnya mengapa browser secara praktis kehilangan potensi besar.

Caching Konten Secara Lokal

Saya memberi tahu ide untuk satu juta dolar: memuat halaman dalam 0ms. Tidak, bahkan jika situs sepenuhnya dalam cache kami, itu tidak akan terbuka sampai kami mengirim permintaan, menunggu Round Trip Time, uraikan jawabannya, dan kemudian lakukan hal yang sama dengan semua skrip dan gaya yang tersisa. Dan apa yang mencegah Anda membukanya SEGERA dari cache dan memvalidasi konten di latar belakang, segera mengirim permintaan ke SEMUA sumber daya di latar belakang, saat menggunakan buffering ganda di latar belakang, untuk memperbarui data jika terjadi perubahan, hanya dengan menggambar ulang gambar dan blok teks? Katakan apa yang sudah ada di IE dan disebut "Work offline"? Ya, IE masih memiliki banyak fungsi yang bagus dan menarik, tetapi pertama-tama, fungsi ini tidak selalu berfungsi, dan kedua, kami tidak akan dapat me-refresh halaman, dan dalam kasus saya halaman tersebut akan digambar ulang secara otomatis saat validasi.

Sayangnya, di web modern, caching tidak hanya berfungsi dengan buruk, tetapi juga tidak berfungsi sama sekali. Tapi apa yang mencegah halaman paksa disimpan ke disk? Ini akan memungkinkan tidak hanya untuk membuka situs pada saat kematiannya, untuk menyimpan beberapa konten yang bermanfaat, tetapi juga untuk memantau, misalnya, dinamika perubahan harga untuk barang atau untuk menangkap lawan bicara bahwa mereka telah mengubah posisi mereka. Tentu saja, Anda dapat menyimpan halaman ke disk secara manual ... Tapi sebagai aturan, Anda hanya mengingat ini ketika Anda perlu kembali ke beberapa versi lama, tetapi tidak ada, dan ada sedikit harapan untuk arsip web. Terkadang Anda dapat mengambil konten dari mesin pencari, tetapi itu tidak selalu berhasil, terutama jika Anda tidak segera melakukannya. Ini akan sangat berguna dalam kasus-kasus di mana konten mudah dibagi menjadi elemen-elemen yang dikelola secara terpisah, tetapi lebih pada nanti.

Tentu saja, caching harus dalam bentuk incremental diffs (jika tidak, tidak akan ada ruang yang cukup untuk semuanya), dengan penguraian informasi non-ditampilkan secara intelektual (tidak perlu menyimpan kode perubahan penghitung), dengan menyoroti perubahan, dengan pilihan versi lama langsung dari bilah alamat. Anda dapat menyimpan halaman yang telah diuraikan sebagai seperangkat persegi panjang dan koordinatnya di layar, dengan cara ini Anda dapat mempercepat rendering, dan gambar dapat diturunkan dan disimpan sebagai h265, yang jauh lebih baik daripada gambar jpeg - kami menghemat ruang. Dan jika kita telah menghabiskan begitu banyak upaya pada cache paksa dan pemberdayaannya, lalu mengapa tidak membaginya dengan orang lain? Antarmuka pengguna adalah hal utama. Fiturnya tidak hanya boleh, tetapi harus nyaman digunakan: membuka versi halaman yang berbeda, menghapus atau menyimpan versi halaman, mengiklankannya sebagai cache publik, membuat pilihan halaman dan membongkar versi lokal situs (halaman yang dikunjungi), melakukan sesuatu seperti mht / pdf dengan tautan yang berfungsi sehingga mereka dapat dibuka di perangkat lain, dan tidak hanya mereka menetap di suatu tempat di repositori internal peramban, seperti yang terjadi di beberapa peramban seluler.

Untuk mempercepat pemuatan halaman dan melindungi diri Anda dari suntikan kode yang tidak terduga, berbagai skrip, seperti jquery dan sejenisnya, disimpan pada CDNs yang berbeda, dapat dimuat langsung dari disk lokal, seperti yang dilakukan oleh ekstensi Decentraleyes. Mengunduh font dan paket ikon akan instan. Pelajari lebih lanjut tentang apa yang sudah ada: addons.mozilla.org/en-US/firefox/addon/decentraleyes . Tentu saja, akan menyenangkan untuk membuat suntikan kode Anda, dengan analogi dengan browser.js (hanya tidak dengan tangan penulis) atau Grease Monkey (hanya tanpa trojan), sehingga Anda dapat mengubah / memperbaiki kode situs. Tidak, bukan kruk dalam bentuk plugin, tetapi dukungan asli, yang tidak akan melambat, seperti dulu di Opera. Namun sayang, sekarang tidak ada alat yang mudah untuk menambal kode situs. Richard Stallman menyebut situs ini "tivoizatsii", tetapi ini akan ditulis di bagian tentang tanda tangan kode.

Kami menambahkan di sini beberapa sitemap.xml hipotetis, yang menentukan afinitas artikel, halaman untuk caching proaktif, tautan ke pelacak untuk pertukaran konten p2p ... Dan kami mendapatkan situs replikasi diri yang dapat disimpan dan digunakan secara lokal, yang akan menahan segala beban dan konten yang tidak akan mati tidak pernah. Namun, kami akan membicarakan hal ini, serta tentang situs yang didistribusikan.

Tanda tangan kode

Banyak dari kita tidak berpikir, tetapi orang yang berbeda dapat mengeksekusi kode di browser, yang ditulis di bawah berbagai, termasuk lisensi tidak bebas. Dan bukan fakta bahwa pengguna setuju dengan lisensi ini. Itu seperti berhubungan seks tanpa persetujuan sebelumnya. Pada prinsipnya, dalam banyak kasus, tidak ada hal buruk yang akan terjadi, tetapi mungkin ada nuansa. Richard Stallman menulis artikel yang luar biasa “Javascript Trap”, berdasarkan pada mana ekstensi LibreJS ditulis: en.wikipedia.org/wiki/GNU_LibreJS - inilah yang seharusnya menjadi titik awal dalam menafsirkan Javascript di browser kami!

Jika indikasi lisensi adalah bagian dari standar, hidup akan sedikit lebih mudah, tetapi tidak. Jika penulis kode menandatanganinya dengan kunci publik mereka, maka saya setidaknya bisa mempercayai berbagai penulis, tetapi tidak ada yang baik. Semua yang tersisa adalah untuk hash skrip, termasuk yang terkecil dijahit ke halaman dan meminta pengguna untuk "mengizinkan ini?" untuk menjalankan masing-masing, memelihara database dari skrip yang diizinkan atau terlarang. Sesuatu seperti antivirus. Juga mencari "virus" dengan tanda tangan, tetapi alih-alih analisa heuristik - menunjukkan lisensi dan pertanyaan kepada pengguna. Berdasarkan hash tersebut, Anda tidak hanya dapat melindungi diri dari kode jahat, tetapi juga membangun sistem versi. Buat infrastruktur tempat hanya kode yang Anda percayai akan berjalan! Lagi pula, apakah Anda bosan melawan skrip yang membalik teks dan meminta Anda menonaktifkan Adblock? Saya akan menonaktifkannya, tetapi saya tidak memiliki Adblock, atau keyakinan bahwa besok mereka tidak akan meminta saya untuk membuat donasi atau berlangganan penipuan.

Jika Anda tidak terbiasa dengan karya luar biasa dari Richard Stallman, maka saya sarankan membaca: www.gnu.org/philosophy/javascript-trap.ru.html (dalam bahasa Rusia).

Peringkat situs web / anti-peringkat

Beberapa browser, seperti Opera, untuk beberapa alasan mencoba memperbaiki setiap situs dengan tangan mereka, membuat tambalan dengan menyuntikkan kode khusus. Dan begitu mereka bosan, kita semua tahu hasilnya. Meskipun mereka dibenarkan bangga dengan prestasi mereka, yang dikonfirmasi di berbagai puzomerki, melakukan tes untuk kepatuhan terhadap standar.

Tetapi orang bisa sebaliknya: alih-alih menambal sesuatu, menulis email kepada seseorang, menggunakan koneksi pribadi dan semua itu, orang dapat menampilkan teks tambalan langsung di atas halaman dengan kata-kata “penulis situs ini tidak mematuhi standar, berikut ini kode dapat memperbaiki situs ini. " Jerked IE-only challenge? Tanpa emulasi, sebagai gantinya muncul pop-up merah besar tentang kesesuaian penulis (tentu saja, tanpa memblokir konten). Banyak pengguna, tentu saja, akan mengabaikan ini, tetapi seseorang dapat mengajukan pertanyaan kepada penulis situs: "Mengapa ada begitu banyak warna merah di sini?" Dan pemilik situs akan memberi tahu bagaimana mereka menghemat uang pada programmer. Atau beri tahu klien bahwa perlu "Google Khroma normal", karena itu kemungkinan besar klien akan meninggalkan mereka. Jika situs seperti itu menampilkan sesuatu seperti “location.href = 'http://google.com/',datang kepada kami lagi ”- ini bahkan lebih baik, jangan main-main dengan orang-orang seperti itu.

Anda dapat melangkah lebih jauh: gambar pada halaman ditampilkan sebagai 100x100, tetapi sebenarnya 500x500? Munculan merah dengan pesan bahwa penulis tidak dapat mengubah ukuran gambar. Gambar dengan grafik fotorealistik menyusut di PNG? Munculan merah yang penulis tidak mengerti format file. Halaman tidak memiliki tautan ke halaman utama? Munculan merah dengan pesan bahwa pembuat situs tidak melakukan navigasi normal.

Tentu saja, sembulan merah tidak selalu dapat ditampilkan. Misalnya, jika gambar PNG dapat dioptimalkan dengan lebih baik melalui optipng, maka Anda dapat menampilkan sedikit peringatan merah, seperti yang disimpulkan oleh pemblokir iklan mereka. Berbagai pengoptimal CDN sudah melakukan hal serupa, yang memampatkan gambar dan memperkecil kodenya, dan bahkan mencoba memfilter injeksi SQL pada input. Tetapi semua kegembiraan ini hanya akan terjadi jika penulis membayar uang dan menghubungkan layanan yang sesuai, dan apa yang harus dilakukan pengguna sederhana? Dan pengguna sederhana dapat dengan mudah menolak untuk menggunakan situs berkualitas rendah, dan perambannya akan membantunya dalam hal ini.

Sudah, laporan pemblokir iklan, yang menampilkan angka digital, dapat dianggap semacam situs anti-peringkat. Semakin anti-rating, semakin buruk situs dan penulis harus melakukan sesuatu tentang hal itu. Untuk beberapa nilai, Anda cukup menampilkan peringatan yang mengunjungi situs ini mungkin tidak diinginkan. Selain itu, saya percaya bahwa browser harus berbagi temuannya dengan komunitas. Anda dapat membuat peringkat global untuk setiap situs, menempel pada angka yang didambakan untuk setiap tautan, agar tidak secara tidak sengaja pergi ke suatu tempat di mana pengguna menunggu "pengalaman buruk". Tentu saja, semuanya tidak bisa otomatis. Oleh karena itu, Anda dapat membuat beberapa peringkat, beberapa di antaranya akan dipimpin oleh orang yang masih hidup, memeriksa kode secara manual, memeriksa lisensi mereka dan kualitas kode, kualitas situs secara keseluruhan. Tentu saja, mekanisme tersebut harus didesentralisasi dan tidak dikendalikan oleh individu tertentu.Biarkan pengguna memutuskan berlangganan apa yang akan berlangganan.

Pengaturan situs individual

Setiap situs atau grup situs harus memiliki pengaturan masing-masing, mirip dengan bagaimana hal itu dapat dikonfigurasikan di Opera lama (hingga 12 versi inklusif). Hanya mekanisme ini yang bisa diperbaiki.

Pertama, mengidentifikasi situs tidak hanya berdasarkan domain atau subdomain, tetapi juga dengan ekspresi reguler di domain. Atau dengan alamat IP yang diterima dari domain ini. Misalnya, saya tidak ingin mengeksekusi skrip di situs / sumber daya dari Yandex (lihat alasan di bawah), saya bisa menemukan daftar blok alamat IP milik Yandex dan dengan lembut mengganggu pelaksanaan kode yang tidak dipercaya. Sederhana dan mudah. Tetapi saat ini saya terpaksa membatasi diri untuk melarang domain individu (saya tidak tahu semuanya!), Memasuki semua rentang alamat menjadi firewall, yang sangat merepotkan, atau meningkatkan server DNS saya dengan alamat untuk topeng * yandex *, yang saya gunakan lakukan saat ini.

Kedua, agar tidak menghasilkan entitas, Anda dapat membuat profil dasar, seperti "situs tepercaya", "situs biasa", "situs buruk", "untuk situs dari Vasyan", "untuk Aliexpress" dan menetapkan pengaturan Anda ke situs ini atau itu . Dan tergantung pada profilnya, User-Agent-nya akan dikirim, urutan dan isi header, dukungan untuk atau tidak didukung memuat gaya, font, skrip dan segala sesuatu yang dapat dikonfigurasi. Bahkan untuk menentukan apakah mungkin untuk mencegat klik mouse kanan, dengan akurasi apa untuk memulai penghitung waktu atau apakah akan memainkan animasi dan suara (untuk beberapa tujuan yang tidak diketahui, permintaan untuk MIDI muncul di AliExpress). Anda juga dapat memberikan pengaturan yang berubah secara acak, seperti nilai Agen Pengguna acak dari daftar besar atau proxy sewenang-wenang untuk situs tertentu (lebih lanjut tentang ini nanti).

Salin dan tempel

Tampaknya apa yang bisa menjadi fungsi paling dasar dalam program yang menampilkan teks? Bekerja dengan pemilihan teks / menyalin / menempel tentu saja!

Sayangnya, bahkan dengan masalah seleksi sederhana sudah dimulai. Sudahkah Anda mencoba menyoroti tautannya? Di browser, dalam surat, di IM? Dan bagaimana? Di suatu tempat, tautan itu mulai menyeret, di suatu tempat Anda mengkliknya, bahkan jika Anda tidak melepaskan tombol, dan di suatu tempat Anda perlu membidik celah milimeter untuk dapat memilihnya. Memilih gambar adalah lotre yang terpisah, terkadang ini tidak dapat dilakukan sama sekali, kecuali dengan menekan kombinasi hacker rahasia CTRL + A. Satu langkah ke kanan dan kiri - dan kami telah memilih seluruh halaman, dan bukan paragraf yang kami tuju.

Atau teks mungkin tidak menonjol sama sekali, menciptakan ilusi tombol mouse yang rusak. Bahkan jika kami membidik dan dapat memilih teks, itu bukan fakta bahwa ketika kita mengklik kanan kita tidak akan mendapatkan peringatan keren seperti "Teks halaman ini dilindungi dengan dingin". Atau tidak ada yang muncul sama sekali, karena browser telah belajar untuk memutus skrip seperti itu secara otomatis. Atau permintaan untuk mengirim laporan tentang kesalahan ketik yang ditemukan pada halaman tidak akan keluar. Saat membaca teks, saya sering memilihnya dengan mouse untuk memudahkan persepsi, dan kotoran seperti itu membuat saya sangat marah.

Masukkan lebih buruk lagi. Apakah pemformatan akan disimpan atau tidak? Kadang-kadang tergantung pada apakah Anda menggunakan hotkey atau menggunakan "roda" - perilaku yang berbeda, untuk tindakan yang tampaknya satu. Apakah akan ada celah dalam apa yang dimasukkan ke aplikasi pihak ketiga jika tidak ada spasi di antara blok? Dan kadang-kadang Anda tidak akan menghilangkan pemformatan: Anda menempelkan teks yang disalin dalam halaman, misalnya, dalam huruf yang diketik, dan paragraf yang diketik tiba-tiba menjadi tebal dan / atau berubah menjadi kutipan.

Squeak mode terakhir: ganti isi clipboard. Anda menyalin teks tentang kucing-kucing itu, dengan enggan menempelkannya ke dalam obrolan dan ... Mereka membatalkan larangan itu, karena bersama dengan teks yang diinginkan, sebuah iklan untuk sumber daya dimasukkan, dari mana salinan itu berasal. Tentu saja, Anda perlu berhati-hati dan berhati-hati, memperhatikan apa dan di mana Anda mengirim ... Tetapi di sisi lain, mengapa alat saya untuk melihat teks memungkinkan mereka berperilaku seperti ini?

Penyimpanan terdistribusi

Caching lokal dari konten yang kita bicarakan sebelumnya hanyalah sebagian dari kebutuhan pengguna web modern. Bagian penting kedua dari masalah ini adalah caching konten di server, dalam perjalanan ke klien pada CDN yang berbeda dan sejenisnya. Bahkan, situs-situs kecil mungkin dihadapkan pada kenyataan bahwa dibutuhkan terlalu banyak lalu lintas untuk mengirimkan file yang pada dasarnya statis. Berulang kali. Dan mereka hampir tidak punya pilihan selain memberi makan CloudFlare yang mencekik sehingga menyediakan cache yang didistribusikan.

CloudFlare sendiri memiliki teknologi RailGun yang menarik: www.cloudflare.com/website-optimization/railgun- Ini adalah penopang keren yang memungkinkan Anda untuk melakukan cache non-cacheable, dengan bantuan yang mereka tidak hanya men-cache halaman versi lama, tetapi juga membuat perbedaan dengan mereka dan mengirim perbedaan yang sudah dibangun kembali dari server mereka. Dengan demikian, ternyata Anda dapat memperbarui halaman hanya dengan 1 paket data 400 byte (nomor tersebut diambil dari deskripsi), dan server asli dapat meng-host bahkan di telepon (pada kenyataannya, ini tidak demikian). Tetapi untuk hal seperti itu Anda harus membayar, dari $ 200 per bulan, yang merupakan uang yang sangat besar untuk situs kecil.

Oh, dan jika mungkin untuk membagi konten menjadi elemen-elemen kecil yang dapat dikelola ... Tapi ya, lebih lanjut tentang itu nanti. Sementara ada kruk seperti diff dan cloudflare dengan Railgun-nya.

Tetapi sistem file IPFS split sudah ada. Dan ada ZeroNet, yang saat ini, di luar kotak, memungkinkan Anda meng-host situs web secara terdistribusi. Anda dapat mencoba mengunduh klien dan melihat jaringan yang tidak biasa ini, yang tidak memerlukan server!

Namun, tidak ada yang baru di sini. Sekitar 15 tahun yang lalu, situs web populer memiliki klien desktop mereka sendiri (dan kadang-kadang lebih dari satu) dan sedikit distribusi torrent dalam kit untuk itu. Dan hari ini ada dalam satu bentuk atau yang lain, misalnya, aplikasi WikiTaxi, yang memungkinkan Anda menyimpan Wikipedia di saku Anda. Dan saya juga ingat sesuatu seperti AportExpress, di dalamnya terdapat mesin templat lengkap dan templat Aport asli dari server, yang mengumpulkan halaman pada klien.

Jaringan yang Ditingkatkan

Dapatkah Anda bayangkan bahwa kadang-kadang orang mengakses jaringan melalui modem GSM yang berbeda, di mana kecepatan yang sudah rendah terpotong oleh kondisi penerimaan sinyal buruk / kondisi kontrak yang buruk? Dan ada situs seperti imgur.com/a/XJmb7 di mana ada hal-hal yang sangat indah, tetapi berat halaman itu sendiri, termasuk semua gambar, melebihi puluhan megabita. Satu-satunya masalah adalah bahwa halaman tersebut tidak dapat dilihat dengan koneksi seperti itu.

Saat ini, peramban mencoba memuat semua gambar secara bersamaan, memperlambat pemuatan masing-masing gambar (untuk ini mereka masih membuat banyak sub-domain untuk melewati batas jumlah koneksi). Setelah beberapa waktu, timeout terjadi dan server hanya menutup koneksi, meninggalkan kita dengan gambar yang rusak, yang bagus jika sama sekali entah bagaimana terbuka. Jika Anda menekan F5, maka untuk sesaat akan ada gambar (membatalkan unduhan dan menampilkan apa yang sudah dimuat), dan kemudian unduhan akan dimulai dari awal, tanpa melanjutkan gambar individual. Dan Anda sering memperhatikan bahwa browser “mengunduh” halaman atau file pertama dengan kecepatan 50kb / s, kemudian pada 20kb / s, dan kemudian 3kb / s? Ini berarti bahwa kecepatan unduhan sesungguhnya karena suatu alasan menjadi sama dengan 0 byte / detik, dan memutuskan sambungan dan memulai kembali penuh dengan kesulitan besar,bahkan jika secara teknis mengunduh file dimungkinkan.

Tetapi server web dapat menghasilkan file torrent untuk statika dan mendistribusikannya dalam mode otomatis, yang akan memungkinkan keduanya mengunduh file dan menghapus beban dari saluran jaringan! Pada intinya, file torrent hanyalah daftar checksum yang memungkinkan Anda untuk mengunduh file dari lokasi yang sewenang-wenang dan memverifikasi kebenaran yang diunduh. Dengan demikian, bahkan gambar yang tidak lengkap dapat dengan mudah dikempiskan, bahkan dengan upaya ke-5, untuk secara akurat memecahkan masalah versi dan validasi cache.

Dan karena kami memberikan metadata klien tentang file, kami dapat mendesain seluruh halaman sebagai "satu distribusi besar" dalam bentuk paket data tunggal, di dalamnya akan ditampilkan informasi tentang halaman serta file gambar, gaya, halaman yang ditautkan, dan lainnya. referensi (termasuk "distribusi" lainnya), semacam sitemap biner kecil. Ini akan memungkinkan Anda untuk men-cache / pra-cache situs dengan lebih baik, memuat semua sumber daya lebih cepat, tanpa menunggu halaman atau skrip dimuat sepenuhnya, dan bahkan mengoptimalkan situs untuk orang-orang cacat dengan menawarkan kepada mereka navigasi halaman lanjutan. Atau jangan unduh elemen apa pun sekaligus, misalnya, ikon Apple di layar setengah atau banyak video.

Sayangnya, pengembang modern berusaha menangani masalah ini dengan caranya sendiri, tanpa memberikan pengaturan dan mengimplementasikan semua ini dengan tangan mereka sendiri, yaitu. "Bagaimana kelanjutannya." Misalnya, mengunggah gambar / video melalui sekelompok JS, banyak domain dan pemrosesan halaman bergulir, itulah sebabnya tidak mungkin lagi dengan cepat menggulir halaman ke "halaman kesepuluh", yang membuat saya sangat marah. Untungnya, beberapa vendor besar seperti Xiaomi mulai melawan ini, bertanya setiap kali, “Apakah Anda ingin memutar video? Mungkin ada biaya tambahan untuk ini! ”, Tetapi sejauh ini tidak mungkin untuk membuat larangan otomatis pada aib seperti itu, dan masih ada banyak cara untuk mengatasi pengembang.

Jika kami telah menyentuh situs tanpa akhir dengan pengguliran tanpa akhir, kami ingin mencatat: tidak ada yang menghentikan pengguna untuk menunjukkan kerangka kosong dari seluruh umpan raksasa sehingga ia dapat dengan mudah menavigasi dan memuat konten secara dinamis. Tapi tidak ada yang melakukannya.

Mengunduh situs

Katakanlah saya menemukan sebuah situs dengan manual tumbuh stroberi. Saya mengagumi, bersemangat tentang ide itu, pergi ke pondok dan ... Dan setelah mengalami masalah, saya menyadari bahwa saya harus mengubah setiap halaman menjadi PDF, dan hanya kemudian pergi ke pondok. Kenapa di pdf? Ya, karena halaman modern bahkan tidak ingin disimpan dengan benar, dan apa yang tersisa untuk ditampilkan ketika HTML lokal dibuka dan di mana cookie itu crams hanya dapat ditebak.

Tapi di masa lalu, saya bisa mengambil Teleport Pro dan memompa seluruh situs dengan stroberi, tuangkan di ponsel saya dan dengan tenang pergi ke pondok! Semua gambar akan dipompa keluar, semua tautan akan ditautkan, hampir semuanya akan berfungsi. Bahkan ada situs dengan situs yang sudah diunggah - hal yang tak terpisahkan untuk dipelajari pada tahun-tahun itu, serta mesin pencari di JS yang bekerja dengan baik di peramban!

Tetapi apa yang akan terjadi hari ini jika saya mencoba melakukannya? Saya menunggu penemuan bahwa di halaman situs web modern adalah dinamis, setiap halaman memiliki seribu URL, dan saya dengan mudah mengunduh tiga halaman 10.000 kali, dengan hati-hati menautkannya, dan ketika saya menjelajah ke halaman yang diinginkan, saya bahkan tidak akan mendapatkannya jika itu diunduh (oleh jalan 50 link, yang saya harus pergi persis sama dengan kursi goyang itu).

Dan jika Anda benar-benar menginginkannya? Dalam hal ini, kami mengambil dan menulis parser situs hari ini, memilih konten (dengan pelanggan tetap atau xpath), entah bagaimana kami menghubungkannya kembali menggunakan skrip buatan rumah, kami melampirkan indeks dari kotoran dan tongkat, bahkan mungkin mesin pencari sederhana. Semua ini berlangsung dari 1 hari, sampai Anda bosan. Anda bisa menyimpan teks dalam Word dan bersumpah pada kenyataan bahwa semuanya dimasukkan dalam Dampak merah dan markup sedemikian rupa sehingga tidak mungkin untuk melihatnya. Anda dapat menghidupkan perekam video dan menggulir ke halaman - pilihan waktu yang lebih murah, meskipun catatan seperti itu akan banyak menimbang, tetapi di zaman kita ini tidak terlalu diperhatikan.

Pada titik ini, saya harus menulis bahwa di peramban yang ideal saya memerlukan fungsi memompa situs, sehingga nantinya saya dapat dengan mudah mentransfer konten ke telepon atau perangkat * standalone * lainnya. Tetapi dengan mempertimbangkan hal di atas, sayangnya, ini tidak mungkin. Tetapi jika konten kami dibagi menjadi beberapa elemen kecil yang dapat dikelola ... Namun sayang. Oleh karena itu, peramban modern, selain semua hal di atas, seharusnya tidak hanya dapat menguraikan elemen yang sama ini, tetapi juga menyimpannya dalam basis data lokal, versi, dan menjadi semacam CMS kecil.

Dan jangan berpikir bahwa situs modern, pada prinsipnya, tidak dapat dikempiskan. Sebaliknya, statis menjadi mode lagi, bahkan ada proyek menarik dan populer seperti github.com/jekyll/jekyll untuk menghasilkan statika. Jadi mengapa tidak membagikan "sumber" situs tersebut?

Penafian: Teleport Pro digunakan di sini hanya sebagai perangkat lunak yang paling terkenal untuk situs pemompaan, ini tidak pernah menjadi iklan atau nostalgia, saya pribadi tidak menyukainya karena banyak file sementara dan ketidakmampuan untuk menguraikan javascript dengan benar. Pilihan saya adalah rocker lain, yang tidak begitu dikenal luas, seperti webzip, yang walaupun membutuhkan banyak sumber daya, memasukkan iklan ke dalam halaman, tetapi memompa konten dengan benar dan lengkap.

Konten media

Seperti elemen terkelola kecil yang berubah menjadi monolit yang tidak terkendali, penulis situs membuat alat primitif untuk melihat konten media. Sederhananya, setiap situs pertama mencoba menunjukkan kepada saya video melalui pemutar webnya yang unik. Yang unik di sana, tentu saja, adalah logo dan gangguannya.

Tidak, pada suatu waktu saya juga menyombongkan diri bahwa saya bisa menulis pemain web keren dalam sekejap, dan saya akan melakukannya hanya dalam 20 baris! Saya keren, saya bisa melakukan apa saja! Seiring bertambahnya usia, saya mulai mengajukan pertanyaan:

1. Bagaimana cara memutar kecerahan / kontras dalam hal ini? Dan normalisasi yang dinamis?
2. Bagaimana cara beralih ke layar penuh? Dan jika tidak ada tombol, karena mereka lupa menggambarnya?
3. Bagaimana mempercepat kuliah yang membosankan hingga 3 jam?
4. Bagaimana cara memutar equalizer? Dosen nyaris tidak terdengar, bahkan jika Anda membuka speaker
5. Bagaimana saya memotong potongan itu dan mengirimkannya ke teman?
6. Bagaimana saya cepat kembali, selama beberapa detik, tanpa mengarahkan mouse ke strip kecil?
7. Bagaimana membuatnya memberi lebih dari 15 fps?

Beberapa vendor sudah mencoba menyelesaikan masalah ini. Masalahnya adalah dalam bentuk produk buatan primitif dengan fitur dasar. Misalnya, di Opera Anda dapat "mengupas" pemain dari halaman dan mengelolanya secara terpisah. Ada youtube-dl, yang memungkinkan Anda untuk tidak hanya mengunduh video dari banyak layanan, tetapi juga mendapatkan tautan sehingga Anda dapat meletakkannya di pemutar normal, setidaknya di VLC. Ada juga StreamLink dan MPV, cobalah, pasti Anda akan lebih menyukainya daripada pemain biasa.

Tapi kita bisa melangkah lebih jauh dengan menerapkan semua prinsip di atas ke multimedia. Jika ada sesuatu yang ingin hilang, maka kami meminta pengguna, lalu mengunduhnya, menyimpannya secara lokal, mendekode dan menampilkannya - seperti di peramban lainnya. Tetapi karena kami mengerti bahwa browser bukan aplikasi multimedia dan tidak dapat memenuhi semua permintaan, kami dapat menampilkan tombol di dekatnya yang akan meluncurkan pemutar normal dengan konten yang ditampilkan. Mari percaya pada para profesional dan penggemar yang telah menghabiskan berjam-jam hidup mereka dalam hal ini. Orang yang memutar musik atau video, dan bukan yang dipaksa untuk memasang pemutar ke situs selama 20 dolar per jam.

Agar koneksi ke sumber video tidak terputus dan video tidak diunduh lagi, kita dapat membuka server proxy lokal, seperti yang dilakukan klien torrent, dengan mengemas ulang aliran video dengan cepat, yang kami gunakan untuk mendistribusikan video ke aplikasi eksternal, dan ketika permintaan tiba - bagian dari cache, dan bagian akan dimasukkan secara real time, sesuai dengan permintaan aplikasi dan kemampuan situs. Demikian pula, setiap video / audio dapat dengan mudah disimpan sebagai file, bahkan jika itu awalnya siaran langsung atau skrip sumber media yang dihasilkan secara dinamis dan file seperti itu bahkan tidak ada. Dan Anda tidak perlu mencari tautan langsung di suatu tempat di nyali halaman, melawan arahan ulang atau memasukkan artileri berat dalam bentuk rekaman video dari layar - browser harus untuk pengguna, dan pengguna akan berhasil, tidak ada yang akan mengganggunya. Hal yang paling sulit di sini adalah, mungkin, suntikan ke dalam proses Flash. Tetapi siklus hidupnya berakhir, karena terlalu sering tidak boleh diperbarui.

Memfilter konten yang tidak pantas

Jika kata-kata tentang pemfilteran konten yang tidak diinginkan biasanya hanya terpikirkan oleh iklan porno atau mengganggu, tetapi Anda telah menghadapi masalah di hampir semua situs ketika lebih baik tidak melihat konten ini atau itu. Ingat bagaimana Anda merayapi situs yang berbeda, meraih kilometer hasil pencarian dengan hasil yang serupa. Atau bukan dari jenis yang sama, tetapi Anda mencoba menemukan sesuatu yang berbeda di antara kumpulan data?

Misalnya, di situs dengan pekerjaan / freelance, Anda dapat sering melihat seseorang perlu menulis esai, tetapi Anda tidak melakukan esai, sama seperti Anda tidak menulis dalam JS atau PHP, tetapi Anda sering mengambil dan membuang semua proyek seperti itu dari hasil pencarian itu hanya mustahil, serta mengandalkan kategori - tidak ada yang biasanya menunjukkannya. Atau apakah Anda melihat umpan berita, dan setelah jatuhnya pesawat lain, Anda tidak tahu ke mana harus pergi dari berita tentang pesawat, terutama jika ada kerabat di sana dan itu menyakitkan Anda? Beberapa orang mendapatkan ekspresi tren yang modis dan terkenal, atau bahkan hanya, seperti pemintal atau Pokemon, sebagai akibatnya bahkan plug-in browser khusus tampaknya tidak melihat ini. Dan siapa yang tidak ingin menambahkan "teman" ke daftar hitam sehingga mereka tidak akan pernah melihat posting mereka lagi? Dan masih belum melihat berita tentang badak muntah dengan iklan kurang ajar mereka, dicakup oleh pengujian program sumber terbuka dan bantuan gratis kepada masyarakat ...

Lucunya, hampir semua klien email memiliki filter kaya untuk menyortir / menghapus email sampah, tetapi hampir tidak ada situs web yang memiliki fungsi seperti itu. Jika konten kita akan dipotong menjadi elemen-elemen kecil yang dapat dikelola, maka kita dapat memfilter / menyoroti agar tidak membuang-buang waktu kita pada sesuatu yang kita jelas tidak tertarik. Dan saya tidak perlu menulis parser untuk beberapa situs yang menghapus 90% dari konten dan memberi saya tekanan dalam bentuk sisa 10% dalam format yang saya butuhkan. Dan bukan 10 elemen per halaman. Setidaknya 1000 buah . Mungkin untuk menggunakan pembaca RSS, tetapi RSS / Atom jauh dari mana-mana, terutama itu tidak cukup dalam hasil pencarian.

Item kecil yang bisa diatur

Jadi apa saja elemen kecil dan dapat dikelola dari situs yang disebutkan sebelumnya? Untuk membuatnya lebih mudah dimengerti, mari kita bayangkan file json statis dengan beberapa informasi. Atau XML, atau database SQLite, atau file XLS, atau mesin teks CSV, atau sesuatu yang belum dilahirkan, tetapi sudah pasti bersifat biner, terkompresi, dan nanoteknologi ... Dan di dalamnya ada informasi kecil. Kecil karena mereka adalah unit logis yang tidak dapat dibagi. Ini bisa berupa tautan di panel navigasi, cuplikan untuk deskripsi produk, produk itu sendiri dengan semua properti, komentar pengguna, atau bahkan seluruh artikel. Ini juga dapat berupa beberapa widget situs terpisah: bidang pencarian, sekeranjang pesanan, bidang login / razlogin.

Dikelola karena, tidak seperti monolit yang dibutakan, kita dapat mengelola data seperti itu: mengidentifikasi yang benar, mengurutkannya, mengeluarkannya dalam urutan langsung dan terbalik, menyaring atau menghiasinya dengan data kami, menciptakan meshas yang menghasilkan banyak suara pada waktunya. Hampir setiap situs memiliki database yang mengelola SQL. Di belakang SQL adalah teori relasional, aljabar relasional, dan banyak, banyak metode manajemen informasi. Dan sedikit lebih rendah saya akan menunjukkan bagaimana informasi dapat dikelola, dan betapa sedikit penulis situs memberi kita, jika sama sekali.

Sebagai contoh, saya mencoba mencari karya keren baru di bidang demoscene. Saya pergi ke pouet.net , menyodok Prods, dan kemudian ... Di satu sisi, saya hanya ingin pekerjaan keren, jadi saya mengurutkan pekerjaan berdasarkan jumlah lois. Pertama-tama saya melihat favorit saya fr-041: puing-puing, serta karya-karya lain yang telah saya lihat lebih dari sekali. Tapi saya ingin sesuatu yang segar! Saya menusuk artinya pada tanggal rilis, ini baru segar. Tapi yang mana yang terbaik? Bagaimana saya menggabungkan 2 sortasi? Atau setidaknya menentukan pilihan pada periode waktu formulir “selama enam bulan terakhir” dan baru kemudian mengurutkannya? Sayangnya, saya tidak diberi alat untuk melakukan ini. Tetapi masing-masing karya dapat direpresentasikan dalam file JSON kami sebagai elemen dari susunan karya, berdasarkan skema data, browser kami dapat menggambar kontrol yang independen dari penulis situs, di mana kami akan membuat pilihan untuk kesenangan kami.

Contoh lain: kita semua tahu bahwa pencarian lebih baik daripada Google tidak ada. Tetapi kadang-kadang dia menganggap dirinya sangat pintar sehingga dia membuang seluruh frasa dari permintaan pencarian, menerjemahkannya ke dalam bahasa yang berbeda dan menunjukkan apa yang menurutnya lebih berguna. Saya tidak membutuhkan itu. Di mana kotak centang "berhenti menjadi pintar, saya bertanggung jawab di sini"? Sebelumnya, itu terdiri dalam pengaturan yang benar dari tanda kutip dan plus, dan sekarang terletak di bing.com - pencarian yang lebih primitif segera dihidupkan, tetapi pencarian untuk apa yang saya butuhkan dan tidak menjadi pintar, tidak mengabaikan kata kunci saya, tidak mengabaikan kondisi permintaan. Jika dia menemukan sesuatu sama sekali, tetapi jika tidak, dia akan dengan jujur ​​mengatakan ini, tidak mencoba menemukan sesuatu dari dirinya sendiri. Dalam hal ini, jika kita diberi elemen kecil yang dapat dikelola, maka kita dapat dengan mudah dapat menggabungkan hasil pencarian dari kedua mesin pencari menjadi satu feed pencarian, untuk ini kita hanya perlu menghubungkan 2 dari array tipe yang sama.

Sangat sering, hasil pencarian di situs individu berantakan dengan spam atau iklan serupa, atau hanya deskripsi bengkok dari sesuatu. Sebagai contoh, satu blus dapat memiliki 20 pilihan warna - Saya harus menggulir semua ini dengan mata saya. Dan dalam kasus terbaik, saya hanya dapat menghapus dari masalah beberapa kategori barang atau menampilkan iklan dari seseorang, tetapi ini sangat merepotkan, dan seringkali fungsi seperti itu tidak disediakan. Jika kita memiliki elemen kecil yang bisa diatur, saya bisa menyaring penjual yang lalai, atau bahkan segera memilih pakaian dengan warna yang diinginkan.

Kembali menyortir lagi. Seperti dalam mencari demoscenes yang indah, ketika mencari barang di toko online, beberapa parameter sering kali menarik, tetapi Anda dapat mengurutkan hasil pemilihan hanya dengan satu. Jika memungkinkan. Ini bahkan memengaruhi lantai perdagangan terbesar. Jika mereka mengembalikan data mentah, maka itu akan sangat mudah untuk dimanipulasi. Dalam praktiknya, Anda perlu membuka 50 halaman dan membandingkan secara manual deskripsi produk, melempar koin, dan berharap bahwa pembelian akan berhasil. Tidak ada skema penipuan ketika sisir untuk $ 1 ditambahkan ke lot sebagai aksesori, tetapi sebenarnya biaya minimum adalah dari $ 10. Ada metode yang lebih menarik. Ketika saya membeli tablet pertama saya, saya memompa deskripsi 15.000 produk dan paket-paket mereka dengan tetap untuk mencari kata kunci yang saya butuhkan - sangat lambat, tetapi saya menemukan cinta saya (itu adalah U9GT2).

Tapi mari kita kembali ke stroberi kita. Atau lebih tepatnya, ke situs dengan manual tentang menanam stroberi.

Bayangkan bahwa instruksi untuk menanam stroberi adalah sumber daya (masih dalam bentuk file json, untuk kesederhanaan), yang dapat diminta secara terpisah, di dalamnya ada markup semantik (itu akan memberi tahu kami halaman mana yang dirujuk dan jenis tautan). Tidak ada navigasi, puncak kiat atau komentar terbaik dari pengguna lain - hanya konten murni. Nah, atasan, komentar dan tips di suatu tempat di dekatnya, tentu saja, bisa juga ada, tetapi yang utama adalah bahwa ini bukan dalam bentuk monolith, Anda dapat secara akurat mengidentifikasi tipe data yang diperlukan. Tentu saja, iklan dan skrip pasti akan ditambahkan di sini, tetapi lebih lanjut tentang itu nanti. Untuk saat ini, kami percaya bahwa kami memiliki konten murni, langsung dari basis data (atau bahkan dari editor konten). Ini mudah untuk mengempis, melipat, mengindeks, belum lagi kemudahan caching dan pengiriman konten. Elemen-elemen tersebut dapat digunakan untuk pra-caching baik di CDN dan di browser, membuat paket massal dengan konten untuk kompresi dan pemuatan yang efisien (agar tidak menarik setiap tombol secara terpisah untuk 50 byte), untuk pembuatan versi dan pengarsipan. Data seperti itu dapat diputar dan diputar di browser untuk waktu yang lama tanpa beban di server, dimainkan untuk waktu yang lama dengan jenis dan pilihan yang berbeda. Yang lucu adalah bahwa ini persis seperti itu disimpan dalam database di dalam mengelola CMS. Tetapi semua ini dimasukkan melalui "monolithizer", yang mencetak data dalam HTML monolitik, yang kemudian sangat sulit untuk dikerjakan.

Anda dapat membuat banyak fitur menarik dengan data tersebut. Misalnya, Anda dapat menguraikan posting di forum, menyimpannya di cache dan kemudian menonton posting yang dihapus.

Di mana elemen kecil seperti itu? Apa yang sudah ada di sana?

Sulit dipercaya, tetapi upaya untuk memisahkan konten dari presentasinya sudah ada cukup lama. Tanda pertama adalah RSS, yang sangat baik dalam memberikan cuplikan. Yandex.market membutuhkan bongkar toko dalam format XML khusus yang berisi harga, gambar, informasi tentang produsen dan bahkan pengiriman. Situs lain memiliki format unggahan sendiri, misalnya, Google Merchant menggunakan RSS2.0 yang sedikit dimodifikasi, tetapi secara umum format ini dapat dibaca dan dibuat hari ini.

Jika Anda mempelajari mimpi, yaitu, semua jenis OpenGL dan Microformats, dan banyak yang telah ditambahkan ke HTML5, tetapi sayangnya, mengandalkan ini sulit hari ini. Di sisi lain, banyak situs sudah berisi markup semantik, jadi menolak untuk membacanya adalah hal yang bodoh.

Seseorang dapat bertukar XML atau JSON murni dengan sekelompok bidang yang diberi nama dan semi-standar. Anda bahkan dapat bertukar database sendiri dalam format SQLite atau menghasilkan pilihan kecil di dalamnya. Yang utama adalah bahwa harus ada data bersih, tanpa kode apa pun (lebih lanjut tentang itu nanti).

Dari mana mendapatkan kebahagiaan?

Pada awalnya, sampai pengembang memahami manfaat dari cara interaksi baru, kita sendiri perlu mendapatkan kebahagiaan kita sendiri. Sederhananya, saya sarankan parsing situs dan merobek dari mereka entitas yang kita butuhkan. Anda dapat melakukan ini dengan xpath, pemilih CSS yang trendi, atau ekspresi reguler lama yang bagus. Ya, untuk setiap situs di Internet Anda harus menulis parser Anda sendiri. Pada pandangan pertama, ini adalah karya raksasa dengan hasil yang tidak terjangkau, tetapi benarkah demikian?

Sampai saat ini, ada beberapa proyek yang berspesialisasi dalam situs parsing. Beberapa, seperti Octoparse, hampir tidak memerlukan pengetahuan, blok yang diperlukan dipilih dengan mouse. Serta rencana untuk "merangkak" situs ini juga dipenuhi dengan mouse. Ini berarti bahwa ambang masuk untuk "pemrograman" akan sangat rendah, bahkan seorang ibu rumah tangga dapat membuat parser sendiri jika dia mau. Jika parser berkualitas buruk atau berhenti berfungsi, browser hanya akan menampilkan halaman apa adanya, sampai orang lain menulis parser baru.

Ada juga proyek yang lebih dekat yang bekerja hari ini. Misalnya, ini adalah fitur Tampilan Instan di Telegram. Orang-orang telah menulis banyak parser yang memotong situs terkenal dan hanya konten bersih yang diuraikan. Dan ketika seseorang memposting tautan ke situs semacam itu di Telegram, tombol berharga Tampilan Instan muncul. Jika Anda menekannya, hanya konten murni yang akan tiba, tanpa iklan dan sampah lainnya. Untuk mengunduh, diperlukan hanya beberapa kilobyte lalu lintas dan memori, daripada lalu lintas megabita dan memori gigabita, seperti halnya browser.Mengunduh sejumlah kecil data terjadi secara instan, karenanya nama fitur - Tampilan Instan. Jika parser rusak, yaitu pelacak bug dan komunitas yang siap untuk menulis parser baru, yang akan ditangani oleh editor yang nyaman. Jadi, jika seseorang tidak dapat percaya pada kemungkinan ide seperti itu, sampai dia sendiri melihat dengan matanya sendiri - selamat datang.

Benar, tugas kita akan sedikit lebih rumit, karena selain menampilkan teks artikel, kita juga perlu menampilkan feed dengan artikel, menavigasi bagian situs (artikel, forum, dan toko - semua ini tidak boleh diganggu dalam satu feed). Penting tidak hanya untuk mengekstrak apa yang dibutuhkan dari halaman, tetapi juga untuk memutuskan tabel mana yang mengaturnya. Sebagai contoh, saya sangat suka membaca komentar, dan jika hanya berita atau artikel utama yang dikeluarkan, nilai sumber daya akan menjadi lebih sedikit bagi saya. Misalnya, saya biasa menonton Youtube melalui SkyTube dan menemukan banyak komentar baru dan menarik, tetapi beralih ke NewPipe saya dibiarkan tanpa mereka. Perangkat parser yang sama dengan youtube-dl juga mengalami hal ini. Dan inilah cara menyortir konten yang dihasilkan ke rak - ini adalah pertanyaan besar, tidak setiap ibu rumah tangga akan dapat merancang struktur basis data. Pertanyaan yang lebih besar adalahcara menavigasi konten tersebut. Apa yang utama dan apa yang anak perusahaan? Entah bagaimana bertahun-tahun yang lalu, saya sudah menulis parser universal dengan heuristik, sehingga memotong konten utama, hanya menyisakan komentar, karena saya pikir komentar adalah hal utama.

Bahkan lebih sulit untuk memahami apa yang harus dilakukan dengan data yang diterima, bagaimana menampilkannya. Hanya metode yang ada yang muncul di sini: templat HTML, PHP dan SQL. Dan jika browser di NodeJS sudah melakukan, mengapa tidak menambahkan PHP ke browser untuk salah satu fitur? Saya bukan penggemar bahasa ini, tetapi ambang untuk memasukkannya minimal, dan di mana itu tidak akan mungkin dilakukan dengan beberapa templat sederhana, orang akan dapat memprogram di dalamnya (atau bahasa lain, lihat di bawah). Sesuatu seperti generasi halaman ini mengingatkan saya pada Aport Express kuno - program kecil dari mesin pencari Aport, yang terlibat dalam tugas menampilkan hasil pencarian langsung pada klien, mengurangi lalu lintas pada dialup yang digunakan saat itu. Jika seseorang ingin membenamkan diri dalam sejarah, maka Anda dapat membaca di web.archive.org/web/20010124043000/http: //www2.aport.ru: 80 / aexpress /, dan unduh di web.archive.org/web/20040627182348/http : //www.romangranovsky.narod.ru: 80 / aexpress.exe

Spanduk dan pelacak

Tidak, iklan itu sendiri tidak mengganggu saya lagi: selama bertahun-tahun keberadaan jaringan, saya mengembangkan kebutaan spanduk, yang terdiri dari kenyataan bahwa saya tidak melihat blok di "tempat-tempat terkemuka", serta blok yang ditulis dalam font yang tidak standar atau hanya dalam huruf kapital. Terkadang hal itu menjadi konyol - saya telah mencari tombol "register", "unduh" atau "topik baru" untuk waktu yang lama, karena dibuat besar dan terlihat, tetapi saya tidak memperhatikannya. Kadang sampai mereka mengirimi saya tangkapan layar dengan tombol dilingkari. Dan ini bukan masalah lalu lintas atau kecepatan. Hari ini ini adalah masalah keamanan, karena pertama-tama, iklan banner adalah kode ** yang dapat dieksekusi **, yang berarti itu bukan hanya kebocoran data pribadi untuk apa yang disebut "penargetan" dan pelacakan segalanya, tetapi pada kenyataannya itu hanya lubang keamanan,di mana Anda dapat mengisi sploit atau hanya penambang. Jika sebelumnya mungkin untuk mengatakan "jangan pergi di situs porno dan semuanya akan baik-baik saja", sekarang "situs porno" dibangun di hampir setiap situs, di setiap halaman.

Tetapi pelacak memberi saya rasa sakit tertentu, apalagi yang aktif bekerja pada halaman terus-menerus. Saya bisa mengambil Yandex.Metrica sebagai contoh kotoran itu, semuanya lambat dari itu. Layak untuk melarang semua domain Yandex dan hidup saya dipenuhi dengan kebahagiaan, karena situs tiba-tiba berhenti mengerem dan saya bahkan berhenti memikirkan untuk memutakhirkan besi. Larangan domain Yandex adalah hal pertama yang saya lakukan ketika saya mengatur sistem untuk seseorang. Orang tidak kehilangan apa-apa sama sekali, tetapi kecepatan jelajah meningkat dengan urutan besarnya.

Solusinya sangat sederhana: kemampuan untuk menentukan "domain ramah" untuk situs dan mematikan permintaan untuk yang lainnya. Dengan cara ini Anda dapat memotong iklan menggunakan Kebijakan Permintaan atau yang setara, yang, tidak seperti pemotong berbentuk AdBlock, akan berfungsi di hampir setiap situs, tidak akan memerlukan langganan, dan akan membantu bahkan jika situs telah diretas dan banyak kode berbahaya ditempatkan di sana.

Saya mendengar teriakan di sana bahwa memotong iklan mengurangi pendapatan penulis? Jangan lupa bahwa untuk waktu yang lama tidak ada yang membayar untuk menampilkan spanduk. Tidak ada gunanya menampilkan iklan _me_, itu hanya menghabiskan lalu lintas dan lalu lintas server saya, tetapi itu tidak akan membawa satu sen pun kepada penulis. Tapi itu hanya bisa membuatku marah. Pada suatu waktu, saya menulis satu set utilitas untuk situs-situs yang sangat terkenal.

Jika Anda tahan dengan pengumpulan / kebocoran data pribadi, dan pengguna marah pada saat yang sama, maka saya akan merekomendasikan menginstal sesuatu seperti ekstensi AdNauseam yang luar biasa. Mungkin satu-satunya ekstensi untuk memblokir iklan yang dilarang oleh Google. Inti dari ekstensi ini sangat sederhana: mengeklik setiap elemen untuk diblokir dalam mode tersembunyi, mis. tanpa menunjukkan apa pun kepada pengguna. Pengiklan mendapatkan klik yang sudah lama ditunggu-tunggu, semuanya sesuai keinginan. Dan jika Anda mengklik setiap banner, maka data pribadi yang bocor akan dicampur dengan banyak sampah, karena mereka tidak akan sesuai dengan preferensi nyata pengguna. Penargetan dan pelacakan menjadi tidak berguna. Ekstensi yang sangat bagus. Dan ide yang cemerlang.

Periklanan (profil target)

Mengutuk? Sarankan! Ya, saya mengutuk praktik pengumpulan data yang ditargetkan, terutama dengan bantuan pengawasan dan trik buruk (bagi saya) yang serupa. Mengapa tidak memasukkan data penargetan secara langsung di browser? Saya akan menceritakan semuanya tentang diri saya, saya tidak memerlukan pengawasan dan virus:

Jenis Kelamin: laki-laki
Umur: 55 tahun
Pendidikan:
hobi khusus sekunder : fisting, bdsm, waria, perangkat kesucian, pengontrol napas gasmask
Residence: Klyuchi (pemukiman) di Ust -Kamchatsky District of Kamchatka Krai
Cek terakhir di toko: 28 rubel (roti)
Kondisi keuangan: tidak ada uang, saya hidup dengan uang saku dan di kebun pribadi saya
Sikap terhadap produk gratis:Saya menulis ulasan negatif tentang mereka, saya meletakkan Coke.
Profil di jejaring sosial: tidak ada dan tidak akan ada
Kartu kredit: tidak ada dan tidak akan

menantikan penawaran yang dapat saya gunakan, dengan mempertimbangkan profil saya.

Saya mengerti betul bahwa penerbit perlu entah bagaimana menghasilkan uang dan bertahan di masa-masa sulit kami dengan membeli pesawat atau villa lain, tetapi mereka juga perlu memahami pengguna yang terganggu oleh iklan yang tidak dapat diakses oleh mereka. Saya juga mengerti betul bahwa semua iklan tidak dapat dipotong, oleh karena itu saya untuk iklan bertarget, yang profilnya mudah disediakan. Dan tidak ada spanduk.

Saya juga ingin mekanisme peringkat pengguna untuk iklan yang bocor. Misalnya, saya membuka video di Youtube, saluran Creosan yang saya cintai, dan di beberapa titik Creosan sendiri mulai berbicara tentang beberapa kasino di sana. Saya akan dengan senang hati menyorot area dengan iklan dan memposting data di area ini sebagai "iklan" sehingga nantinya, pengguna lain dapat dengan mudah melewati iklan tersebut. Terkadang iklan ditemukan dalam teks artikel itu sendiri, dan artikel secara keseluruhan adalah iklan yang disamarkan. Sangat tidak menyenangkan bagi saya untuk membaca artikel seperti itu, oleh karena itu saya dengan senang hati akan menandainya sebagai "iklan".

Dukungan proxy / VPN bawaan

Sayangnya, beberapa orang bodoh memutuskan untuk saya apakah saya dapat menggunakan layanan ini atau itu, dan mereka melakukan ini berdasarkan negara tempat saya dilahirkan / hidup. Dan bukan hanya situs (pandangan sedih ke Google Play). Misalnya, saya bisa menggunakan Spotify hanya jika saya tinggal di AS, tetapi saya bisa menggunakan layanan Advcash jika saya TIDAK tinggal di AS. Tentu saja, jika Anda kurang beruntung saat lahir, maka tidak perlu bervegetasi di negara terbelakang, secara teori Anda bisa pergi ke negara yang tepat, tetapi saya tidak tahu bagaimana tinggal di 2 negara pada saat yang sama.

Solusi: mekanisme VPN bawaan, dan harus sepenuhnya dikonfigurasi untuk setiap situs secara terpisah. Untuk seseorang, saya hanya akan menjadi orang Jerman, untuk orang Amerika, dan saya akan melakukan pembelian dari negara yang menawarkan harga lebih rendah.

Mengapa tidak membeli VPN biasa dan menggunakannya, mengapa harus menyeret semuanya ke browser? Kemudian, itu hanya browser yang dapat memisahkan satu situs dari yang lain, memisahkan setiap tab. Jika kita merutekan semua lalu lintas melalui sistem VPN, maka kita perlu terus-menerus beralih, atau kadang-kadang menangkap pelepasan dan larangan, jika kita lupa melakukan ini.

Plugin

Kadang konten dipotong menjadi ubin. Misalnya, bisa berupa peta satelit atau foto. Pada prinsipnya, ini dapat dipilih dari browser hari ini, tetapi selanjutnya apa? Menonton sebagai ubin individual tidak nyaman. Untuk lem? Apa dan bagaimana? Tentu saja, saya dapat menulis file brute force yang akan membandingkan tepi ubin dan mencari opsi untuk pengeleman mulus, tetapi di sini Anda dapat membuat kesalahan, dan jika browser juga menyimpan informasi tentang di mana dan ubin mana yang relatif terhadap ubin lain, maka pengeleman akan cepat dan sempurna! Anda dapat melampirkan ekspor ubin yang nyaman langsung dari cache atau halaman saat ini!

Dan saya tidak ingin menemukan dan memasukkan login / kata sandi di setiap situs, sebagai gantinya saya ingin menentukan beberapa Seed acak, dari mana login dan kata sandi untuk situs tertentu akan dihasilkan. Sebagai contoh, saya menentukan baris "soMeRanDOooo0MStr11nng" dan ketika saya pergi ke example.com, 2 baris ini menyatukan dan membuat UID berdasarkan di mana Anda dapat menghasilkan apa pun, termasuk login / kata sandi (dan bahkan lebih baik, semua informasi pribadi yang tersisa sehingga itu mungkin untuk mendaftar dalam satu klik dan tidak memikirkan nama-nama lain apa yang ada di sana kecuali Sergey tanpa menggunakan fakenamegenerator). Dan kemampuan untuk meraba-raba kata sandi ini di bugmenot. Omong-omong, generator seperti itu sudah ada di Safari!

Dengan kata lain, browser harus menyediakan mekanisme plugin yang fleksibel. Selain itu, plugin harus berada di dalam browser sehingga Anda dapat mengaitkan hampir setiap bagian browser, dan tidak seperti suntikan JS setelah memuat halaman atau tombol di dalam toolbar. Tentu saja, saya ingin menulis plugin di C, kompromi dalam kecepatan pemrosesan halaman tidak dapat diterima.

Bagian browser sebagai layanan

Hampir setiap browser memiliki utilitas untuk mengunduh file. Ini adalah hal dengan antarmuka bengkok yang mengunduh file ke beberapa direktori yang tidak dapat dimengerti, tidak tahu bagaimana melanjutkan, dan kemudian ia juga mengatakan bahwa virus telah terdeteksi di dalam file. Tetapi hal ini adalah, dan yang paling penting, ini adalah bagian dari browser, yang berarti menggunakan cookie dan atribut sesi lainnya. Ini berarti bahwa dengan masuk ke suatu situs, kita tidak perlu lagi memilih cookie untuk meletakkannya di wget atau curl. Browser itu sendiri dapat bertindak sebagai utilitas, mendukung penuh sesi saat ini. Dan ini berarti bahwa kita pada awalnya dapat mengembangkan subsistem jaringan dan ikal seadanya dengan basis kode tunggal dan konektivitas yang buruk dengan kode browser utama, tetapi lebih pada nanti.

Hampir setiap browser memiliki daftar file primitif yang dapat menampilkan isi direktori direktori lokal. Itu melakukannya dengan bengkok, tetapi seringkali jauh lebih baik daripada tidak sama sekali. Tetapi opera lama dapat meraba-raba file antara pengguna dan bahkan memiliki aplikasi dengan kulkas untuk menggambar. Ya, mereka benar-benar melakukan masa depan. Dan mereka menyusulnya sedikit.

Peramban mungkin memiliki klien email yang akan menyenangkan untuk digunakan dari baris perintah, dengan riwayat terperinci. Ini akan memungkinkan mengotomatiskan banyak tugas, dari menyapu spam hingga mengirimkan pengingat. Pengingat dapat diambil dari layanan RSS bawaan.

Browser untuk bagian-bagian

Menulis seluruh browser adalah tugas yang agak rumit. Selain itu, banyak hal, seperti mengunduh file, pembaca RSS atau klien email, bahkan tidak terlintas dalam pikiran ketika banyak orang mendengar kata "browser". Paling tidak, aplikasi ini dapat ditulis secara terpisah, bisa dalam bentuk aplikasi lengkap, bisa dalam bentuk binding atas yang sudah ada, atau mungkin bahkan sebagai solusi sementara dari beberapa ratus baris dalam beberapa bahasa scripting.

Jaringan juga dapat dipindahkan ke daemon yang terpisah. Di dekatnya, Anda dapat mengambil resolver DNS dengan daftar hitam bawaan domain dan pembaruan otomatis daftar daftar hitam, subsistem untuk konten caching dan banyak hal lainnya. Bahkan rendering dapat dibawa ke proses terpisah, seperti di Opera Mini (dan apa yang dapat dilakukan dengan menggunakan sumber yang digabungkan, karena kode ini bahkan tidak masuk ke proyek secara langsung, tetapi akan menjadi "plug-in" pihak ketiga, kemurnian lisensi juga dipertahankan). github.com/browsh-org/browsh - di sini mesin furefox diberikan di suatu tempat di vpsk, dan yang sudah dirender dikirimkan kepada Anda dalam bentuk teks dan teks pseudo-grafis - kelihatannya sangat keren, Anda bahkan dapat menonton video

Pada awalnya, semua ini dapat diimplementasikan sebagai layanan microser independen, dengan satu pengembang menulis di java, lainnya dengan python, dan ketiga di Ruby dan mereka tidak perlu bertengkar, memilih tumpukan teknologi. Lagi pula, semua orang akrab dengan situasi di mana seseorang tidak dapat membayangkan browser Java karena rem, seseorang takut pada Sishku karena takut akan kerentanan, dan seseorang ingin mencoba Go yang modis dan mengagitasinya? Di sini, semua orang akan dapat memilih sebagian kecil untuk diri mereka sendiri dan menjawabnya dengan ketat, hanya perlu menyetujui protokol komunikasi. Dan jika beberapa bagian bekerja dengan buruk, maka pada akhirnya mereka dapat dengan mudah diganti. Atau ambil dan sesuaikan solusi yang ada untuk integrasi yang lebih dekat, seperti yang dilakukan di browser Arachne.

Bahkan renderer dapat dilakukan dalam proses terpisah dan hanya mengirimkan informasi untuk ditampilkan. Pada awalnya, Anda hanya dapat mengambil kode yang ada dari w3m / links / netsurf, maka mereka yang ingin dapat melampirkan mode switchable dari Gecko / Servo / Blink

Tentu saja, seharusnya menulis sejumlah besar plugin. Bookmark, termasuk yang disinkronkan melalui cloud atau layanan rekomendasi, tab multi-level dengan pratinjau dan pengisian otomatis formulir berdasarkan jaringan saraf, adalah semua yang Anda inginkan. Mungkin seseorang memiliki sumber unduhan file multi-threaded (atau seseorang melihat sesuatu seperti ini di github), siapa yang dapat mulai porting kode ini ke platform baru sekarang?

Dan tentu saja, di sini Anda dapat mengikuti prinsip lama: biarkan setiap program melakukan satu hal, tetapi lakukan dengan baik. Browser adalah seperangkat program yang sangat kompleks yang bekerja dengan jaringan, dan karenanya kompleksitas seluruh sistem. Jadi bisakah mudah untuk membagi browser kami menjadi jumlah bagian maksimum, memastikan kualitas dan keandalan masing-masing bagian?

Plugin sebagai fitur yang dijamin

Beberapa plugin dapat dijadikan default dalam instalasi. Misalnya, plugin untuk menyediakan tab, mengunduh file, plugin untuk bilah alamat dengan pelengkapan otomatis, pompom dan naga, dan sejenisnya, yang sudah ada di browser apa pun. Tetapi saya mengusulkan untuk melangkah lebih jauh dan memasukkan sedikit lebih banyak dalam pengiriman standar. Tentu saja, ini adalah jalan yang licin yang dapat membawa kita ke Bloatware, tetapi menurut saya, Anda tidak perlu takut untuk bereksperimen (tentu saja, bukan bagaimana Mozilla melakukannya, yang mencakup ekstensi berlubang dari program afiliasi yang berbeda tanpa kemungkinan terputusnya koneksi).

Misalnya, apakah Anda ingat di IE6 tombol tidak jelas seperti Diskusikan? Itu muncul setelah menginstal MS-office, hampir tidak pernah berhasil, karena dibutuhkan SharePoint sisi server untuk pekerjaannya. Tapi masalahnya: ketika Anda mengkliknya, bilah alat terbuka, di mana Anda dapat menambahkan komentar ke halaman, masih ada beberapa ruang obrolan seperti pohon (meskipun saya sudah mengingat semuanya dengan buruk, tapi saya tidak bisa google), dan itu bekerja dengan halaman mana pun. Bayangkan saja: komentar di situs mana pun, tanpa moderasi penulis, di mana Anda dapat mengekspresikan semua yang Anda pikirkan dengan berani dan langsung secara langsung tentang situs apa pun. Saya percaya bahwa plugin semacam itu adalah suatu keharusan dalam bundel browser kami.

Contoh lain: banyak situs membuka peta Google Maps atau Yandex pada halaman petunjuk arah mengemudi, dan ini dianggap praktik yang baik, bahkan tidak ada yang mengajukan pertanyaan privasi dan terlebih lagi tidak bertanya kepada pengguna jika saya ingin organisasi pihak ketiga mengetahui objek apa Apakah Anda tertarik dengan kota ini? Barang-barang tersebut dapat dipotong dan diganti dengan kartu OSM atau bahkan kartu repositori lokal. Tidak ada yang mau mengunduh dump OSM lengkap dan membuat peta lokal, satu atau dua gigabyte pada disk saat ini hampir tidak berarti apa-apa.

Ringkasan

Inilah visi saya tentang peramban yang sempurna. Tentu saja, jauh dari semuanya telah ditulis: topik replikasi, bentuk multi-level dan perlindungan data pengguna tidak tercakup, tidak ada apa-apa tentang model bisnis atau cara untuk menarik sponsor untuk proyek. Dan sponsor diperlukan, karena hanya sedikit orang yang akan membawa sesuatu yang dapat digunakan untuk melakukan pekerjaan seperti itu secara gratis. Tidak ada deskripsi tentang bagaimana melindungi diri Anda dari kepentingan sponsor, karena pada output kita bisa mendapatkan Firefox lain dengan plugin telemetri yang menginformasikan tentang pemutusan telemetri.

Namun pada tahap ini, hal terpenting dalam menciptakan browser yang sempurna adalah orang. Tulis ide, pemikiran, dan jika Anda dapat membantu proyek dengan kode atau tata letak - jangan ragu untuk menawarkan bantuan Anda. Yang menarik adalah kritik terhadap ide dan pemikiran di atas. Mungkin, jika bukan saya pribadi, maka seseorang yang telah membaca teks ini akan dapat menulis peramban yang baik. Saya mulai menulis artikel ini setahun yang lalu, sebagai jawaban untuk beberapa topik lain, saya akan mengatur crowdfunding, tetapi kesibukan hidup mengganggu, karena saya menerbitkannya apa adanya, untuk dipikirkan orang lain.

Teks ini tersedia di bawah lisensi Domain Publik dan Anda dapat dengan bebas mendistribusikannya di mana saja. Mungkin dengan cara ini kita (orang-orang pada umumnya) akan bisa mendapatkan browser yang setidaknya sedikit lebih nyaman untuk digunakan.

Source: https://habr.com/ru/post/id426295/


All Articles