Destekle iletişim

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

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

← Tüm yazılar

2012'de sözü verilen çevrim içi ziyaretçi listesi artık yayında

25 Ağustos 2012'de bu blogdaki bir yazı, istatistik alanlarının kendiliğinden yenilenmeye başladığını duyurmuş ve şu cümleyle bitmişti: “Planlanan özellik, ‘Kimler çevrim içi’ listesi çok yakında!”

O yazı hâlâ burada. Duyurduğu listenin gelmesi on dört yıl sürdü. Liste artık var ve o yazının bağlantı verdiği sayaç bunca zaman boyunca çalıştı.

Neler gösteriyor

İstatistik sayfasında canlı bir panel var: şu anda sitede kaç kişi olduğunu gösteriyor ve en son gelenleri tek tek listeliyor – bağlandıkları ülke, biliniyorsa şehir, hangi sayfada oldukları ve en son ne kadar önce görüldükleri. Bir seferde on iki kişi, en yenisi en üstte.

“Şu anda”, son beş dakika demek. Bir saat sonra satırlar tamamen silinir.

0560canlı listedesatır hâlâ saklısilindison görülmeden beri dakika

Buradaki “kim” kimlik demek değil

O listedeki hiç kimsenin kimliği belli değil. Liste, çerez kullanmadan saymayı anlatan yazıda açıklanan aynı 16 baytlık günlük hash değerinden oluşturuluyor – hiçbir satırının arkasında ad, hesap, çerez ya da saklanmış bir IP adresi yok.

Ayrıca sayfanın adresinin tamamını değil, yalnızca yolunu saklar: /shop/boots, bir arama motorunun ya da bir bültenin sonuna eklediği her şeyle birlikte tam bağlantıyı değil.

Aynı şehirden aynı sayfaya bakan iki kişi de yalnızca iki satırdır. Sistemdeki hiçbir şey iki okuru, telefonda ve dizüstü bilgisayarda okuyan tek bir okurdan ayırt edemez. Bu, sonraki bir sürümde toparlanmayı bekleyen bir gözden kaçırma değil. Tasarım bu; sayacın başka her yerde yaptığı takasın aynısı: işe yarayacak kadar çok, kimseyi takip edecek kadar değil.

Bağlantıyı açık tutmadan canlı görünüm

Bunu kurmanın modern yolu WebSocket ya da server-sent events kullanmaktır – tarayıcı tek bir bağlantıyı açık tutar ve sunucu güncellemeleri oldukları anda bu bağlantıdan iletir. Zarif çözüm budur; burada ise yanlış çözüm olurdu.

Bu sitenin web sunucusu her açık bağlantı için bir süreç kullanır ve asıl işi birkaç bin web sitesinin sayaç isteklerini yanıtlamaktır. Açık tutulan bir bağlantı, başka kimseye yanıt veremeyen bir süreç demektir. Canlı sayfasını izleyen elli kişi, birkaç dakikada bir değişen bir sayıyı iletmek için boşta bekleyen elli süreç anlamına gelirdi.

Bu yüzden sayfa bunun yerine her on beş saniyede bir sorar ve küçük bir JSON bloğu çeker. Bunun çevresinde, aralıktan daha önemli üç karar var:

  • İstekler başarısız olmaya başlarsa sıklığı dakikada bire düşürür – zaten zorlandığı belli olan bir sunucuyu istek yağmuruna tutmak yerine.
  • Arka plandaki bir sekmede sormayı tamamen bırakır, sekme yeniden öne geldiği anda da yenilenir. Gizli bir sekmeyi kimse izlemez ve istek, yararlı bir istek kadar maliyetli olurdu.
  • Sayfadaki N saniye önce güncellendi satırı yerel olarak, saniyede bir ileri sayar ve hiçbir maliyeti yoktur. Veriyi değiştirmek için istek gerekir, eskitmek için değil.

Bunların hiçbiri zekice değil. Orantılı; küçük bir sunucuda da ikisinden daha değerli olan özellik budur. Canlı bir görünümün çalışması, izlediği şeyden daha pahalı olmamalı.

Geri gelmeyen bir parça

Eylül 2015'te bir yazı yayımlanmıştı: Kullanıcılar sekmesi, bir sayfayı etkin olarak okuyan biriyle onu arka plandaki bir sekmede açıp varlığını unutan birini ayırt etmeyi öğreniyordu.

Bu ayrım geri gelmedi. Şimdiki liste bir ziyaretçinin en son ne zaman görüldüğünü biliyor; bakıp bakmadığını bilmiyor. Bunu bilmek gerçekten değerli – her sitenin “ziyaretçilerinin” azımsanmayacak bir kısmı unutulmuş bir sekmedir – bu yüzden yapılacaklar listesinde.

Umarız bu sefer on dört yıl sürmez.

Deneyin

2012'deki yazı canlı bir örneğe bağlantı vererek bitiyordu; bu yazıyı da böyle bitirmek doğru görünüyor. Bu arada o ilk bağlantı hâlâ çalışıyor: arkasındaki sayaç bunca zamandır çalışıyor ve 1,3 milyon ziyareti geçti.

İşte canlı bir örnek, bakmak için hesap gerekmiyor.

Reklam