Veri Bilimi Okulu

FastAPI CORS

Loading

Eğer bir web uygulaması geliştirirken tarayıcı konsolunda şu hatayı gördüysen, muhtemelen tarayıcı CORS ayarlarına takıldın demektir. Geliştirici olarak bu sorunu nasıl çözersin? Bu yazıda CORS’un ne olduğunu, neden var olduğunu ve FastAPI’de nasıl çözeceğimizi birlikte öğreneceğiz. İsmi Çekerek fırlatma rampasından Mars’a gönderdiğimiz uzay robotu adı gibi gelebilir ama merak etme, düşündüğün kadar karmaşık değil! CORS […]

GitHub’ı Docker Image Deposu Olarak Kullanma: GitHub Container Registry

Loading

Docker imajlarınızı nerede saklıyorsunuz? Docker Hub mu, AWS ECR mi, yoksa başka bir yerde mi? Peki ya size GitHub’ın kendi konteyner kayıt defteri (Container Registry) sunduğunu söylesem? Evet, doğru duydunuz! GitHub Container Registry (GHCR), Docker imajlarınızı doğrudan GitHub ekosisteminde saklamanıza ve yönetmenize olanak tanıyan güçlü bir araç. 💰 Peki Bu Ücretsiz mi? İşin en güzel […]

Apache Airflow 3 ile DAG Dosyalarını GitHub’dan Okuma (Airflow Github)

Loading

Selamlar! Nihayetinde Airflow DAG dosyalarını GitHub gibi uzak repolardan adam akıllı almamızı sağlayan özellik Apache Airflow 3 ile geldi: GitDagBundle. Daha öncede Airflow Github entegrasyonu gibi DAG dosyalarını dışarıdan bir yerden alıp getirmek için göbeğimiz çatlıyordu. GitSync gibi çözümler kullanıyorduk. Artık Git uzak repoları ve Amazon S3’ten alıp getirmek daha kolay. Bu yazıda GitHub örneği […]

Apache Airflow 3 Hakkında Mutlaka Bilmeniz Gereken 10 Kritik Değişiklik

Loading

Apache Airflow 2’den 3’e Geçiş Rehberi | Son güncelleme: Aralık 2025 Merhaba değerli veri mühendisleri (data engineers)! Bugün sizlerle veri dünyasındaki en heyecan verici gelişmelerden birini konuşacağız: Apache Airflow 3. Nisan 2025’te yayınlanan bu sürüm (release), Airflow tarihindeki en büyük güncelleme olarak kayıtlara geçti [1]. 2020’den bu yana ilk büyük sürüm (major release) olan Airflow […]

LangChain Kısa ve Uzun Süreli Bellek (LangChain Short and Long Term Memory)

Loading

Yapay zeka ajanlarıyla çalışırken en sık karşılaşılan sorunlardan biri “hafıza eksikliği” problemidir. Bir sohbet robotuyla (chatbot) konuştuğunuzu düşünün: ona adınızı söylüyorsunuz, birkaç mesaj sonra “Adın neydi?” diye sorduğunuzda ise hiçbir fikri olmuyor. Bu sorunu ChatGPT, Gemini, Claude ile pek yaşamamışsınızdır. Peki o zaman bunun neden tartışıyoruz. Şunun için; bunlar milyar dolarlık bebekler ve sizin müşterileriniz […]

Agentic AI Framework’leri

Loading

Selam arkadaşlar! Yapay zeka agent’ları (ajanlar) konusu 2025’te gerçekten patladı. Gartner’ın Ocak 2025 araştırmasına göre organizasyonların %61’i Agentic AI (ajansal yapay zeka) geliştirmeye başlamış durumda [1]. Agentic AI nedir? “Özerk karar verebilen, plan yapabilen, araçları kullanabilen yapay zeka sistemleri.” Normal AI’dan farkı: Normal AI sen ne dersen onu yapar (ChatGPT gibi – sen sor, o […]

RAG Nedir? Yapay Zekayı Kurumsal Bilgiyle Takviye Etmenin Yolu

Loading

Yapay zeka asistanlarıyla konuştuğunuzda hiç “Bu bilgi güncel mi acaba?” diye düşündünüz mü? Ya da şirketinizin özel politikaları hakkında bir şey sorduğunuzda yanıt alamadınız mı? İşte tam bu noktada RAG (Retrieval Augmented Generation) devreye giriyor ve yapay zekanın oyunun kurallarını değiştiriyor. Bugün birlikte RAG’in ne olduğunu, nasıl çalıştığını ve özellikle e-ticaret gibi alanlarda nasıl kullanılabileceğini […]

LangChain Middleware Nedir?

Loading

Bu yazıda LangChain 1.0 sürümünde gelen çok önemli bir yeniliğe değineceğiz: Langchain Middleware (Ara Katman). Eğer AI ajanları (agents) ile çalışıyorsanız, bu yazıyı mutlaka okumalısınız çünkü middleware, ajanlarınızın davranışları üzerinde size üst seviye kontrol verecek oyun değiştirici! Neden Middleware’e İhtiyaç Var? Hepimiz basit bir AI ajanı yapmayı biliyoruz değil mi? Model bir şeyler söylüyor, gerekirse […]

LangChain ve LangGraph 1.0 ile Neler Değişti?

Loading

LangChain ve LangGraph sonunda 1.0 sürümlerine ulaştılar! 🎉 Ekim 2025’te resmi olarak yayınlanan bu sürümler, yapay zeka ajanları (AI agents) geliştirme konusunda gerçekten çığır açıcı değişiklikler getiriyor. Gelin birlikte neler var, neler değişti, bunları nasıl kullanacağız – hepsine bakalım! Neden Bu Kadar Önemli? Öncelikle şunu söyleyelim: Bu sadece sıradan bir güncelleme değil [1][4]. LangChain ve […]

Spark Structured Streaming Output Mode’ları: Complete ve Update Modunu Anlamak

Loading

Bugün Spark Structured Streaming output mode’ları Spark ile stream data işlemenin en önemli kavramlarından biridir. Bu yazı bunun, output mode’lar (çıktı modları), hakkında olacak. Özellikle Complete ve Update modları arasındaki farkları detaylıca inceleyeceğiz. Bu iki mod hep bana flu gelmişti umarım bu yazıda farkları iyice netleşir. Output Mode Nedir? Öncelikle temel bir soruyla başlayalım: Output […]

Apache Spark’ta Maven Coordinates

Loading

Apache Spark Scala ile yazılmış ama çoğunluk python ile kullanıyor. Ancak ana dilin, Scala, dünyasından tamamen kopamıyorsunuz. Harici paketler, yani maven repository, yani maven koordinatları (maven coordinates). İlk bakışta anlamsız bir kod gibi göründüğünden itici olabiliyor. Özellikle yeni başlayanlar için tam bir çile. Çünkü doğru koordinatı seçemezsen kafka ile konuşamıyorsun mesela. İşte bu yazı maven […]

Kubernetes Security: 5 Acı Gerçek

Loading

Giriş: “Güvenli” Sandığınız Cluster Aslında Öyle Olmayabilir Merhaba! Bugün sizlerle Kubernetes (K8s) güvenliği hakkında konuşacağız. Biliyorum, “güvenlik” kelimesi kulağa sıkıcı gelebilir ama inanın bana, bu yazıyı okuduktan sonra cluster’larınıza bir daha aynı gözle bakmayacaksınız. Kubernetes, konteyner yönetimi (container orchestration) dünyasının kralı haline geldi. Ancak bu güç beraberinde büyük bir sorumluluk getiriyor. İşte size şok edici […]

Kubernetes Quality of Service (QoS) Sınıfları

Loading

Merhaba arkadaşlar! Bugün Kubernetes dünyasında kritik bir konuya, yani Quality of Service (Hizmet Kalitesi) sınıflarına dalalım. Eğer “Neden bazı pod’lar sistem baskı altındayken ayakta kalırken diğerleri hemen ölüyor?” diye sorduysanız, cevabınız bu yazıda. QoS Nedir ve Neden Önemli? Quality of Service (QoS), Kubernetes’in pod’larınızı nasıl önceliklendireceğini ve kaynak sıkıntısı olduğunda hangilerini ilk evict edeceğini (çıkaracağını) […]

FastAPI Middleware Giriş

Loading

Claude Code ile FastAPI üzerine çalışırken ilginç bir şeyle karşılaştım. Kod dosyamda @app.middleware(“http”) şeklinde bir decorator gördüm ve düşündüm: “Durun bir dakika, ben hep @app.get(“/”), @app.post(“/”) gibi decorator’lar görüyordum. Bu @app.middleware(“http”) ne işe yarıyor?” Soruyu sorduğumda aldığım cevap beni şaşırttı – bu decorator her HTTP isteğinde (request) çalışıyormuş, sadece belirli bir endpoint’te değil! Konuyu biraz […]

Modern Veri Dünyasının Oyun Değiştiricisi: Apache Iceberg

Loading

Merhabalar! Bugün sizlerle birlikte modern veri dünyasının en heyecan verici teknolojilerinden biri olan Apache Iceberg’i keşfedeceğiz. Veri gölleriniz kaosa dönüştü mü? Şema güncellemeleri başınızı ağrıtıyor mu? O halde doğru yerdesiniz! Gelin birlikte bu açık tablo formatının (open table format) ne olduğunu, nasıl çalıştığını ve neden bu kadar önemli olduğunu öğrenelim. Önce Biraz Tarih: Veri Ambarlarından […]

Platform Engineering Nedir?

Loading

Merhaba arkadaşlar! Bugün sizlerle DevOps ve Cloud dünyasında son yıllarda gittikçe dikkat çeken ve adını daha fazla duymaya başladığımız bir rolü ele alacağız: Platform Engineering (Platform Mühendisliği). Bu altı boş sadece yeni bir moda değil – Gartner gibi çalışmalarına itimat edilir bir araştırma kurumunun 2023’te yaptığı tahminlere göre 2026 yılına kadar yazılım geliştiren kuruluşların %80’i […]

Kubernetes Kustomize ile Tanışalım: Başlangıç Rehberi

Loading

Merhaba! Bugün Kubernetes dünyasında uygulama yapılandırmalarını (configuration) yönetmek için kullanılan harika bir araçtan bahsedeceğiz: Kustomize. Eğer Kubernetes ile çalışıyorsanız ve farklı ortamlar için sürekli YAML dosyalarını kopyalayıp değiştirmekten bıktıysanız, doğru yerdesiniz. Beraber Kustomize’ı öğreneceğiz ve basit örneklerle nasıl kullanılacağını göreceğiz. Kustomize Nedir? Kustomize, Kubernetes için geliştirilmiş bir yapılandırma yönetim (configuration management) aracıdır [1][2]. En güzel […]

Kafka Producer Güvenilirliği: Acks, Retry ve Idempotent Producer İlişkisini Öğrenelim

Loading

Merhaba! Bugün Apache Kafka’nın en kritik konularından biri olan Kafka Producer güvenilirliği (producer reliability) üzerine derinlemesine bir yazı hazırladım. Eğer Kafka kullanıyorsanız veya kullanmayı planlıyorsanız, mesajlarınızın kaybolmaması ve duplicate (tekrar eden) mesajlardan kaçınmanız için bu konuyu çok iyi anlamanız gerekiyor. Hadi birlikte öğrenelim! Producer Acks Nedir ve Neden Önemlidir? Öncelikle acks (acknowledgment) parametresinden başlayalım. Bu […]

Apache Kafka Exactly-Once Semantics: Mesajlar Ne Kaybolsun, Ne Tekrar Etsin!

Loading

Bu yazıda sizlerle Apache Kafka’nın en kritik ve en çok yanlış anlaşılan özelliklerinden biri olan exactly-once semantics (tam bir kez semantiği) konusunu detaylıca konuşacağız. Bu özellik dağıtık sistemlerde çözmesi en zor problemlerden biri olarak kabul ediliyor ve bazı uzmanlar bunun matematiksel olarak imkansız olduğunu bile iddia ediyordu [2][7]. Ama Kafka bunu başardı! Gelin birlikte nasıl […]

Kubernetes Jobs ve CronJobs ile Otomatik Görevleri Yönetmeyi Öğrenelim

Loading

Merhaba arkadaşlar! Bugün Kubernetes dünyasında çok önemli ama bazen gözden kaçan iki konuya dalacağız: Jobs ve CronJobs. Eğer Kubernetes’i bir süredir kullanıyorsanız, muhtemelen Deployment’lar, ReplicaSet’ler ve StatefulSet’ler gibi pod’larınızı sürekli çalıştıran denetleyicilere (controllers) aşinasınızdır. Peki ya sadece bir kez çalışması gereken işler için ne yapmalıyız? İşte tam da bu noktada Jobs ve CronJobs devreye giriyor! […]

Password Requirements:

  • At least 8 characters
  • At least 1 lowercase letter
  • At least 1 uppercase letter
  • At least 1 numerical number
  • At least 1 special character