We’re open sourcing our privacy proxy CLI · Hannah Wang, Ben Yang
Gizliliği koruyan protokollerde hata ayıklamak zor. Oblivious HTTP (OHTTP) dört farklı taraf arasında birkaç adımdan oluşuyor; üstüne ikili HTTP kodlaması ve birden fazla taslak RFC'ye dağılmış detaylar ekleniyor. Cloudflare bu protokolleri saniyede milyonlarca istek ölçeğinde işletirken öğrendiklerini temiz bir komut satırı aracına sarmış ve açık kaynak yapmış: pvcli, Apache-2.0 lisansıyla.
Aracın gösterdiği şey basit ama etkili: eskiden dört tarafı ayrı ayrı kurup elle takip etmeni gerektiren tam bir OHTTP isteği, artık tek satırda çalışıyor — relay, gateway ve origin dahil.
Motivasyon bölümü de öğretici. Cloudflare'in gizlilik ürün ailesi büyüdükçe (Privacy Proxy, Privacy Gateway — Apple'ın Private Relay'ini ve Microsoft Edge'in Secure Network VPN'ini besleyen altyapılar) sorunu teşhis etmek de zorlaşmış. Yani araç bir pazarlama ürünü değil, kendi operasyonel acılarının çözümü.
Öne çıkanlar
- OHTTP'nin zorluğu tek bir karmaşık adım değil: dört taraf, ikili kodlama ve dağınık taslak spesifikasyonlar bir araya geliyor.
- Karmaşık bir protokolü benimsetmenin en etkili yolu, onu tek komutta denenebilir hâle getirmek.
- Aracın kaynağı gerçek operasyon deneyimi — saniyede milyonlarca istek.
Neden önemli?
Bir teknolojinin benimsenmesini belirleyen şey çoğu zaman teknolojinin kendisi değil, etrafındaki araçlardır. Hata ayıklanamayan bir sistem, ne kadar iyi tasarlanmış olursa olsun üretimde kullanılmaz. "Bu sistemde bir şey ters gittiğinde nasıl anlarım?" sorusu, tasarımın kendisi kadar tasarımın parçasıdır.
Pratikte
Bu yazıdaki alışkanlığı kendi projelerine taşı: kurduğun her karmaşık akış için küçük bir teşhis aracı yaz. Bir RAG sistemi için bir CLI düşün: bir sorgu ver, hangi belgelerin getirildiğini, similarity skorlarını ve modele giden nihai prompt’u bassın. Python’da argparse ile yarım saatlik bir iş ama ‘neden bu cevabı verdi?’ sorusunu dakikalar yerine saniyeler içinde cevaplatır. Mülakatta göstereceğin şey de bu tür araçlardır: sistemi yazmak kadar sistemi anlaşılır kılmak da mühendislik.
Sözlük
- Oblivious HTTP (OHTTP)
- İsteği gönderen ile hedef sunucu arasına aracılar koyarak, hiçbir tarafın hem kimliği hem içeriği görememesini sağlayan protokol.
- relay / gateway
- OHTTP'de aracılar: relay kimin istediğini bilir ama içeriği göremez; geçit içeriği görür ama kimin istediğini bilmez.
- RFC draft
- Henüz standart hâline gelmemiş, üzerinde çalışılan internet protokol belgesi.
How AI is expanding what people do at work
OpenAI'ın ekonomi araştırması 800.000'den fazla ABD kullanıcı mesajını incelemiş. Bulgu: işle ilgili mesajların %16,8'i ve mesleğe özgü mesajların %43,5'i başka bir meslekle ilişkilendirilen görevlerle ilgili.
Buna task crossover (task crossover) diyorlar: tarihsel olarak bir mesleğe ait olan işin, başka bir meslekten insanın AI kullanımında görünmesi. Küçük işletme sahibi metin yazıyor, sözleşme inceliyor, temel finansal analiz yapıyor. Satışçı, eskiden analiste gidecek bir veri setini kendisi keşfediyor. Pazarlamacı, geliştiriciyi beklemeden web sitesindeki sorunu çözüyor.
Yazının kendi vurgusu şu: AI ile ilgili çoğu çalışma sabit bir görev listesiyle başlayıp "model bunu yapabilir mi?" diye soruyor. Bu araştırma farklı bir şeye işaret ediyor — AI kimin hangi görevi üstlendiğini de değiştiriyor.
Öne çıkanlar
- Değişim "işler yok oluyor" değil, iş sınırları bulanıklaşıyor biçiminde görünüyor.
- Bu, yeni mezun bir mühendis için hem fırsat hem risk: senin işine başkaları girebilir, sen de başkalarının işine girebilirsin.
Pratikte
Kariyer açısından buradan çıkan ders net: bir aracı kullanabilmek artık ayırt edici değil; kimin ne yapabildiği hızla eşitleniyor. Ayırt edici olan derinlik. Herkes bir LLM’e sorgu yazabiliyorsa değerin bir sistemin neden yavaşladığını bulabilmen, bir veritabanı index’inin nasıl seçileceğini bilmen, bir distributed system’de hangi consistency garantisinin gerektiğini kestirebilmen olacak. Bu gazeteyi okumanın sebebi de tam olarak bu: yüzeyde kalmamak.
Sözlük · 1 terim
- task crossover
- Bir mesleğe ait sayılan işin, başka meslekten kişiler tarafından yapılmaya başlanması.
Bugün az yayın çıktı. Bu yazılar daha eski tarihli ama hâlâ öğretici;
her birinin gerçek yayın tarihi başlığın üstünde yazıyor.
How Uber Executed A JUnit Migration at Massive Scale
Uber'in Java monorepo'sunda test paketinin ana çerçevesi JUnit 4'tü. Çalışıyordu, ama sekiz yıl önce çıkan JUnit 5'in yeteneklerini kullanmalarını engelliyordu — ve JUnit 4'ün aktif geliştirmesi 2021'de durmuştu, yani hata düzeltmeleri ve güvenlik yamaları da gelmiyordu.
Ölçek şu: 15 milyon satır kodda 600.000'den fazla JUnit 4 testi. Elle göç, geliştiricilerin Jupiter API'sini öğrenmesini ve özel test paketlerini taşımasını gerektirecekti — devasa bir mühendislik saati. Üstüne Uber Bazel kullanıyor ve Bazel'ın yerel JUnit 5 desteği yoktu. Yani problem hem teknik hem kültüreldi: geliştiricileri ikna etmek.
Sonuçlar: Bazel'da JUnit 5 desteği açılmış ve tüm test modülleri JUnit Platform'a alınmış (Vintage ve Jupiter motorlarıyla JUnit 4 ve 5 birlikte destekleniyor). 4 ay içinde 75.000'den fazla test sınıfı taşınmış, 1,25 milyondan fazla satır değiştirilmiş, 5.000'den fazla otomatik değişiklik seti üretilmiş.
Öne çıkanlar
- Anahtar tasarım kararı: iki çerçeveyi aynı anda çalıştırabilmek (Vintage + Jupiter). Böylece göç tek seferde değil aşamalı yapılabiliyor.
- Göç merkezîleştirilmiş — her ekibe "kendi testlerinizi taşıyın" demek yerine tek bir ekip otomatik dönüşüm yazmış.
- Kültürel boyut teknik boyut kadar açıkça ele alınmış.
Pratikte
Bu, Java tarafında doğrudan uygulayabileceğin bir yazı. Kendi projelerinde bile aynı deseni kullan: bir kütüphane sürümü yükseltirken "hepsini bir seferde değiştir" yerine köprü katmanı kurup aşamalı geç. Ayrıca OpenRewrite gibi araçları öğren — Java'da otomatik kod dönüşümü yapan, tam da Uber'in yaptığı işi yapan araçlardır. Mülakatta "600.000 testi nasıl taşırsın?" sorusuna "elle taşımam, dönüşüm kuralı yazar ve iki çerçeveyi bir süre birlikte çalıştırırım" diyebilmek çok güçlü bir cevaptır.
Sözlük · 3 terim
- monorepo
- Bir şirketin tüm projelerini tek bir sürüm kontrol deposunda tutması.
- Bazel
- Google kaynaklı, büyük monorepo'lar için tasarlanmış derleme ve test aracı.
- codemod
- Kaynak kodu programatik olarak analiz edip toplu şekilde değiştiren betik ya da araç.