Makine öğrenmesinde model eğitmek, çoğu zaman sisli ve çok boyutlu bir vadide en alçak noktayı aramaya benzer. Bu vadinin yüksekliği kayıp fonksiyonu ile ölçülür: Modelin tahminleri hedeflerden ne kadar uzaksa rakım o kadar artar. Gradyan inişi (Gradient Descent), hangi yöne yürünürse kaybın en hızlı azalacağını hesaplayıp modeli adım adım daha iyi parametrelere taşıyan temel optimizasyon algoritmasıdır.

Devamı...
Bir sinir ağı ilk çalıştığında genellikle pek parlak değildir: kediyi köpek, 7’yi 1, hatta kahveyi çorba sanabilir. Onu zamanla iyileştiren mekanizma geri yayılımdır (backpropagation). Bu algoritma, ağın ürettiği hatayı çıkış katmanından girişe doğru dağıtır; her ağırlığın hataya ne kadar katkı yaptığını zincir kuralıyla hesaplar ve ağırlıkları doğru yönde günceller.
Devamı...

Klasik dosya arama araçları dosya adına ve tam anahtar kelime eşleşmesine bağımlıdır. Oysa toplantı notları diye aradığınızda adı 2025-03-14_musteri_gorusmesi.docx olan belgeyi bulmak istersiniz. Bu projede sabit diskteki dosyaları tarayan, metinlerini çıkaran, içeriklerinden otomatik etiket üreten ve internet bağlantısı olmadan anlamsal arama yapan yerel bir masaüstü arama motoru tasarlayacağız. Hedefimiz, diskinizi yalnızca dosyaların durduğu bir depo olmaktan çıkarıp bağlamı anlayan kişisel bir bilgi tabanına dönüştürmek.
Devamı...
Derin öğrenme, yapay zekânın veriye “hangi özelliğe bakması gerektiğini” tek tek öğretmek yerine bunu katmanlar aracılığıyla öğrenmesini sağlayan yaklaşımdır. Temel fikir basittir: Geleneksel sinir ağlarına çok sayıda gizli katman eklenir; böylece model, ham ve yüksek boyutlu verilerden giderek daha soyut temsiller çıkarabilir. Bir görüntüde önce kenarları, sonra şekilleri, en sonunda da “bu bir kedi” fikrini yakalaması tam olarak bu katmanlı maceradır.
Devamı...
Rastgele nota seçmek kolaydır; kulağa müzik gibi gelmesini sağlamak ise bambaşka bir problemdir. Bu projede Markov zincirini, tonal müzikteki akor ilişkileriyle birleştirerek sürekli yeni piyano melodileri üreteceğiz. Sistem, yalnızca bir sonraki notayı değil, bulunduğu tonal merkezi ve bu merkezin çember üzerindeki komşularını da dikkate alacak. Sonuç: zar atan bir robot değil, küçük ama şaşırtıcı derecede terbiyeli bir besteci.
Devamı...

Bir kameraya bakıp ekranda gözlüğü, şapkayı veya komik bir bıyığı yüzünüze kusursuzca oturtmak sihir gibi görünür. Aslında bu etki; yüz tespiti, yüz işaret noktaları (landmark), geometrik dönüşümler ve alfa harmanlama işlemlerinin hızlı bir orkestrasyonudur. Bu projede Python, OpenCV ve MediaPipe kullanarak kameradaki yüzü izleyen, üzerine gerçek zamanlı sanal aksesuar yerleştiren bir artırılmış gerçeklik filtresinin mantığını kuracağız.
Devamı...

İnsan beyninin yaklaşık 86 milyar nörondan oluşan karmaşık yapısı, yapay zekânın en güçlü ilham kaynaklarından biridir. Yapay Sinir Ağları (Artificial Neural Networks, ANN), beynin birebir kopyası değildir; ancak nöronların bilgiyi alma, işleme ve iletme fikrini matematiksel bir çerçeveye taşır. Bu yaklaşımın en temel yapı taşı olan perceptron, sayısal girdilerden bir karar üretmeyi öğrenebilen dijital bir algılayıcıdır.
Devamı...

İnternetin modem sesleriyle bağlandığı günlere küçük bir selam vermek istiyorsanız, konsol tabanlı bir BBS terminal istemcisi harika bir projedir. Hedefimiz; seri port veya TCP üzerinden bir BBS’e bağlanmak, ANSI kaçış dizileriyle çizilen renkli ekranları doğru göstermek ve ZMODEM sayesinde dosya indirip gönderebilmektir. Bu proje yalnızca nostaljik değildir: akış kontrolü, terminal emülasyonu, ikili protokoller ve olay tabanlı G/Ç gibi bugün de değerli olan kavramları aynı potada buluşturur.
Devamı...
Yapay sinir ağları ilk bakışta katman katman matris çarpımı yapan hesap makineleri gibi görünür. Fakat bu yapı tek başına karmaşık karar sınırları öğrenemez: Ne kadar çok doğrusal katman eklenirse eklensin, sonuç hâlâ doğrusal bir dönüşümdür. Aktivasyon fonksiyonları tam bu noktada devreye girer; nöronların çıktısına kıvrım, eşik ve seçicilik katarak ağın görüntü tanıma, dil işleme veya tahmin gibi zor problemleri çözmesini sağlar.
Devamı...
Mandelbrot kümesi, basit bir denklemin ekranda bitmek bilmeyen kıvrımlar, spiraller ve minyatür evrenler üretmesinin en güzel kanıtıdır. Bu projede hesaplamayı JavaScript işlemcisine bırakmak yerine WebGL ve GLSL gölgelendiricilerine taşıyarak akıcı bir sonsuz yakınlaştırma deneyimi kuracağız. Fare tekerleğiyle yaklaşacak, sürükleyerek gezecek ve her pikselin kendi matematik macerasını ekran kartında yaşamasını sağlayacağız.
Devamı...
Bir terminal penceresinin siyah ya da koyu renkli zemini, yanıp sönen imleci ve birkaç satır metni ilk bakışta soğuk görünebilir. Buna rağmen pek çok geliştirici, sistem yöneticisi ve meraklı kullanıcı için terminal yalnızca bir araç değildir: düzen, odak ve hatta küçük bir sığınaktır. Bunun nedeni nostalji kadar, minimal arayüzlerin zihnimizde yarattığı bilişsel ekonomi ve kontrol duygusudur.
Devamı...

Linux dünyasında systemd tartışması, ilk bakışta önyükleme süresini, servis yönetimini ve günlük kayıtlarını ilgilendiren teknik bir ayrıntı gibi görünür. Ancak konu hızla “Unix felsefesi mi, entegre platform mu?” sorusuna; oradan da özgürlük, kontrol, gelenek ve topluluk kimliği üzerine bir mücadeleye dönüşmüştür. Bir init sisteminin neden bu kadar hararetli tartışıldığını anlamak için yalnızca kodun ne yaptığına değil, toplulukların teknolojiye yüklediği anlama da bakmak gerekir.
Devamı...
Git’i yalnızca git add ve git commit komutlarından ibaret görmek kolaydır; fakat perde arkasında Git, dosyaları ve geçmişi içerik adreslemeli küçük nesneler olarak saklar. Bu projede Python ile basit bir Git klonu yazacak, bir dosyadan blob, dosya listesinden tree ve geçmiş kaydından commit üreteceğiz. Amaç Git komutlarını kopyalamak değil; Git’in neden hızlı, güvenilir ve tekrar eden içeriklerde verimli olduğunu somut olarak anlamaktır.
Devamı...
Bir shell betiği bazen yalnızca üç satırdır: bir dosyayı bulur, dönüştürür ve sonucu kaydeder. Buna rağmen iyi yazılmış bir betik, iyi kurulmuş kısa bir şiir gibi hissedebilir. Her kelime iş yapar, her boşluk okunabilirliğe katkı sunar ve gereksiz hiçbir hareket yoktur. Shell script zanaatı; komutları art arda dizmekten çok, belirsizliği azaltma, niyeti görünür kılma ve gelecekteki kullanıcıya saygı duyma pratiğidir.
Devamı...
Root yetkisi teknik olarak bir erişim seviyesi, psikolojik olarak ise kararların sonuçlarını doğrudan üretme gücüdür. Bir dosyayı silmek, servisi durdurmak veya güvenlik politikasını değiştirmek için onay beklemeyen kişi, zamanla sistemi yalnızca yönetilen bir yapı değil, kendi iradesinin uzantısı gibi algılayabilir. Bu algı verimliliği artırırken dikkat, sorumluluk ve risk değerlendirmesi üzerinde beklenmedik etkiler yaratır.

Devamı...

Bir uzman sistem, belirli bir alandaki bilgileri kurallar hâlinde saklar ve bu bilgilerden yeni sonuçlar üretir. Bu projede Python’ın nesne yönelimli yapısını bilgi temsili için, fonksiyonel yaklaşımını ise sorgu sonuçlarını akış hâlinde üretmek için birleştiriyoruz. Ortaya çıkan yapı tam bir Prolog yorumlayıcısı değildir; ancak ebeveyn(ali, ayse) gibi olgular ve buyukebeveyn(X, Z) :- ebeveyn(X, Y), ebeveyn(Y, Z) benzeri kurallarla mantıksal çıkarım yapabilen, Python içine gömülü küçük ama öğretici bir motor olacaktır.
Devamı...
Her yıl teknoloji forumlarında, sosyal medyada ve yorum bölümlerinde aynı cümle yeniden doğar: “Bu yıl masaüstünde Linux’un yılı olacak.” Bazen yeni bir dağıtım, bazen Steam Deck, bazen Windows’un tartışmalı bir kararı bu kehaneti tetikler. Ancak Linux masaüstü pazar payı artarken bile neden bu ifade sürekli geleceğe ertelenir? Çünkü bu cümle yalnızca ölçülebilir bir pazar tahmini değil; özgür yazılım ideallerinin, teknik hayranlığın ve daha iyi bir bilgisayar deneyimi arzusunun kültürel sloganıdır.
Devamı...

Bir bilgisayar sustuğunda bile geçmişi konuşmaya devam eder: log dosyaları, sistemin tuttuğu olay günlüğüdür. Başarısız bir SSH denemesi, gece yarısı yeniden başlayan bir servis, dolan disk ya da çöken bir uygulama; hepsi doğru katmanda iz bırakır. Bu nedenle /var/log, yalnızca hata ayıklama klasörü değil, dijital arkeoloğun kazı alanıdır. Amaç tek satırdaki hatayı bulmak değil; zaman, süreç ve neden-sonuç bağlamını birleştirerek sistemin hikâyesini yeniden kurmaktır.
Devamı...
Linux terminalinde bir aygıtla konuşmak, bir günlük kaydını izlemek ve bir yapılandırmayı değiştirmek çoğu zaman aynı tanıdık araçlarla yapılır: cat, echo, grep, read, write. Bunun arkasındaki güçlü fikir, Unix dünyasının meşhur ilkesi olan “her şey bir dosyadır” yaklaşımıdır. Elbette bu ifade teknik olarak mutlak değildir; süreçler, soketler ve aygıtlar farklı çekirdek nesneleridir. Ancak kullanıcı alanında bunların önemli bir bölümü dosya benzeri arayüzlerle temsil edilir. Bu temsil tercihi, yalnızca mühendislik zarafeti değil, bilişsel ekonominin de başarılı bir örneğidir.

Devamı...
Linux dünyasında minimalizm, yalnızca daha az RAM tüketmek veya eski bir dizüstünü hızlandırmak anlamına gelmez. Bazı kullanıcılar masaüstü ortamını GNOME ya da KDE’den i3’e, i3’ten dwm’ye, oradan da doğrudan TTY terminaline taşır. Hatta pencere yöneticisini tamamen kaldırır. Bu ilk bakışta “neden kullanılabilir bir arayüzden vazgeçilsin?” sorusunu doğurur. Cevap performanstan daha geniştir: dikkat ekonomisine direnmek, araçlar üzerinde kontrol kurmak ve dijital hayatı bilinçli biçimde sadeleştirmek.
Devamı...