1 puan yazan GN⁺ 2025-05-30 | 1 yorum | WhatsApp'ta paylaş
  • Compiler Explorer başlangıçta tüm durumu doğrudan URL içinde saklama yaklaşımını kullanıyordu
  • URL’ler fazla uzayınca Google’ın goo.gl kısa URL hizmeti devreye alındı ve bu yapı birden fazla yönlendirme içeren karmaşık bir akışa yol açtı
  • 2018’den itibaren URL uzunluğu sınırı ve bakım zorluğu nedeniyle şirket içi S3 ve DynamoDB tabanlı depolama yapısına geçildi
  • Ancak Google’ın goo.gl hizmetini 2025 Ağustos’ta sonlandıracak olması, eski kısa bağlantıların kalıcılığını artık kendilerinin yönetmesini gerektiriyor
  • Şu ana kadar 12.000’den fazla eski bağlantı kurtarıldı; bu da programlama bilgisinin korunması ve sürdürülebilir hizmet işletimi açısından önem taşıyor

Compiler Explorer bağlantılarının kalıcılık garantisi ve geçmişi

İlk tasarım yaklaşımı ve goo.gl kullanımının arka planı

  • 2012’de Compiler Explorer, tüm derleyici durumunu doğrudan URL içine kodlayan bir yapı benimsedi
  • Durum bilgisi arttıkça URL’nin aşırı uzaması sorunu ortaya çıktı
  • URL’leri kısaltmak için 2014’te Google’ın goo.gl kısaltma hizmeti kullanılmaya başlandı
    • goo.gl/abc123 biçiminde kısa bağlantılar sunuluyor, tıklandığında asıl uzun URL’ye yönlendirilip durum geri yükleniyordu
  • Stack Overflow’nun kısa bağlantı kullanımını yasaklamasıyla (2016) mevcut yaklaşım kısıtlanmaya başladı
    • Kötü amaçlı bağlantıları gizleme riski nedeniyle goo.gl tabanlı tüm bağlantılar etkilendi
  • Kullanıcı verisini depolamak istemedikleri için geçici çözüm olarak godbolt.org/g/abc123 biçiminde kendi yollarını oluşturdular
    • godbolt.org/g/abc123 adresine gidildiğinde yeniden goo.gl/abc123 adresine yönlendiriliyordu
    • Bu sürecin sonunda tekrar uzun godbolt.org URL’sine dönülüyordu
    • Birden fazla yönlendirme oluşması yapıyı karmaşık hale getirdi
  • Daha sonra Google API’sinin kullanılmasıyla yönlendirme süreci kısmen sadeleştirildi

Kendi depolama altyapısına geçiş ve bağlantı yönetimi

  • 2018’den itibaren URL uzunluğu sınırı ve veri sıkıştırmanın zorluğu sık sık sorun olmaya başladı
  • S3 ve DynamoDB kullanan kendi depolama yapısı hayata geçirildi
    • Girdi değerleri hash’lenerek JSON belge biçiminde S3’e kaydedildi
    • Kısa bağlantıya (godbolt.org/z/hashbit) gidildiğinde eşleme DynamoDB üzerinden sorgulanıyordu
    • Hash değerinde küfür veya uygunsuz kelimeler yer alırsa rastgele öğe ekleyerek bunu aşan bir kontrol mekanizması kuruldu
    • Hash tabanlı bağlantılardaki uygunsuzluk sorunu böyle çözüldü ve bu süreçte ilgili hatalar yaşandı (ör. issue #1297)
  • Bugün hâlâ godbolt.org/g/abc123 adres biçimi destekleniyor
  • Google’ın resmî duyurusuna rağmen goo.gl hizmeti salt okunur moda geçti ve 2025 Ağustos’ta tamamen kapanacak
  • goo.gl tabanlı kısa bağlantılar artık çözümlenemeyecek
  • godbolt.org/g/abc123 biçimi doğrudan yönetimle ömrü uzatılabilecek olduğundan, bu bağlantı yapısı için sistematik bir kurtarma çalışması yürütülüyor

Eski bağlantıların toplu toplanması ve arşivleme çalışması

  • Son dönemde mümkün olan tüm kaynaklardan (arama, veri dökümleri, web günlükleri vb.) eski bağlantılar taranıp veritabanına alındı
    • Google Web Search API
    • GitHub API
    • Kendi sunucu günlükleri
    • archive.org üzerindeki Stack Overflow veri dökümleri
    • Archive.org’da saklanan web sayfası verileri
  • Yaklaşık 12.298 kısa bağlantı başarıyla kurtarıldı
  • İçeride goo.gl yerine kendi bağlantı veritabanı kullanılmaya başlandı (ilgili PR: #7724)
  • Bundan sonra da henüz bulunmamış godbolt.org/g/abc123 bağlantıları toplanmaya ve güvence altına alınmaya devam edecek
  • Toplulukta hâlâ kayda geçmemiş bağlantılar varsa, bunlara doğrudan erişilmesi veya yöneticilere bildirilerek veritabanının tamamlanmasının istenmesi öneriliyor

Proje felsefesi ve altyapı sahipliğinin önemi

  • Bu örnek, kritik altyapıyı dış hizmetlerin (ör. Google) sürekliliğine bırakmanın riskini açıkça gösterdi
  • Kısa bağlantı yönetimi ve yedekleme yapısı geçici çözümlerdi; gerçekten kalıcı URL sözü verebilmek için tüm hizmetin doğrudan yönetilmesi gerekiyor
  • Eski bağlantıları dijital arkeoloji gibi kurtarma sürecinde, her bağlantının birinin bilgi paylaşımının, sorusunun veya bir kavramı açıklama çabasının izi olduğu fark edildi
  • Bu saklama ve koruma çalışması, programlama topluluğunun tarihini arşivlemekle de doğrudan bağlantılı
  • Eski bir Compiler Explorer bağlantısı bulursanız, şimdi bile bir kez tıklamanız internet bilgisinin korunmasına katkı sağlayabilir
  • Bu kez, üçüncü taraflara değil doğrudan kontrol edilen altyapıya dayanarak kalıcılık vaadini yerine getirebilir hale geldiler

Disclaimer

  • Bu yazı bir insan tarafından yazılmıştır; bağlantı önerileri ve dilbilgisi denetimi sürecinde LLM’den yararlanılmıştır

1 yorum

 
GN⁺ 2025-05-30
Hacker News yorumu
  • 2010'dan önce bağlantıların sonsuza kadar kalacağı varsayımı çok doğal geliyordu, bu yüzden tarayıcının yer imi özelliğini aktif biçimde kullanıyordum, ama zamanla birçok yer iminin link rot nedeniyle fiilen kullanılamaz hale geldiğini gördüm, sonrasında web sayfalarını PDF olarak kaydetme alışkanlığı edindim, Reader view yaygınlaştıktan sonra ise içeriği Reader view'da kopyalayıp RTF dosyası olarak kaydetmeye geçtim
    • Ziyaret ettiğim tüm sayfaları arşivlemek için SingleFile uzantısını kullanıyorum, kurulumu ve ayarları oldukça kolay ama ciddi miktarda depolama alanı kapladığını unutmamak gerek, örneğin web sayfası arşiv dizinim 1.1TB'a ulaştı SingleFile GitHub bağlantısı
    • Resmi Web Archive tarayıcı uzantısını kurarsanız, ziyaret ettiğiniz tüm sayfaları otomatik olarak arşivleyecek şekilde ayarlayabilirsiniz
    • Benim yöntemim önemli bilgiyi ya da en azından onu nerede bulabileceğimi akılda tutmak, şimdilik hayattayım, demek ki bu yöntem bir ölçüde işe yarıyor
    • Bir bağlantı zaman aşımına uğradığında otomatik olarak web.archive.org'a yönlendiren bir tarayıcı uzantısı olup olmadığını merak ediyorum
    • WARC formatını WebRecorder ile birlikte kullanmanın bir yolu var WARC bilgisi, WebRecorder
  • ArchiveTeam'in Goo.gl projesiyle iş birliği yapmak değerli olabilir proje ayrıntıları, URL kısaltma gerçekten de gelmiş geçmiş en kötü fikirlerden biriydi diye düşünüyorum URLTeam açıklaması
    • Projenin canlı durumuna göre 42,5 milyar goo.gl URL'sinin 7,5 milyarı keşfedilmiş durumda canlı durum bağlantısı
    • ArchiveTeam muhtemelen 'bilinen' bağlantıları değil, Goo.gl kısa URL'lerini brute force yöntemiyle taramıştır, Compiler Explorer URL'lerinin çoğunun ya da tamamının onların verilerinde olduğunu düşünüyorum, bu yüzden iletişime geçmek iyi bir fikir olabilir
  • URL'lerin sonsuza kadar yaşaması ideal bir hayaldi, gerçekte URL'lerin %99'u kalıcı değil, kaybedilecek bir savaşa sürekli direnmek yerine teknolojiyi altyapının kalıcı olmadığını varsayarak kurmak daha doğru olabilir diye düşünüyorum
    • Teknolojiyi altyapının kalıcı olmadığını varsayarak inşa etmek doğru yaklaşım, ayrıca URL kısaltma hizmetlerini altyapı gibi kullanmaktan da kaçınmak gerekir diye düşünüyorum
    • URN (Uniform Resource Name), bir kaynağa konumdan bağımsız bir kimlik vermek için tasarlanmış bir sistemdi, ama yaygınlaşamadı, bunun yerine URL kısaltma hizmetleri bu fikri tam başaramadan benzer bir şey denemiş oldu URN Vikipedi açıklaması
    • Alan adlarının sahipleri sık sık değişiyor, kalıcı göründüğünü düşündüğünüz URL'ler bile zamanla kötü amaçlı oltalama bağlantılarına dönüşebilir
    • URL ağ üzerindeki bir kaynağın yalnızca konumunu tanımlar, kaynağın kendisini tanımlamaz, bu yüzden kalıcı ya da benzersiz olmak zorunda değildir, adı da bu yüzden 'Uniform Resource Locator', bu sorun fark edildiği için 1997'de Digital Object Identifier icat edildi
  • Bağlantı kısaltma hizmetlerini veritabanı gibi kötüye kullanıp, sonra değerli bağlantıları internetin dört bir yanından yeniden toplamak zorunda kalmakta şiirsel bir taraf var
    • URL kısaltmanın asıl amacı uzun URL'leri kısaltmaktı, asıl sorun bence kısa URL'lerle spam, dolandırıcılık ve yasa dışı siteleri gizlemek için alan adlarını kötüye kullanan insanlar
    • Onlar da görünüşe göre kısaltma hizmetini sadece URL'leri sıkıştırmak için kullandı, aslında URL'lerinin kendisi derleyici durumunu bir 'veritabanı' gibi taşıyordu
  • https://killedbygoogle.com/, Google Go Links (2010~2021), yaklaşık 11 yıl çalıştıktan sonra 4 yıl önce kapatılan Google'ın URL kısaltma hizmetiydi, Google Workspace müşterileri özel alan adlarını da kullanabiliyordu
    • Hizmetin yeni kısa URL üretmeyi durdurması ("minting new ones") bence o kadar ciddi bir sorun değil, önceden oluşturulmuş URL'leri de kapatmaları çok daha haksız, özellikle de Google'ın içeride bazı uygulamalarda bunu hâlâ kullanmaya devam ettiği düşünülürse
  • 'Bu yazı bir insan tarafından yazıldı, ama bağlantı önerileri ve dilbilgisi kontrolü LLM tarafından yapıldı' ifadesi ikinci dikkat çeken şeydi, sanki yeni bir trendin başlangıcını görüyormuşum gibi geldi
    • İnsanların böyle bir bilgilendirme notu ekleme ihtiyacı hissediyor olması ilginç
    • Ben böyle bir notun gerekli olduğunu hiç düşünmüyorum, içerik kendi kendini kanıtlıyorsa bu yeterlidir, eğer içerik kalitesizse bunun yapay zeka üretimi ya da insan üretimi olması fark etmez, böyle notlar isteyenler muhtemelen içeriği kendileri değerlendiremedikleri için yapay zeka üretimi içeriği düşük kalite sayan bir tür vekil yargı aracına dönüştürüyor
  • Google'ın salt okunur sürümü bile kapatmak istemesi şaşırtıcı, yalnızca özel bağlantı yönlendirmesini açık tutmanın hukuki bir risk doğurmasından çekiniyor olabilirler mi diye merak ediyorum
    • İçeride tam durumun ne olduğunu bilmiyorum ama çalışan hizmet eski ya da güvenlik açığı olan kütüphanelere veya çalışma zamanlarına bağlı olduğu için kapatmak istiyor olabilirler, aslında ufak bir maliyet bile olsa sonunda tasarruf için hizmet kapatmayı seçiyorlar ve şirketin iyi niyeti ya da geçmişte verdiği sözler umurlarında değilmiş gibi bir izlenim veriyor
  • Bir Google çalışanından veritabanından godbolt.org'a yönlenen kısa URL'leri çekmesini istemenin hiçbir yolu yok mu diye merak ediyorum
  • Açık konuşmak gerekirse, yeterince iyi fonlanmış bir vakıf devreye girmediği sürece Compiler Explorer ve godbolt.org da bir gün sonsuza kadar yaşamayacak, belki bir gün tüm bilgi devasa parametrelere sahip büyük bir modelin içine soyutlanıp doldurulacak
    • Şimdiye kadar oldukça iyi yönettik, bu hafta 13. yılımız ve tüm sponsorlar desteği kesse bile biraz daha 1 yıldan fazla yetecek birikmiş paramız var, son zamanlarda bir vakıf kurma fikrini de düşünüyoruz, aslında kırılgan nokta finansman eksikliği değil, tek hata noktası olan kişinin ben olmam
    • Doğru, artık Compiler Explorer bağlantılarının bozulacağı an gerçekten Compiler Explorer'ın kendisinin yok olduğu an olur, o zamana kadar bağlantılar yaşayacaktır, özellikle hata raporlarında bıraktığınız Compiler Explorer bağlantılarının çok değerli olduğunu düşünüyorum, ben de bu tür bağlantılarla birlikte kodu doğrudan rapora ekliyor ve hangi derleyiciyle hangi sürümü kullandığımı belirtiyorum, Compiler Explorer'ın yakında yok olacağını sanmıyorum ama hata raporunu bu şekilde kendi kendine yeterli hale getirmek beklenmedik bir kaybolmaya karşı koruma sağlıyor
    • no-hiding teoremine göre bilginin sonsuza dek yaşadığına dair şakayı hatırladım
  • Alan adını ayakta tutmanın da bir maliyeti var, URL'lerin nasıl sonsuza dek yaşayabileceğini göremiyorum, belki de URL'lerin yok olması başlı başına olumlu bir şeydir, insanlık yalnızca değerli bilgiyi özellikle koruyor, geri kalanı ise doğal olarak tarihin içine karışıyor
    • Ama tarihçiler böyle 'çöp' verilerden daha da fazlasını ister, çünkü ancak böylece dönemin gerçek yaşamını ve bağlamını daha iyi anlayabilirler, eğer zaman makinesiyle bin yıl sonrasına gidebilseydim, dijital medyanın yok olmasıyla bilginin büyük bölümünün kaybolduğu bu döneme tarihçilerin nasıl bakacağını merak ederdim
    • Ben de URL'lerin yok olmasının iyi yanları olabileceği görüşüne katılıyorum, bununla ilgili yazdığım bir metin var İnternetin uçuculuğu üzerine