C ile Donanım İletişimi: Eski Disklerden Adaptörlere Sürücü Mantığı

Eski bir IDE disk, USB-SATA dönüştürücü ya da seri port adaptörü elinize geçtiğinde ilk soru genelde şudur: “Bunu işletim sistemiyle nasıl konuştururum?” C dili burada hâlâ sahnenin başrol oyuncusudur; çünkü donanıma yakın, bellek düzenini tahmin edilebilir kılan ve kesme, DMA, I/O portu gibi düşük seviye kavramları açıkça modelleyebilen bir araçtır.

Devamı...

SQL ile Mitolojik Soy Ağaçları: Tanrıları, Kahramanları ve Ejderhaları Modelle

Mitoloji, veritabanı tasarımcıları için adeta boss seviyesi bir problemdir: Zeus hem baba, hem eş, hem de bazen kuğu kılığına giren kaotik bir kayıt üreticisidir. İskandinavlarda Loki’nin aile ilişkileri türler arası sınırları zorlar; Türk destanlarında soy, kutsal kurt ya da göksel kökenlerle birleşir. Bu yüzden antik tanrılar ve destan karakterleri için bir SQL soy ağacı kurmak, sadece tablo açmak değil, belirsizlikleri, kültürel kaynakları ve çoklu ilişki tiplerini modellemektir.

Devamı...

Go ile Ters Proxy Yönetimi: Güvenli ve Hafif Ağ Geçitleri

Modern web sistemlerinde istemci ile servisler arasına akıllı bir kapı koymak çoğu zaman hayat kurtarır. Go ile yazılmış hafif bir ters proxy, gelen HTTP trafiğini uygun backend servisine yönlendirebilir, temel güvenlik kontrolleri yapabilir ve yükü birden fazla sunucuya dağıtabilir. Üstelik Go’nun standart kütüphanesindeki net/http ve httputil paketleri sayesinde bunu devasa framework’lere ihtiyaç duymadan kurabilirsiniz.

Devamı...

C++ ile Yapay Sinir Ağları Temelleri: Vektörleri Hızlandır, Modeli Uyandır

Yapay sinir ağları kulağa çoğu zaman Python kütüphanelerinin sihirli düğmeleri gibi gelir; fakat sahnenin arkasında olan şey oldukça “mekanik”tir: vektörler çarpılır, matrisler toplanır, türevler hesaplanır ve bellekten veri taşınır. C++ burada devreye girer; çünkü düşük seviyeli bellek kontrolü sayesinde yalnızca modeli değil, modelin öğrenirken yürüdüğü matematiksel yolu da optimize edebiliriz.

Devamı...

Python ile Olasılık Dağılımları: Yazı-Turadan Monty Hall’a Simülasyonlu İstatistik

Olasılık teorisi ilk bakışta zarlar, paralar ve renkli toplarla oynanan masum bir oyun gibi görünür; fakat arka planda belirsizliği ölçmeye yarayan güçlü bir matematik dili vardır. Python ise bu dili deney masasına yatırmak için harika bir laboratuvardır. Yazı-tura simülasyonlarıyla büyük sayılar yasasını gözlemleyebilir, koşullu olasılık paradokslarıyla sezgilerimizin nasıl tökezlediğini görebiliriz.

Devamı...

JavaScript ve NFC Etkileşimi: Web NFC ile Cebe Dokunan Uygulamalar

Telefonunuzu bir etikete yaklaştırıp kapıyı açmak, Wi-Fi bilgisini almak ya da bir ürünün bakım geçmişini okumak kulağa biraz sihir gibi gelir; ama aslında sahnede NFC ve JavaScript vardır. Modern Android tarayıcılarında Web NFC API sayesinde web uygulamaları, yakın alan iletişimi sensörleriyle veri okuyup yazabilir. Yani bazen bir buton, bazen de 3 cm mesafe bütün deneyimi değiştirir.

Devamı...

C Dilinin Minimalizmi ve İşletim Sistemleri: Belleğe Dokunan Kodun Büyüsü

C dili, modern bilişimin perde arkasındaki sessiz kahramanlardan biridir. Bugün web uygulamaları, yapay zekâ servisleri ve oyun motorları konuşulurken, tüm bu katmanların altında hâlâ donanıma yakın, sade ve tahmin edilebilir bir dil yatar. C’nin minimalizmi; az anahtar kelime, doğrudan bellek erişimi ve çalışma zamanında sihir yapmayan yapısıyla özellikle işletim sistemi çekirdekleri için idealdir.

Devamı...

Turing Testi ve Yapay Zekanın Psikolojisi: Kod Ne Zaman İnsan Gibi Konuşur?

Bir sohbet botu size doğru cevabı verdiğinde etkilenirsiniz; ama size duraksayarak, şaka yaparak, konuyu hafifçe yanlış anlayıp sonra toparlayarak cevap verdiğinde ona neredeyse kişilik atfedersiniz. Turing Testi tam da bu bulanık bölgede yaşar: Mesele yalnızca kodun mantıklı çıktı üretmesi değil, insan bilişini, dil alışkanlıklarını ve sohbetin sosyal ritmini ne kadar inandırıcı taklit edebildiğidir.

Devamı...

SQL ile Felsefi Metinlerde Veri Madenciliği

Felsefi metinler bazen bir veritabanı gibi davranır: kavramlar tablolar, alıntılar ilişkiler, kelimeler de satırlar gibidir. Platon’dan Kant’a, İbn Sînâ’dan Nietzsche’ye uzanan devasa bir külliyatı SQL ile sorguladığınızda yalnızca kaç kez akıl kelimesi geçtiğini değil, hangi kökten gelen kelimelerin hangi düşünürlerde birlikte yoğunlaştığını da görebilirsiniz.

Bu işin teorik temeli üç katmandan oluşur: ilişkisel model, dilsel ön işleme ve semantik yakınlık. İlişkisel modelde her metin; yazar, eser, bölüm, cümle ve token gibi parçalara ayrılır. Dilsel ön işlemede kelimeler küçük harfe çevrilir, noktalama temizlenir, kök veya lemma bulunur. Semantik yakınlıkta ise kelimelerin aynı bağlamlarda görünme sıklığı ölçülür. Basit fikir şudur: İki kavram benzer cümlelerde sık görünüyorsa anlam uzayında birbirine yakındır.

Devamı...

PHP ile Topluluk Odaklı Platformların Evrimi

Bir forum sitesine girdiğinizde gördüğünüz şey birkaç başlık, avatar ve cevap kutusundan ibaret gibi durur. Oysa arka planda PHP, HTTP isteğini yakalar, oturumu kontrol eder, veritabanından konuları çeker, izinleri hesaplar ve size dinamik bir HTML sayfası üretir. Topluluk odaklı platformların evrimi tam da burada başlar: statik sayfalardan, kullanıcı davranışına göre şekillenen yaşayan sistemlere geçiş.

Devamı...

JavaScript ile Tarayıcı Üzerinde Sosyolojik Deneyler

Tarayıcı, sadece butonlara tıkladığımız bir ekran değil; aynı zamanda küçük ölçekli davranış deneyleri yapabileceğimiz harika bir laboratuvardır. JavaScript sayesinde kullanıcıların seçimlerini, tepki sürelerini, dikkat kaymalarını ve karar örüntülerini analiz eden etkileşimli psikoloji ya da zeka testleri tasarlayabiliriz. Elbette burada amaç “insanı çözmek” değil; etik sınırlar içinde, anonim ve öğretici deneyimler üretmektir.

Devamı...

IDE'lerde Çoklu Dil Mimarisi: Tek Çalışma Alanında Backend, Betik ve Önyüz Senfonisi

Modern bir IDE artık sadece renkli parantez gösteren bir metin editörü değil; adeta küçük bir yazılım işletim sistemi. Aynı çalışma alanında TypeScript ile önyüz geliştirirken, Python betikleriyle otomasyon çalıştırabilir, Go ya da Java servislerini debug edebilir ve tüm bu parçaları tek bir proje akışı gibi yönetebilirsiniz. Çoklu dil mimarisi tam da burada devreye girer: IDE, farklı dillerin araçlarını ortak bir orkestrada buluşturur.

Devamı...

Go'nun Eşzamanlılık Mimarisi: Goroutine ile Hafif ve Hızlı Servisler

Go’da eşzamanlılık, “aynı anda çok iş yapıyormuş gibi” görünen kod yazmaktan daha fazlasıdır; dilin tasarım felsefesine gömülü bir üretkenlik süper gücüdür. Binlerce arka plan görevini, ağ isteğini, kuyruk işini veya zamanlayıcıyı klasik thread maliyetlerine boğulmadan yönetmek istiyorsanız, goroutine’ler tam olarak bu sahneye davul zurna ile girer.

Devamı...

Python ile Satranç Motoru Geliştirmek: Minimax ile Zeki Hamleler

Satranç motoru yazmak, kulağa “büyük ustaların laboratuvarı” gibi gelse de aslında algoritmik düşünceyi öğrenmek için harika bir oyun alanıdır. Python ile basit bir bot geliştirerek taşların değerini hesaplayabilir, olası hamleleri ağaç gibi düşünebilir ve minimax algoritmasıyla “ben oynarsam ne olur, rakip cevap verirse ne olur?” sorusunu kodla cevaplayabilirsiniz.

Devamı...

Python ile Görüntü İşleme: Piksellerle Dans Etmeye Hazır mısın?

Görüntü işleme, bilgisayara bir resmi sadece ‘görmeyi’ değil, onu anlamayı da öğretme sanatıdır. Python ise bu iş için adeta İsviçre çakısı gibidir: kolay sözdizimi, güçlü kütüphaneler ve bolca topluluk desteği. Bir fotoğrafı siyah-beyaza çevirmekten yüz tanımaya, belge taramadan otonom araçlara kadar pek çok alanda görüntü işleme kullanılır.

En basit haliyle bir görüntü, sayılardan oluşan bir matristir. Gri tonlamalı bir resimde her piksel 0 ile 255 arasında değer alır. 0 siyahı, 255 beyazı temsil eder. Renkli görüntülerde ise genellikle üç kanal bulunur: kırmızı, yeşil ve mavi. Yani bir piksel aslında şöyle düşünülebilir: $(R, G, B)$.

Devamı...

C++ ve Oyun Motorlarının Kalbi: İşaretçilerle Belleği Dizginlemek

Bir oyun motorunu devasa bir lunapark gibi düşünün: fizik simülasyonu hız trenidir, render sistemi ışıklı dönme dolaptır, yapay zekâ ise pamuk şeker kuyruğunda karar vermeye çalışan NPC’dir. Bu lunaparkın elektriği ise bellektir. C++ burada sahneye çıkar; çünkü işaretçiler, düşük seviyeli bellek kontrolü ve veri yerleşimi sayesinde üç boyutlu dünyaların milisaniyeler içinde hesaplanmasını sağlar.

Devamı...

C++ Sınıf Mirasları: Kodun Aile Ağacı

C++’ta sınıf mirası, bir sınıfın başka bir sınıftan özellik ve davranış devralmasını sağlayan güçlü bir nesne yönelimli programlama mekanizmasıdır. Kısaca: “Zaten yazdığım kodu neden tekrar yazayım?” sorusuna C++’ın verdiği cevaptır. Bir oyun düşün: tüm karakterlerin adı, canı ve hareket etme davranışı var; ama büyücü ayrıca büyü yapıyor, savaşçı kılıç sallıyor. İşte miras, bu ortak ve özel tarafları düzenli biçimde ayırmamıza yardım eder.

Devamı...