GNU Emacs'te lsp-mode'dan Eglot'a geçiş
(utcc.utoronto.ca)- Wandering Thoughts ve CSpace'in bazı bölümleri, eski tarayıcı User-Agent bilgisi bot engelleme kurallarına takıldığında engelleme sayfası gösteriyor
- 2025'in başından itibaren yoğun bot trafiği arttı; bunların bir kısmı LLM eğitimi için veri toplama amaçlı görünüyor ve eski Chrome User-Agent kullanıyor
- Site yükünü azaltmak için eski tarayıcı User-Agent'lerini engelleme denemesi yapılıyor ve gerçek kullanıcılar da yanlışlıkla engellenebilir
- Güncel bir tarayıcı kullanmanıza rağmen engelleniyorsanız Toronto Üniversitesi kişisel sayfası üzerinden iletişime geçebilir, tarayıcınızı ve tam User-Agent dizgesini göndermelisiniz
- archive.* ailesi, eski Chrome User-Agent ve dağıtık IP'ler nedeniyle ayırt edilmesi zor olduğundan, Wandering Thoughts arşivleri için archive.org öneriliyor
Engelleme sayfası neden gösteriliyor
- Wandering Thoughts veya CSpace'in bazı bölümlerine erişirken, tarayıcı sürümünüz sitenin bot engelleme kuralları tarafından şüpheli olarak sınıflandırılırsa engelleme sayfası gösterilir
- 2025'in başı itibarıyla yoğun bot trafiği arttı; bunların bir kısmı LLM eğitimi için veri toplama amaçlı görünüyor ve eski Chrome User-Agent dahil çeşitli eski tarayıcı User-Agent'leri kullanıyor
- Site yükünü azaltmak için eski tarayıcı User-Agent'lerini engelleyen bir deneme sürüyor ve gerçek kullanıcılar da bu kurala takılabilir
- Güncel bir tarayıcı kullanıyor olmanıza rağmen engelleniyorsanız, Toronto Üniversitesi kişisel sayfası üzerinden iletişime geçebilirsiniz; mümkünse kullandığınız tarayıcıyı ve tam User-Agent dizgesini birlikte göndermelisiniz
Kullanıcıya göre notlar
-
Inoreader kullanıcıları
- Inoreader'ın feed toplayıcısı doğrudan engellenmiyor; fiilen feed'leri düzenli olarak çekiyor
- Inoreader, eski bir tarayıcı HTTP User-Agent'iyle ya da gerçekten eski bir tarayıcıyla feed veya sayfa alıp, bunun sonucunda aldığı engelleme sayfasını kullanıcıya gösterebilir
- Güncel HTTP istek sonuçları, kullanılan HTTP User-Agent'e göre değişebilir; ilgili ayrıntılar HTTPResultsAndUserAgents sayfasında yer alıyor
-
Vivaldi kullanıcıları
- Süren saldırılar nedeniyle, güncel Vivaldi bile Google Chrome olarak tanımlanırsa engellenebilir
- Vivaldi'nin Google Chrome yerine Vivaldi olarak tanımlanması için "User Agent Brand Masking" ayarını değiştirmeniz gerekebilir
-
archive.* kullanıcıları
- archive.today, archive.ph, archive.is vb. üzerinden bu engelleme sayfasını görebilirsiniz
- archive.*, eski Chrome User-Agent kullanıyor, geniş ölçüde dağılmış IP bloklarından tarama yapıyor ve bazı IP'lerde googlebot IP'si olduğunu iddia eden sahte ters DNS kayıtları bulunuyor; bu yüzden kötü niyetli aktörlerden ayırt edilmesi zor
- Wandering Thoughts'u arşivlemek için daha iyi çalışan bir arşiv botu olan archive.org kullanılması önerilir
1 yorum
Lobste.rs yorumları
Dile bağlı olarak Eglot’u otomatik başlatmayı tavsiye etmek ölümcül derecede kötü olabilir. Birçok dilin LSP sunucusu güvenilmeyen kodla güvenli şekilde kullanılamaz ve saldırganın kontrol ettiği bir Rust veya Elixir projesindeki dosyayı yalnızca açmak bile makinenin ele geçirilmesine yol açabilir
Güvenli olduğu bilinen bir LSP sunucusuna sahip bir dil değilse LSP’yi otomatik etkinleştirmekten kaçınılmalı. Dayanak: https://rust-analyzer.github.io/book/security.html
git statusbile bir saldırı yüzeyi olabilir: https://github.com/justinsteven/advisories/…Fark şu ki yukarıdaki örnekte istismarın deponun kendisinde bulunması gerekirken, LSP’de sorun bağımlılık tarafında da çıkabilir. Yine de alışkanlık gereği LSP’yi açmaya alışırsanız uyarılara karşı duyarsızlaşmayı engellemek zor görünüyor
rust-analyzersüreci ve 1GB’ı aşan birtarget/debug/dizini oluşturabilircargo buildkomutunu çalıştırdığınız anda iş işten geçmiş sayılır. Elbette LSP’nin otomatik yüklenmesi ile kullanıcının açıkça çalıştırdığı bir komut arasında büyük fark var, ama gerçek kullanımda bu fark düşünüldüğünden daha küçük olabilirlsp-modegibi etkinleştirmeden önce sorup projeyi bir izin listesine ekleyen bir yöntem daha iyi. Zaten “otomatik çalıştır” kancanız varsa, önceread-from-minibufferile “bu klasöre güveniyor musunuz?” diye sordurmak yaklaşık 10 satırda yapılabilir veprojectilegibi bir şeyle temel dizini belirleyerek güvenlik faydasının çoğunu elde edebilirsinizBenim ayarım
lsp-modeun izin listesini kullanıyor ama her oturumda siliyor; böylece Emacs’i her yeniden açtığımda proje bazında yeniden onay vermem gerekiyor. Sanırım bunu başta performans için yapmıştım;lsp-modebazen belirli bir projeyi açmadan önce birden çok süreç başlatıyordu. Güvenlik riski gerçek, ama makul bir iş akışı kurmak da çok zor değilEglot’taki en can sıkıcı şey, komutların çoğunu fonksiyon olarak sunmaması ve bunları
xrefgibi Emacs arayüzleri üzerinde tanımlaması. Clojure’da olduğu gibi hemCIDERhem declojure-lspiçinxrefarka uçları olduğunda, yüklenmiş kodun gerçek çalışma zamanı durumunu bilenCIDERtarafını tercih ediyorumclojure-lspnin statik analizi özellikle uzak REPL iş akışlarında senkron dışına çıkabiliyor.lsp-modeda tanıma git gibi özellikleri doğrudan komut olarak çağırırkenxrefi kullanmaya devam edebilirsiniz, ama Eglot’ta belirli birxrefarka ucunu devre dışı bırakmak epey zahmetli.lsp-modedaki bazı diğer komutlar da Eglot’ta yok, halbuki bunlar da aslındaxrefe benzer Emacs entegrasyon noktaları üzerinden sunulabilecek özelliklerlsp-modeu bir kez denedim ama kafa karıştırıcı açılır pencereler ve bildirimler o kadar fazlaydı ki hemen kaldırdım. Eglot çok daha sessiz bir LSP deneyimi sunuyorAçık tutup, hazır olduğunuzda özellikleri kullanıyorsunuz. ~cks’in ters yönden yaklaşarak çeşitli ipuçları ve alternatiflerden söz etmesi ilginç
lsp-modeu pek çok özelliği kapatarak oldukça sessiz bir arayüzle kullanıyorum. Eglot’a geçmeye çalıştım ama istediğim entegrasyonları sunmuyor gibi göründüğü için o zaman fazla uğraşmadımAsıl aradığım şey çok büyük depoları kaldırabilecek bir LSP sunucusu. Bu sık sık sınır olarak karşıma çıkıyor; kaynak indekslemeyi bir kerede büyük ölçüde yapıp sonra çeşitli LSP tarzı işler için yeniden kullanacak bir şey mi yazmalıyım diye düşünüyorum ama başka bir okyanusu kaynatmaya kalkmak da istemiyorum
Emacs için LSP istemcileri arasında en bilinenler Eglot ve
lsp-mode, ama lspce ve lsp-bridge gibi alternatifler de varEglot’u birkaç yıldır memnuniyetle kullanıyorum, ancak ileride daha büyük sorunlara dönüşebilecek tasarımsal bir sınırlaması var. Her arabellek için tek istemci varsayıyor; Eglot tasarlanırken bu makuldü ama artık tek bir arabellekte birden fazla LSP sunucusu çalıştırmak istemek giderek daha yaygın. Şu anki öneri, ayrı bir programı LSP çoklayıcısı gibi kullanmak
4 gün önce Python için
lsp-modedan Eglot’a geçtim ve memnunumMevcut yapılandırmamın en minimal sürümünü burada paylaştım: https://discuss.afpy.org/t/configuration-emacs-minimale-en-2026/3001
Yalnız tamamlama konusunda bazı rahatsızlıklar var. Örneğin
foo<tab><tab>bastığımda mevcut kapsamla eşleşen bir sembol olmasına rağmenbasedpyrightbazen garip bir şeyi otomatik içe aktarıyor ve yalnızca en uzun ortak dizeye kadar tamamlama yapmanın bir yolunu hâlâ bulamadım. Bunun dışında oldukça iyiİnsanların Emacs’i modern bir IDE gibi kullanabilmesini kıskanıyorum. Emacs tuş bağlarını kullanıyorum ama 6-8 saat harcasam bile Emacs’i IDE gibi çalışır hale getiremedim
Eskiden Linux ve FreeBSD geliştirme ortamlarında TypeScript yerine kullandığım FB Flow ile bunu yapmaya çalışıp vazgeçtim; geçen hafta sonu da Windows’ta tree-sitter’lı tam özellikli bir Python ortamı kurmaya çalışıp yine vazgeçtim. Ayarlanacak çok şey var ve tree-sitter ayrıştırıcıları gibi DLL’leri de ayrıca tek tek indirmek gerekiyor; düzgün bir IDE gibi yapmak için gerekenler fazla geliyor. Artık buna zaman harcamak istemiyorum ama ara sıra herhangi bir terminalde
emacs -nwyazınca tanıdık düzenleme ortamının açılması hoşuma gidiyorfido-vertical-mode,which-key-mode,global-completion-preview-mode,yasnippet,eglot-ensure,basedpyrightgibi minimal bir yapılandırmayla başlamak için yeterli olabilirbasedpyrightPATH içindeyse, tree-sitter sözdizimi olmadan da düzgün tamamlama ve sözdizimi vurgulaması elde edersiniz. Bu, tam yapılandırmamın en aza indirilmiş bir sürümü; tam yapılandırma my full config içindedoom emacsdenemeye değer. Yapılandırması çok kolay ve varsayılan haliyle de çoğu şey iyi çalışıyor.evil-modehoşunuza gitmezse Emacs tuş bağlarına da geri dönebilirsiniz