Fizik Motoru Temelleri: Yerçekimi ve Momentum Oyuna Nasıl His Katar?

Bir karakterin zıpladığında süzülmesi, bir sandığın darbeyle kayması veya yarış arabasının virajda ağırlığını hissettirmesi yalnızca güzel animasyonlarla açıklanamaz. Oyuncunun “Bu nesne gerçekten ağır!” demesini sağlayan görünmez kahraman, fizik motorudur. Ancak iyi oyun fiziği her zaman gerçek dünyanın birebir kopyası değildir; çoğu zaman gerçekliğin kontrollü biçimde abartılmış, hızlandırılmış ve eğlenceli hâlidir.

Devamı...

ECS Mimarisi: Oyun Nesnelerini Kalıtım Değil Kompozisyonla Kurmak

ecs-mimarisi-oyun-36

Bir oyunda oyuncu, düşman, uçan düşman, zehirli uçan düşman derken sınıf ağacınız aile albümüne dönebilir. Entity-Component-System (ECS), bu karmaşaya farklı bir soru sorarak yaklaşır: “Bu nesne nedir?” yerine “Hangi verilere sahip ve hangi davranışlara katılıyor?” Böylece oyun nesneleri derin kalıtım zincirleriyle değil, küçük parçaların bir araya getirilmesiyle oluşturulur.

Devamı...

Difüzyon Modelleri: Gürültüden Görsele Tersine Yolculuk

difuzyon-modelleri-gurultuden-55

Bir televizyonun karıncalı ekranına uzun süre bakıp içinden bir kedi resmi çıkmasını beklemek pek mantıklı görünmeyebilir. Difüzyon modelleri ise tam olarak bunu yapar: Rastgele gürültüyle başlayan veriyi, öğrendikleri örüntüler sayesinde adım adım anlamlı bir görsele dönüştürür. Stable Diffusion ve benzeri üretken yapay zekâ sistemlerinin arkasındaki bu yaklaşım, kontrollü bir bozma ve onarma sürecine dayanır.

Devamı...

Debugger Öğretmek Öğrencinin Kodla İlgili Zihin Modelini Nasıl Değiştirir?

Programlamaya yeni başlayan bir öğrenci için kod çoğu zaman gizemli bir kutudur: Metin yazılır, “Çalıştır” düğmesine basılır ve ekranda ya doğru sonuç ya da kırmızı bir hata belirir. Debugger kullanmayı öğrenmek bu kutunun kapağını açar. Öğrenci yalnızca hatayı bulmayı değil, programın zaman içinde nasıl ilerlediğini, değişkenlerin nasıl dönüştüğünü ve bilgisayarın kodu hangi sırayla yorumladığını görmeye başlar.

Devamı...

Çarpışma Tespiti: İki Nesnenin Değdiğini Anlamanın Matematiği

carpisma-tespiti-iki-81

Bir oyun karakteri duvarın içinden geçiyorsa, top zemine değmeden zıplıyorsa veya iki uzay gemisi birbirine çarpmasına rağmen yollarına devam ediyorsa suçlu çoğunlukla çarpışma tespitidir. Bilgisayarlar nesneleri gerçekten “görmez”; koordinatlar ve geometrik şekiller üzerinde yapılan matematiksel testlerle iki nesnenin temas edip etmediğine karar verir.

Devamı...

Yan Kanal Saldırıları: Bir Şifreyi Zamanlamadan Tahmin Etmek

Bir parola denetimi yalnızca “doğru” veya “yanlış” cevabı veriyor gibi görünebilir. Fakat işlem süresi de istemeden bilgi taşıyorsa saldırgan, kapının anahtarını görmeden kilidin sesini dinleyebilir. Zamanlama saldırıları, yazılımın ne söylediğinden çok cevabı ne kadar sürede verdiğini inceleyen yan kanal saldırılarıdır.

Devamı...

Write-Ahead Log: Veritabanları Çöküşten Nasıl Sağ Çıkar?

Bir veritabanı sunucusu tam sipariş kaydedilirken kapanırsa ne olur? Para hesaptan düşmüş, fakat sipariş oluşmamış olabilir mi? Modern veritabanları bu korku filmini Write-Ahead Log (WAL) sayesinde mutlu sonla bitirir. WAL, değişiklikleri asıl veri dosyasına uygulamadan önce dayanıklı bir günlükte kaydederek sistemin çöküş sonrasında ne yaptığını hatırlamasını sağlar.

write-ahead-log-91

Devamı...

Veritabanı Sharding Stratejileri: Veriyi Yatayda Bölerek Ölçeklemek

Uygulamanız büyüdükçe tek bir veritabanı sunucusu; işlemci, bellek, disk ve bağlantı sınırlarına yaklaşır. Daha güçlü bir sunucuya geçmek dikey ölçekleme olarak adlandırılır, ancak bunun hem fiziksel hem de ekonomik bir tavanı vardır. Sharding, satırları birden fazla bağımsız veritabanına dağıtarak yatay ölçekleme sağlar. Kısacası dev bir dosya dolabını büyütmeye çalışmak yerine, belgeleri düzenli biçimde farklı dolaplara yerleştiririz.

Devamı...

Vektör Veritabanları: Anlamsal Aramanın Görünmez Motoru

vektor-veritabanlari-anlamsal-68

Klasik arama motorları kelimeleri eşleştirir; vektör veritabanları ise kelimelerin arkasındaki anlamı yakalamaya çalışır. Örneğin “uygun fiyatlı dizüstü bilgisayar” araması, metinde birebir “ucuz laptop” yazsa bile doğru sonucu bulabilir. Bu yeteneğin merkezinde embedding modelleri, benzerlik ölçümleri ve milyonlarca vektör arasında hızla komşu bulabilen özel indeksler bulunur.

Devamı...

TCP Tıkanıklık Kontrolü: Reno’dan BBR’a İnternet Trafiğinin Evrimi

tcp-tikaniklik-kontrolu-81

Bir TCP bağlantısı, verileri mümkün olduğunca hızlı göndermek ister; fakat ağın gerçek kapasitesini doğrudan bilemez. Fazla temkinli davranırsa bant genişliği boşa gider, fazla saldırgan davranırsa yönlendirici kuyrukları dolar ve paketler kaybolur. TCP tıkanıklık kontrolü algoritmaları, işte bu görünmez sınırı tahmin etmeye çalışan trafik polisleridir. Reno’dan BBR’a uzanan yolculuk ise kaybı izlemekten ağ modellemeye geçişin hikâyesidir.

Devamı...

Sütun Tabanlı Depolama Analitik Sorguları Nasıl Uçuruyor?

Bir milyar satış kaydının yalnızca toplam gelirini hesaplamak istediğinizi düşünün. Satır tabanlı bir sistem her kaydın ürün, müşteri, adres ve açıklama gibi ilgisiz alanlarını da okuyabilir. Sütun tabanlı depolama ise doğrudan gelir sütununa gider. Analitik sorguların göz açıp kapayıncaya kadar bitmesinin temelinde bu seçicilik yatar.

sutun-tabanli-depolama-60

Devamı...

Sorgu Optimizasyonu ve Execution Plan Okuma Sanatı

Bir SQL sorgusunun çalışması, garsona sipariş vermeye benzer: ne istediğinizi söylersiniz, fakat mutfakta hangi adımların izleneceğine şef karar verir. Veritabanındaki bu şef query optimizer, hazırladığı tarif ise execution plan olarak adlandırılır. Performans sorunlarını çözmek için yalnızca SQL yazmak değil, bu tarifi okuyup şefin neden o yolu seçtiğini anlamak gerekir.

Devamı...

RAG Mimarisi: Dil Modeline Güvenilir Kaynaklar Vermek

rag-mimarisi-dil-85

Büyük dil modelleri etkileyici yanıtlar üretir; ancak eğitim verileri güncel olmayabilir, kurumsal belgeleri bilmeyebilir ve bazen son derece özgüvenli biçimde yanlış bilgi verebilir. RAG (Retrieval Augmented Generation), modeli yeniden eğitmeden ona ilgili kaynakları sağlayarak bu sorunları azaltan bir mimaridir. Kısacası RAG, sınava yalnızca hafızasıyla giren bir öğrenciye açık kitap hakkı vermeye benzer.

Devamı...

QUIC Protokolü: HTTP/3, TCP’yi Nasıl Geride Bırakmayı Planlıyor?

Web’in hız sınırlarını yalnızca daha güçlü sunucular veya küçültülmüş JavaScript dosyaları belirlemiyor. Tarayıcı ile sunucu arasındaki bağlantının nasıl kurulduğu da performansın başrol oyuncularından biri. QUIC, onlarca yıldır internetin omurgasında çalışan TCP’nin bazı kronik sorunlarını aşmak için UDP üzerinde geliştirilen modern bir taşıma protokolü; HTTP/3 ise onun web dünyasındaki en önemli yolcusu.

Devamı...

OAuth 2.0 ve JWT’nin İç İşleyişi: Oturum Açmak Aslında Ne Demek?

Bir uygulamada “Google ile giriş yap” düğmesine bastığımızda birkaç saniye içinde hesabımıza ulaşırız. Perdenin arkasındaysa yönlendirmeler, izinler, kriptografik imzalar ve süreli anahtarlar çalışır. Üstelik OAuth 2.0 doğrudan bir oturum açma protokolü değildir! Gelin kimlik doğrulama ile yetkilendirme arasındaki sis perdesini kaldıralım.

Devamı...

MVCC Mantığı: Veritabanında Zaman Yolculuğu

mvcc-mantigi-veritabaninda-11

Bir veritabanında aynı anda yüzlerce kullanıcı okuma ve yazma işlemi yaptığında işler kolayca trafik kavgasına dönüşebilir. MVCC, yani Çoklu Sürüm Eşzamanlılık Kontrolü, bu trafiği herkesi tek şeride sokmadan yönetir. Temel fikir şaşırtıcı derecede eğlencelidir: Bir satır değiştirildiğinde eski hâlini hemen yok etmek yerine farklı sürümler saklanır. Böylece okuyucular geçmişteki tutarlı görüntüyü incelerken yazarlar yeni sürüm üzerinde çalışabilir.

Devamı...

Load Balancing Algoritmaları: Round Robin’den En Az Bağlantıya

Bir uygulama büyüdüğünde tek bir sunucu, gelen isteklerin ağırlığı altında terlemeye başlayabilir. Load balancer, bu noktada trafiği birden fazla sunucuya dağıtan akıllı bir trafik polisi gibi çalışır. Fakat bütün trafik polisleri aynı yöntemi kullanmaz: bazıları sırayla yönlendirir, bazıları sunucuların gücünü hesaba katar, bazılarıysa o anda en az meşgul olanı seçer.

Devamı...

Homomorfik Şifreleme: Veriyi Görmeden Hesaplama Sanatı

Bir bulut sunucusunun verilerinizi hiç görmeden maaş ortalaması hesapladığını, tıbbi kayıtlarınızı okumadan hastalık riski tahmin ettiğini düşünün. Kulağa sihir gibi gelse de homomorfik şifreleme tam olarak bunu hedefler: Veriler şifreli kalırken üzerlerinde matematiksel işlemler yapılabilir. Sunucu yalnızca anlamsız görünen şifreli değerlerle uğraşır; sonucu anlamlı hâle getirebilen tek taraf, gizli anahtarın sahibidir.

homomorfik-sifreleme-veriyi-91

Devamı...

Fuzzing ile Otomatik Zafiyet Keşfi: Yazılımı Rastgele Verilerle Sınamak

fuzzing-ile-otomatik-35

Bir uygulamanın beklenmedik girdiler karşısında nasıl davranacağını elle sınamak, samanlıkta iğne aramaya benzeyebilir. Fuzzing ise samanlığı otomatik olarak karıştırır: programa bozuk, sıra dışı veya rastgele girdiler gönderir; çökme, kilitlenme ve bellek ihlali gibi belirtileri yakalar. Böylece geliştiricilerin aklına gelmeyen uç durumlar, saldırganlardan önce keşfedilebilir.

Devamı...

Embedding Geometrisi: Kelimeler Vektör Uzayında Neden Yakınlaşır?

Bir dil modeli için “kedi”, tüylü bir canlıdan önce yüzlerce sayıdan oluşan bir listedir. Buna rağmen “kedi” ile “köpek” birbirine yakın, “kedi” ile “matkap” ise genellikle uzaktır. Bu durum sihir değil; kelimelerin kullanıldıkları bağlamlardan öğrenilen geometrik bir düzendir. Gelin, kelimelerin anlamlarını koordinatlara nasıl dönüştürdüğünü inceleyelim.

Devamı...