Haziran 20 2026

İkinci Beynimiz Bağırsaklar: Mikrobiyom Sağlığını İyileştirerek Zihinsel Odaklanmayı Artırma Yöntemleri

Sabah yataktan kalktınız, kahvenizi içtiniz ama kafanızın içindeki o yoğun sis bulutu bir türlü dağılmadı mı? Merak etmeyin, yalnız değilsiniz. Son yıllarda yapılan bilimsel çalışmalar, yaşadığımız konsantrasyon sorunlarının ve “brain fog” (sisli beyin) durumunun sadece uykusuzlukla ilgili olmadığını gösteriyor. İşin sırrı aslında karnımızda saklı. Bağırsak beyin aksı adı verilen bu çift şeritli biyolojik otoyol, bağırsak mikrobiyomu kalitemizin doğrudan zihinsel odaklanma ve modumuz üzerinde belirleyici olduğunu kanıtlıyor. Peki, doğru bir probiyotik beslenme düzeniyle zihnimizi nasıl keskinleştirebiliriz? Gelin, bu gizemli bağa yakından bakalım.

Bağırsak-Beyin Aksı: Karnımızdaki Mikroplar Kafamızı Nasıl Yönetiyor?

Geleneksel olarak beynimizin tüm vücudu yöneten tek lider olduğunu düşünürdük. Ancak bilim dünyası artık bağırsaklarımızı “ikinci beyin” olarak tanımlıyor. Bağırsaklarımızda yaşayan trilyonlarca mikroorganizma (yani mikrobiyomumuz), vagus siniri aracılığıyla beyne sürekli sinyaller gönderir. İşin daha da ilginç yanı, hislerimizi ve düşüncelerimizi etkileyen nörotransmitterlerin üretimidir.

Araştırmalar gösteriyor ki, vücudumuzdaki serotonin (mutluluk hormonu) miktarının %90’ından fazlası bağırsaklarda üretiliyor. Aynı şekilde, odaklanmayı ve motivasyonu sağlayan dopamin hormonu da bağırsak sağlığımızla doğrudan bağlantılı. Yani, bağırsaklarınızda işler yolunda gitmediğinde, beyninizin yüksek performansla çalışmasını beklemek pek de adil değil.

Brain Fog (Sisli Beyin) Nedir ve Bağırsakla Ne İlgisi Var?

Öğleden sonra gelen o tatlı ama can sıkıcı uyku hali, okuduğunuz sayfayı üç kez yeniden okumak zorunda kalmanız… İşte buna “brain fog” diyoruz. Bağırsaktaki zararlı bakteriler yararlılardan daha fazla sayıya ulaştığında (disbiyozis), bağırsak duvarı geçirgenliği artabilir. Bu durum, vücutta hafif düzeyde ama kronik bir inflamasyona (iltihaplanmaya) yol açar. Kan dolaşımına sızan bu inflamasyon sinyalleri beyne ulaştığında ise zihinsel netliğimiz darbe alır, odaklanma süremiz kısalır.

Mikrobiyomunuzu Besleyerek Zihinsel Netliğe Ulaşmanın Yolları

Zihninizi yeniden keskinleştirmek ve odaklanma sürenizi artırmak için yapabileceğiniz en iyi şey, bağırsaklarınızdaki “dost” bakterileri şımartmaktır. İşte günlük hayatınıza kolayca entegre edebileceğiniz eyleme geçirilebilir adımlar:

1. Prebiyotikler: Bakterilerinizin En Sevdiği Yemekler

Probiyotik bakterileri vücuda almak yetmez; onları hayatta tutmak ve beslemek gerekir. Prebiyotikler, sindiremediğimiz ama dost bakterilerin bayılarak yediği liflerdir. Beslenme düzeninize şu gıdaları ekleyerek başlayın:

  • Sarımsak, soğan ve pırasa
  • Kuşkonmaz ve enginar
  • Muz (özellikle biraz yeşil olanlar) ve yulaf

2. Probiyotik Beslenme: Dost Bakterileri Ordunuza Katın

Canlı ve dost bakterileri doğrudan almak, mikrobiyom çeşitliliğini artırmanın en hızlı yoludur. Fermente gıdalar bu konuda tam birer ecza deposudur. Günlük beslenmenize kefir, ev yapımı turşu, kombucha veya yoğurt ekleyin. Kısa süre içinde enerjinizin ve zihinsel odaklanma kapasitenizin arttığını fark edeceksiniz.

3. Polifenoller ve Antioksidanlar: Beyin Koruyucu Kalkan

Polifenol içeren gıdalar, bağırsaktaki faydalı bakterilerin üremesini teşvik ederken zararlı olanların çoğalmasını engeller. Bitter çikolata (en az %70 kakao), yaban mersini, yeşil çay ve sızma zeytinyağı hem bağırsağınıza hem de doğrudan beyin hücrelerinize iyi gelir.

Herkesin bağırsak yapısı ve mikrobiyomu kendine hastır. Ciddi sindirim sorunları yaşıyorsanız, irritabl bağırsak sendromu (IBS) gibi teşhisleriniz varsa veya beslenmenizde radikal değişiklikler yapacaksanız, yeni bir probiyotik takviyesine başlamadan önce mutlaka bir doktora veya uzman diyetisyene danışın.

Günlük Odaklanma Protokolü (Örnek Rutin)

Bağırsak sağlığınızı ve zihinsel performansınızı optimize etmek için aşağıdaki basit günlük rutini bilgisayarınıza ya da buzdolabınıza kaydedebilirsiniz:


# Günlük Bağırsak ve Odaklanma Protokolü

08:00 -> Güne 1 büyük bardak ılık su ile başla (Sindirimi uyandırır)
09:00 -> Prebiyotik kahvaltı (Yulaf ezmesi, muz, ceviz ve tarçın)
13:00 -> Renkli öğle yemeği (Bol yeşillik, zeytinyağlı sebzeler ve kaliteli protein)
16:00 -> Odaklanma molası (1 fincan yeşil çay + 2 kare bitter çikolata)
19:00 -> Akşam yemeğine eşlikçi: 1 küçük kase ev yapımı kefir veya turşu
22:00 -> Dijital detoks (Mavi ışık bağırsak ritmini de bozar!) ve kaliteli uyku

Özetle: Ne Yiyorsak O’yuz (Ve Öyle Düşünüyoruz!)

Zihinsel odaklanma sadece ne kadar kahve içtiğinizle ya da kaç saat uyuduğunuzla ilgili değildir. Kafanızın içindeki performansı artırmak istiyorsanız, önce karnınızdaki ekosisteme iyi bakmalısınız. Beslenmenizi çeşitlendirerek, fermente gıdalara şans vererek ve işlenmiş şekerden uzak durarak sadece sindirim sisteminizi değil, aynı zamanda kararlarınızı, modunuzu ve tüm gün süren odaklanma becerinizi de dönüştürebilirsiniz.

Category: Genel | LEAVE A COMMENT
Haziran 19 2026

Ölçeklenebilir ClickHouse İzleme (Monitoring): Büyük Veri Analitiğinde Gözlemlenebilirlik Darboğazlarını Aşmak

ClickHouse, saniyede milyonlarca satırı ingest ederken milisaniyeler bazında sorgu dönebilen bir canavar. Ancak her SRE’nin acı yoldan öğrendiği gibi, veri tabanı izleme süreçlerini doğru kurgulamadığınızda, o canavar bir anda kendi kendini yiyen bir karadeliğe dönüşebilir. Özellikle petabyte ölçeğinde production cluster’ları yönetiyorsanız, yanlış yapılandırılmış bir clickhouse monitoring mimarisi, izlemekle yükümlü olduğu sistemin kendisinde darboğaz (bottleneck) yaratacaktır. Bu rehberde, geleneksel yöntemlerin neden çöktüğünü inceleyecek, gerçek zamanlı big data observability pratiklerini ele alacak ve production ortamında güvenle kullanabileceğiniz bir grafana clickhouse izleme mimarisi inşa edeceğiz.

Geleneksel İzleme Yöntemleri ClickHouse’da Neden Patlar?

Geleneksel RDBMS dünyasından kalma alışkanlıklarla ClickHouse izlemeye çalışmak, tır ile drift yapmaya benzer; teoride eğlenceli görünse de ilk virajda devrilirsiniz. Klasik agent’ların her 5 saniyede bir system tablolarına gidip ağır SELECT COUNT(*) veya agresif system.parts sorguları atması, zaten yoğun write/merge döngüsünde olan ClickHouse’u kilitler.

ClickHouse, doğası gereği asenkron çalışır. Disk üzerindeki data part’ları sürekli arka planda birleştirilir (merge), mutasyonlar (mutations) asenkron olarak işlenir ve replication kuyrukları ZooKeeper/Keeper üzerinden koordine edilir. Eğer siz bu dinamikleri anlamadan sadece CPU/Memory odaklı bir veri tabanı izleme stratejisi kurarsanız, şu klasik felaket senaryolarıyla karşılaşırsınız:

  • System Table Şişmesi: system.query_log ve system.trace_log tablolarının temizlenmemesi sonucu diskin dolması.
  • ZooKeeper Lock’ları: Replicated tabloların saniyede yüzlerce kez izleme aracı tarafından sorgulanmasıyla ZooKeeper’ın session kaybetmesi.
  • Thread Pool Exhaustion: İzleme sorgularının, gerçek analitik sorguların öncelikli thread’lerini işgal etmesi.

1. Adım: Native Prometheus Endpoint’ini Doğru Yapılandırmak

ClickHouse, 20.1 sürümünden beri harici bir exporter’a ihtiyaç duymadan Prometheus formatında metrik üretebiliyor. Ancak default gelen konfigürasyon çoğu zaman production iş yükleri için yetersizdir veya çok fazla gürültü (noise) üretir. İlk iş olarak, native endpoint’i optimize edilmiş bir şekilde aktif edelim.

Aşağıdaki XML bloğunu, cluster üzerindeki tüm node’larda /etc/clickhouse-server/config.d/prometheus.xml olarak kaydedin:

<clickhouse>
    <prometheus>
        <endpoint>/metrics</endpoint>
        <port>9363</port>
        <metrics>true</metrics>
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
        <status_info>true</status_info>
    </prometheus>
</clickhouse>

Neden böyle yaptık? asynchronous_metrics parametresi hayati önem taşır. ClickHouse, işletim sistemi seviyesindeki metrikleri ve arka plan thread durumlarını her an güncel tutmak yerine, arka planda belirli aralıklarla asenkron olarak toplar. Bu parametreyi aktif ederek, kazıma (scraping) anında motorun ekstra yük altına girmesini engellemiş oluyoruz.

2. Adım: SRE Gözünden Takip Edilmesi Gereken Kritik Metrikler

Her şeyi izlemek, hiçbir şeyi izlememektir. ClickHouse izlerken panellerinizde mutlaka bulunması gereken, doğrudan “aksiyon alınabilir” metrikler şunlardır:

Active Parts ve Too Many Parts Hatası

ClickHouse’a çok sık ve küçük batch’ler halinde insert yaparsanız, arka plandaki merge mekanizması yetişemez. Bu durum Too many parts in all parts in table hatasına yol açar ve insert’ler blocklanır. Bunu önceden yakalamak için şu metriği alarm listenizin en başına koyun:

# Anlık aktif part sayısı alarm eşiği (Genellikle tablo başına > 300 tehlikedir)
clickhouse_asynchronous_number_of_active_parts

ZooKeeper / ClickHouse Keeper Gecikmeleri

Replicated (örneğin ReplicatedMergeTree) tablolar kullanıyorsanız, ZooKeeper cluster’ınızın sağlığı doğrudan ClickHouse’un sağlığı demektir. ZooKeeper üzerindeki queue birikmelerini şu metrikle izleyin:

# ZooKeeper'da bekleyen asenkron task sayısı
clickhouse_asynchronous_metrics_ZooKeeperHasPendingMutations
# Replicated tablolar için kuyruktaki iş sayısı
clickhouse_metrics_ReplicatedPendingInserts

3. Adım: Grafana Entegrasyonu ve Verimli Dashboard Tasarımı

Grafana clickhouse entegrasyonu için toplulukta iki popüler yaklaşım var: İlki Prometheus üzerinden metrikleri çekmek, ikincisi ise doğrudan ClickHouse sistem tablolarını sorgulayan bir veri kaynağı (örneğin Altinity ClickHouse Datasource) kullanmak. En efektif yöntem, bu ikisini hibrit kullanmaktır.

Grafana üzerinde yavaş sorguları (slow queries) izlemek için doğrudan system tablosunu sorgularken asla limit koyulmamış sorgular atmayın. Aşağıdaki optimize edilmiş SQL örneği, son 1 saatte en çok kaynak tüketen ilk 5 sorguyu cluster genelinde getirir:

SELECT
    query_duration_ms,
    query,
    user,
    formatReadableSize(memory_usage) AS mem
FROM clusterAllReplicas('default', system.query_log)
WHERE event_time > now() - INTERVAL 1 HOUR
  AND type = 'QueryFinish'
ORDER BY query_duration_ms DESC
LIMIT 5;

Neden böyle? clusterAllReplicas tablosal fonksiyonunu kullanarak tüm node’lardaki system.query_log verilerini dağıtık bir şekilde sorguluyoruz. Bu sayede tek bir node’un hafızasını (RAM) şişirmeden, tüm cluster’ın röntgenini çekebiliriz.

4. Adım: Sistem Tablolarının Gizli Tehlikesi ve TTL Yönetimi

ClickHouse default ayarlarda system.query_log, system.trace_log, system.metric_log gibi kritik tabloları sonsuza kadar saklama eğilimindedir. Eğer saniyede binlerce sorgunun döndüğü bir big data observability altyapınız varsa, bu tablolar birkaç hafta içinde disk alanınızı yutacaktır.

Sistem tablolarına akıllıca bir TTL (Time-To-Live) politikası uygulamak şarttır. Bunu yapmak için /etc/clickhouse-server/config.d/system_tables_ttl.xml dosyası oluşturun:

<clickhouse>
    <query_log>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <ttl>event_date + INTERVAL 15 DAY DELETE</ttl>
    </query_log>
    <trace_log>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <ttl>event_date + INTERVAL 7 DAY DELETE</ttl>
    </trace_log>
</clickhouse>

Bu konfigürasyonla birlikte, sorgu geçmişinizi 15 gün, çok daha fazla yer kaplayan execution trace log’larınızı ise sadece 7 gün saklayarak diskin gereksiz yere şişmesini önlemiş oluyoruz. Unutmayın, disk doluluğu %90’ın üzerine çıktığında ClickHouse kendini korumaya alıp read-only moda geçebilir.

Özet: SRE Kontrol Listesi

Büyük ölçekli ClickHouse cluster’ınızı izlerken şu üç kuralı asla aklınızdan çıkarmayın:

  1. Dışarıdan (external) agresif polling yapan agent’lar yerine, her zaman ClickHouse’un native Prometheus endpoint yapısını tercih edin.
  2. Sadece genel sistem metriklerine (CPU/Memory) bakarak aldanmayın; Active Parts ve Keeper latency metriklerini mutlak kırmızı çizginiz yapın.
  3. System tablolarınızı başıboş bırakmayın; mutlaka uygun partition ve TTL politikaları tanımlayarak diskinizin sağlığını koruyun.
Category: Genel | LEAVE A COMMENT
Haziran 17 2026

DSPy ile Prompt Mühendisliğine Veda: Algoritmik Prompt Optimizasyonu

Yapay zeka dünyasında son dönemde herkesin dilinde bir kelime var: Prompt Mühendisliği. Ancak dürüst olalım; saatlerce “Sen bir dünya klası yazarsın…” diye başlayıp sonu gelmeyen talimatlar yazmaktan, o sihirli kelimeleri ararken kaybolmaktan yorulmadık mı? İşte bu noktada Stanford Üniversitesi’nin geliştirdiği DSPy rehberi imdadımıza yetişiyor. Artık elle yazılan, en ufak model güncellemesinde çöken kırılgan promptlar yerine, programatik ve kendi kendini güncelleyen bir prompt optimizasyonu sürecine geçiyoruz. Bu yazıda, modern yapay zeka kodlama dünyasını kökten değiştirmeyi vadeden dspy vs prompt engineering savaşını mercek altına alacak ve DSPy’ın arkasındaki mantığı pratik örneklerle inceleyeceğiz.

[Görsel: Karmaşık prompt metinleri arasında kaybolmuş bir yazılımcının, düzenli ve şık bir kod arayüzüne geçişini gösteren illüstrasyon]

Prompt Mühendisliği Neden Tıkandı?

Mevcut yapay zeka geliştirme süreçlerinde büyük bir yapısal sorun var: “Kırılganlık”. Bugün GPT-4 için yazdığınız ve harika çalışan 500 kelimelik o detaylı prompt, yarın model güncellendiğinde veya daha ucuz olan Llama-3 modeline geçmek istediğinizde tamamen çöp olabiliyor. Prompt yazmak, mühendislikten ziyade modern simyacılığa benziyor; neyi değiştirdiğinizde neden çalıştığını tam olarak bilemiyorsunuz.

İşte “Neden böyle?” sorusunun cevabı burada gizli: LLM’leri (Büyük Dil Modelleri) metinsel şablonlarla yönlendirmeye çalışıyoruz, oysa onları birer yazılım bileşeni olarak görmeliyiz. DSPy (Declarative Self-improving Language Programs, pythonic tarzda beyan edilen ve kendini geliştiren dil programları), LLM entegrasyonlarını “metin manipülasyonu” olmaktan çıkarıp “programlama” haline getiriyor. Tıpkı PyTorch’un yapay sinir ağlarındaki ağırlıkları otomatik optimize etmesi gibi, DSPy de LLM’lere giden promptları otomatik olarak optimize ediyor.

DSPy Nedir? Temel Kavramlar

DSPy’ı anlamak için geleneksel yaklaşımları bir kenara bırakıp üç temel kavrama odaklanmamız gerekiyor:

  • Signatures (İmzalar): Prompt yazmak yerine, sistemin ne yapacağını deklaratif olarak tanımlarsınız. Örneğin: "doküman -> özet" veya "soru, bağlam -> cevap" gibi. Promptun nasıl görüneceğini DSPy halleder.
  • Modules (Modüller): LLM çağrılarını gerçekleştiren şablonlardır. Klasik bir LLM çağrısı (Predict), adım adım düşünme (ChainOfThought) veya araç kullanımını yöneten (ReAct) modüller hazır olarak sunulur.
  • Optimizers / Teleprompters (Optimizasyon Araçları): İşte işin sihirli kısmı. Elinizdeki birkaç örnek veriyi kullanarak, hedeflediğiniz imza için en ideal promptu ve “few-shot” örnekleri otomatik olarak seçip oluşturan algoritmalardır.

[Görsel: DSPy’ın Signature, Module ve Optimizer katmanlarının birbiriyle nasıl haberleştiğini gösteren akış şeması]

Uygulamalı Test: Klasik Prompt vs DSPy

Sözü daha fazla uzatmayalım ve teoriyi pratiğe dökelim. Basit bir duygu analizi ve sınıflandırma senaryosunu ele alalım. Önce kütüphanemizi kuralım:

pip install dspy-ai

Ardından, DSPy ile bir model tanımlayalım ve basit bir sınıflandırıcı oluşturalım. Bu testte yerel olarak çalıştırabileceğimiz ücretsiz bir model olan Ollama (Llama-3) veya OpenAI API kullanabiliriz.

import dspy

# LLM Konfigürasyonu (Yerel Ollama veya OpenAI kullanabilirsiniz)
# Biz burada kolaylık olsun diye OpenAI kullanıyoruz ancak ücretsiz alternatifleri de mevcut.
lm = dspy.OpenAI(model='gpt-3.5-turbo', api_key="YOUR_API_KEY")
dspy.settings.configure(lm=lm)

# 1. Signature (İmza) Tanımlama
class DuyguAnalizi(dspy.Signature):
    """Metnin duygu durumunu analiz et ve sadece POZİTİF, NEGATİF veya NÖTR olarak etiketle."""
    metin = dspy.InputField(desc="Analiz edilecek kullanıcı yorumu")
    duygu = dspy.OutputField(desc="Duygu kategorisi")

# 2. Modül Kullanımı (Chain of Thought - Düşünce Zinciri ile)
siniflandirici = dspy.ChainOfThought(DuyguAnalizi)

# 3. Çalıştırma
sonuc = siniflandirici(metin="Kertenkerem blogundaki yeni yazılım rehberleri gerçekten çok akıcı ve bilgilendirici.")
print("Düşünce Süreci:", sonuc.rationale)
print("Sonuç:", sonuc.duygu)

Bu kodda hiçbir “Prompt” yazmadık. Modelin nasıl davranacağını, hangi formatta çıktı vereceğini DuyguAnalizi sınıfıyla (Signature) belirledik. DSPy, kullandığımız modele göre arka planda en uygun prompt şablonunu kendisi oluşturdu. Eğer yarın gpt-3.5-turbo yerine Llama-3 kullanırsak, tek yapmamız gereken en üstteki konfigürasyon satırını değiştirmek olacak; kodun geri kalanı aynen çalışmaya devam edecek.

Karşılaştırma Tablosu: dspy vs prompt engineering

Yöntemleri daha net görebilmek adına iki yaklaşımı doğrudan karşılaştıralım:

Özellik Geleneksel Prompt Mühendisliği DSPy ile Programlama
Model Değişikliği Tüm promptların baştan yazılması ve test edilmesi gerekir. Sadece model tanımı değiştirilir, kod yapısı korunur.
Optimizasyon Tamamen manuel, deneme-yanılma ve tahmin odaklıdır. Algoritmik ve veri setine dayalı otomatik optimizasyon.
Kırılganlık Çok yüksek. Çıktı formatı sıklıkla bozulabilir. Çok düşük. Tip güvenliği ve yapılandırılmış çıktılar.
Geliştirme Hızı Başlangıçta hızlı, ölçeklendikçe aşırı yavaş ve hantal. Başlangıçta öğrenme eğrisi var, ölçeklendikçe çok hızlı.

Maliyetler ve Ücretsiz Alternatifler

DSPy tamamen açık kaynak kodlu ve kullanımı tamamen ücretsiz bir kütüphanedir. Ancak arka planda çalışan LLM’lerin bir maliyeti olabilir. Eğer ticari kapalı kaynaklı API’lar (OpenAI, Anthropic, Cohere) kullanırsanız, optimizasyon süreçleri (Teleprompter çalışırken birden fazla deneme yapacağı için) API kullanım faturanızı bir miktar artırabilir.

Hiç para harcamadan test etmek isterseniz:
Ollama aracılığıyla bilgisayarınıza indireceğiniz yerel modelleri (Llama-3, Mistral, Phi-3) DSPy ile tamamen ücretsiz olarak entegre edebilirsiniz. Ayrıca Google AI Studio üzerinden alacağınız ücretsiz Gemini API anahtarı da testleriniz için harika bir alternatif olacaktır.

Artıları ve Eksileri ile DSPy

Süper Güçleri (Artıları):

  • Sistemik Yaklaşım: Promptları birer kod satırı gibi derleyip optimize eder.
  • Geleceğe Yatırım: Yarın yeni bir LLM çıktığında projenizi 5 dakikada yeni modele göç ettirebilirsiniz.
  • Daha Az Kod, Daha Çok İş: Karmaşık mantıksal zincirleri (RAG sistemleri, ajanlar) yönetmek inanılmaz kolaylaşır.

Zayıf Yönleri (Eksileri):

  • Öğrenme Eğrisi: Python sınıflarına, nesne yönelimli programlamaya uzak olanlar için başlangıçta kafa karıştırıcı olabilir.
  • Veri İhtiyacı: Optimizasyon araçlarının gerçek performansını göstermesi için en az 10-20 adet örnek veri setine (input-output çifti) ihtiyacınız vardır.

Son Söz: Simyadan Kimyaya Geçiş

DSPy, yapay zeka kodlama süreçlerini bir sanat dalı olmaktan çıkarıp gerçek bir mühendislik disiplinine dönüştürüyor. Eğer sadece basit bir metin özeti almak istiyorsanız, ChatGPT arayüzüne prompt yazmaya devam edebilirsiniz. Ancak bir yazılımın içine entegre olacak, binlerce kez çalışacak ve farklı modellerle uyumlu olması gereken kararlı sistemler inşa ediyorsanız, DSPy sizin için kaçınılmaz bir durak olacaktır.

Kollarınızı sıvayıp kendi yerel modelinizle ilk DSPy optimizasyonunuzu denemenin tam zamanı. Bir sonraki LLM Tools incelememizde görüşmek üzere!

Category: Genel | LEAVE A COMMENT
Haziran 16 2026

Açık Kaynak Kodda ‘Miasma’ Tehlikesi: npm ve Red Hat Bağımlılık Güvenliğini Otomatize Etmek

Modern yazılım mimarilerinde production ortamlarının çökmesi artık yazdığınız hatalı döngülerden değil, güvendiğiniz üçüncü parti kütüphanelerin zehirlenmesinden kaynaklanıyor. Bir supply chain attack (tedarik zinciri saldırısı), siz daha kahvenizden ilk yudumu almadan tüm altyapınızı ele geçirebilir. Bu yüzden open source security (açık kaynak güvenliği) süreçlerini sadece bir compliance tiyatrosu olarak görmek yerine, CI/CD pipeline’ınızın merkezine koymalısınız. Bu yazıda, modern enterprise dünyasının iki büyük oyuncusu olan npm security pratiklerini ve kurumsal ortamlarda Red Hat ekosistemine entegre edilmiş dependency tracking (bağımlılık takibi) mekanizmalarını nasıl otomatize edeceğimizi teknik detaylarıyla inceliyoruz.

Miasma Etkisi: Transitive Dependency Zehirlenmesi

Yazılım dünyasında “Miasma”, doğrudan sizin çağırmadığınız ama bağımlılık ağacınızın (dependency tree) derinliklerinde yer alan, zamanla çürüyen veya kasıtlı olarak manipüle edilen kütüphanelerin yarattığı toksik ortamı ifade eder. Siz projenize sadece popüler bir HTTP istemcisi eklersiniz; o istemci arkada 50 farklı paket çeker, o 50 paket ise 500 pakete dallanır. Saldırganlar, bu derinliklerdeki az bilinen, bakımı aksatılmış paketlerin sahipliğini ele geçirerek (veya typosquatting ile benzer isimler türeterek) production ortamlarınıza sızar.

Peki neden standart kilit dosyaları (lockfiles) bizi kurtarmıyor? Çünkü lockfile bağımlılıkların versiyonlarını sabitler, ancak o versiyonların güvenli olduğunu garanti etmez. Dün güvenli olan bir SHA-512 karması, bugün ifşa olmuş bir zero-day ile sisteminizi açık hedef haline getirebilir.

npm Pipeline Güvenliğini Sertleştirmek (Hardening)

Herkes npm audit komutunu bilir ancak kurumsal pipeline süreçlerinde bu komutu doğrudan çalıştırmak tam bir kabustur. Geliştirme ortamına ait (devDependencies) önemsiz bir prototip paketindeki düşük seviyeli bir açık yüzünden pipeline’ın durması geliştirici motivasyonunu öldürür. Bize daha akıllı, filtrelenebilir ve esnek bir yapı gerekiyor.

Bu sorunu çözmek için endüstri standardı olan audit-ci aracını kullanacağız. Bu araç, kabul edilebilir riskleri (örneğin sadece prod bağımlılıklarını taramak veya belirli CVE’leri geçici olarak whitelist’e eklemek) yönetmemizi sağlar.

Adım 1: audit-ci Yapılandırması

Projenizin kök dizinine bir .audit-ci.json dosyası oluşturun. Bu dosya, pipeline’ınızın hangi durumlarda kırmızıya döneceğini belirleyen anayasanız olacak:

{
  "$schema": "https://github.com/IBM/audit-ci/raw/main/schema.json",
  "low": false,
  "medium": false,
  "high": true,
  "critical": true,
  "allowlist": [
    "GHSA-93g4-969f-4mc9",
    "CVE-2023-45133"
  ],
  "registry": "https://registry.npmjs.org/",
  "package-manager": "npm"
}

Burada kritik ayar: high ve critical seviyedeki açıkları kesinlikle blokluyoruz. Ancak production ortamını etkilemeyen, analiz ettiğimiz ve fix edilmesini beklediğimiz belirli CVE’leri allowlist içine alarak pipeline’ın gereksiz yere tıkanmasını önlüyoruz.

Red Hat Enterprise Linux (RHEL) ve UBI Dünyasında Bağımlılık Yönetimi

Kurumsal dünyada Node.js uygulamalarımızı genellikle Red Hat Universal Base Images (UBI) üzerinde koştururuz. Bu imajlar güvenlik standartları açısından mükemmel olsa da, OS seviyesindeki paketlerin (openssl, glibc vb.) ve bağımlılıkların takibi npm seviyesinden farklı bir yaklaşım gerektirir.

OS seviyesindeki bağımlılıkları ve npm paketlerini tek bir çatı altında izlemek için SBOM (Software Bill of Materials) üretmek zorundayız. SBOM, uygulamanızın DNA haritasıdır.

Syft ve Grype Entegrasyonu

Anchore tarafından geliştirilen syft ile imajımızın SBOM’unu çıkaracağız, ardından grype ile bu SBOM üzerinde Red Hat güvenlik veritabanını (RHSA) kullanarak tarama gerçekleştireceğiz.

Aşağıdaki komut bloku, UBI tabanlı Docker imajınızı tarar ve Red Hat güvenlik advisory’leri ile eşleştirerek rapor üretir:

# Syft ile SBOM üretimi (CycloneDX formatında)
syft power-node-app:latest -o cyclonedx-json=sbom.json

# Grype ile SBOM taraması ve sadece yüksek/kritik açıkların listelenmesi
grype sbom.json --fail-on high

Neden doğrudan imajı taramıyoruz da SBOM üzerinden gidiyoruz? Çünkü SBOM çıktısı deklaratiftir. Bir kez üretildikten sonra arşivlenebilir, imzalanabilir ve yıllar sonra bile “Biz 2024’te production’a ne çıkmıştık?” sorusuna net bir cevap verir.

Uçtan Uca CI/CD Pipeline Blueprint’i

Şimdi teoriyi ve lokal komutları bir kenara bırakıp, gerçek bir kurumsal pipeline senaryosu kuralım. Senaryomuzda GitLab CI kullanacağız. Pipeline’ımız hem npm paketlerini tarayacak, hem Docker imajını inşa edecek, hem de Red Hat tabanlı bu imajı SBOM süzgecinden geçirecek.

stages:
  - test
  - build
  - security

variables:
  IMAGE_NAME: "registry.kertenkerem.net/apps/secure-node"
  IMAGE_TAG: "$CI_COMMIT_SHORT_SHA"

npm_security_audit:
  stage: test
  image: node:20-alpine
  script:
    - npm ci
    - npx audit-ci --config .audit-ci.json

container_build:
  stage: build
  image: docker:24.0.5
  services:
    - docker:24.0.5-dind
  script:
    - docker build --no-cache -t $IMAGE_NAME:$IMAGE_TAG -f Dockerfile.ubi .
    - docker save $IMAGE_NAME:$IMAGE_TAG -o image.tar
  artifacts:
    paths:
      - image.tar
    expire_in: 1 hour

vulnerability_scan:
  stage: security
  image: anchore/grype:latest
  dependencies:
    - container_build
  script:
    - docker load -i image.tar
    - grype $IMAGE_NAME:$IMAGE_TAG --fail-on high --exclude './usr/share/doc'
  allow_failure: false

Bu pipeline konfigürasyonunda dikkat etmeniz gereken kritik nokta --exclude parametresidir. Red Hat imajlarında bazen dokümantasyon dizinleri altında yalancı pozitifler (false positives) tetiklenebilir. Bunları dışarıda bırakarak sinyal/gürültü oranını optimize ediyoruz.

Transitive Dependency Zehirlenmesini Kod Seviyesinde Aşmak

Bazen kullandığınız devasa bir framework’ün (örneğin NestJS veya Next.js) derinliklerindeki bir paket açık verir. Üst paketin geliştiricileri henüz güncelleme yayınlamamıştır ancak güvenlik ekibiniz production’a çıkmanıza izin vermez. Bu çıkmaz sokaktan nasıl kurtulursunuz?

Çözüm: npm’in v8 ile gelen overrides (veya Yarn kullanıyorsanız resolutions) özelliğidir. Bu özellik sayesinde, üst paketin ne istediğine bakılmaksızın, bağımlılık ağacındaki spesifik bir alt paketin sürümünü zorla ezebilirsiniz.

Aşağıdaki package.json kesiti, kritik bir açık barındıran minimist paketini, tüm alt kırılımlarda 1.2.8 sürümüne kilitler:

{
  "name": "enterprise-secure-app",
  "version": "1.0.0",
  "dependencies": {
    "some-legacy-framework": "2.4.0"
  },
  "overrides": {
    "some-legacy-framework": {
      "minimist": "1.2.8"
    }
  }
}

Neden böyle yapıyoruz? Çünkü kütüphane sahibinin PR’ı (Pull Request) kabul edip yeni sürüm yayınlamasını beklemek bir SRE/DevOps mühendisi için lükstür. “Overrides” geçici ama hayat kurtaran bir siperdir.

Sonuç: Güvenlik Bir State Değil, Process’tir

Yazılım tedarik zinciri güvenliği, bir kez yapılandırıp unutacağınız bir ayar değildir. Yarın sabah npm registry’sine yüklenecek yepyeni bir paket, mevcut tüm mimarinizi tehdit edebilir. Bu yüzden otomasyon şarttır. audit-ci ile uygulama katmanını, syft ve grype ikilisiyle ise Red Hat tabanlı konteyner katmanınızı sürekli denetim altında tutarak, ‘Miasma’ tehlikesini sistemlerinizden uzak tutabilirsiniz.

Category: Genel | LEAVE A COMMENT
Haziran 16 2026

Japon Ev Yemeklerinin Kraliçesi: Evde Çıtır Tavuk Katsu Köri Yapımı

Porsiyon: 2 Kişilik | Hazırlık Süresi: 20 Dakika | Pişirme Süresi: 25 Dakika

Japonya’da soğuk bir kış gününde metro istasyonlarından yükselen o içinizi ısıtan, hafif baharatlı kokuyu daha önce duydunuz mu? Evet, Japonların milli konfor yemeği (comfort food) olan o meşhur nefesten bahsediyoruz. Dışarıda yemeye bayıldığımız, o yoğun soslu ve çıtır çıtır tavuk katsu köri tabağını evde yapmak gözünüzü korkutmasın. Genelde çok karmaşık görünen japon mutfağı klasikleri aslında mutfakta geçireceğiniz keyifli bir yarım saate bakar. Neden mi? Çünkü bu yemek, kusursuz bir zıtlık üzerine kurulu: Yoğun, kadifemsi sıcak bir sos ve onun üzerinde parıldayan, adeta “kıtır kıtır” ses veren altın sarısı bir tavuk dilimi. Bu yazıda, sizi gereksiz mutfak terimlerinden uzaklaştırıp, adım adım mükemmel bir japon körisi tarifi ile baş başa bırakıyoruz. Üstelik ev konforunda restoran kalitesinde bir çıtır katsu yapımı düşündüğünüzden çok daha kolay!

Neden Tavuk Pirzola ve Panko? İşin Kimyası

Tarife geçmeden önce “Neden bu malzemeleri seçiyoruz?” sorusuna yanıt verelim. Geleneksel tavuk katsu yaparken genellikle tavuk göğsü kullanılır ancak tavuk göğsü yüksek ısıda kolayca kuruyabilir. Biz bu tarifte kemiksiz tavuk pirzola (kalça eti) tercih ediyoruz. Kalça eti, kendi içindeki hafif yağ dokusu sayesinde pişerken suyunu korur ve o çıtır kaplamanın altında lokum gibi yumuşak kalır.

Gelelim çıtırlığın mimarı olan “panko”ya. Panko, Japon usulü ekmek kırıntısıdır. Klasik galeta ununa göre daha iri, pul pul ve hafiftir. Kızarırken içine yağı çekmez, bu yüzden tavuğun dışı inanılmaz hafif ve çıtır olur. Eğer markette panko bulamazsanız, mısır gevreğini elinizle hafifçe ufalayarak harika bir alternatif yaratabilirsiniz.

Gerekli Malzemeler

Köri Sosu İçin:

  • 1 yemek kaşığı tereyağı (veya bitkisel yağ)
  • 1 yemek kaşığı un (Sosu koyulaştıracak gizli roux kahramanımız)
  • 1 yemek kaşığı dolusu toz köri
  • 1 adet orta boy soğan (yemeklik doğranmış)
  • 1 adet havuç (orta boy, yarım ay şeklinde doğranmış)
  • 1 adet orta boy patates (küp doğranmış)
  • 2.5 su bardağı tavuk suyu (yoksa normal su da olur)
  • 1 yemek kaşığı soya sosu
  • 1 tatlı kaşığı bal veya ketçap (sosun asiditesini dengelemek için)

Çıtır Tavuk Katsu İçin:

  • 2 adet kemiksiz tavuk pirzola (hafifçe dövülerek eşit kalınlığa getirilmiş)
  • 1 çay bardağı un
  • 1 adet yumurta (çırpılmış)
  • 1.5 su bardağı panko (veya iri çekilmiş bayat ekmek içi)
  • Kızartmak için sıvı yağ
  • Tuz ve karabiber

Adım Adım Tavuk Katsu Köri Yapılışı

  1. Roux ve Sos Tabanını Hazırlayın: Küçük bir tencerede tereyağını eritin. Unu ekleyip kokusu çıkana kadar yaklaşık 1-2 dakika kavurun. Ardından köri tozunu ekleyin ve 30 saniye daha çevirip altını kapatın. İşte sosumuzun kıvam ve lezzet kaynağı olan “roux” hazır!
  2. Sebzeleri Pişirin: Ayrı bir tencerede az sıvı yağ ile soğanları karamelize olana kadar soteleyin. Havuç ve patatesleri ekleyip 2 dakika daha kavurun. Tavuk suyunu ekleyip kaynamaya bırakın. Sebzeler yumuşayınca (yaklaşık 12-15 dakika), hazırladığınız roux karışımını, soya sosunu ve balı tencereye ekleyip çırpıcıyla hızlıca karıştırın. Sosunuz 5 dakika içinde koyulaşıp kadifemsi bir kıvam alacaktır.
  3. Tavukları Paneleyin: Tavuk pirzolaları tuz ve karabiberle tatlandırın. Tavukları sırasıyla önce una, sonra çırpılmış yumurtaya ve son olarak pankoya bulayın. Pankonun tavuğa iyi yapışması için ellerinizle hafifçe bastırarak kaplayın.
  4. Çıtır Çıtır Kızartın: Geniş bir tavaya sıvı yağı alın ve kızdırın. Tavukları sıcak yağa bırakıp her iki yüzünü de altın sarısı olana kadar (yaklaşık arkalı önlü 4’er dakika) kızartın. Kızaran tavukları fazla yağını salması için bir tel süzgeç veya havlu kağıt üzerine alın.
  5. Servis Zamanı: Geniş bir tabağın bir tarafına sıcak pirinç pilavı (mümkünse yasemin veya kırık pirinç) koyun. Diğer tarafına bolca sıcak köri sosundan dökün. Çıtır tavuğunuzu keskin bir bıçakla dilimleyin ve sosun üzerine yerleştirerek servis edin.

Püf Noktası

Püf Noktası: Çıtır katsunun en büyük düşmanı nemdir! Kızaran tavukları asla üst üste yığmayın ve sosun içinde uzun süre bekletmeyin. Sosu tabağın tabanına yayıp, tavuk dilimlerini sosun üzerine “köprü” gibi yerleştirirseniz, tavuk altından sosu emerken üst kısımdaki panko çıtırlığını son lokmaya kadar korur.

Afiyet olsun!

Category: Genel | LEAVE A COMMENT
Haziran 15 2026

Evde Klasik Fransız Mutfağı: Ağızda Dağılan Lokum Gibi Beef Bourguignon Tarifi

“Fransız mutfağı” denince gözünüz hemen korkmasın. Mutfakta saatler harcayıp strese girmeden, sanki Paris’in şık bir bistrosundaymış gibi hissetmek kesinlikle mümkün. Bugün, mutfağınızda buram buram tereyağı kokuları estirecek nefis bir beef bourguignon tarifi ile karşınızdayız. Bu geleneksel Fransız yahnisi, doğru malzemeler ve sabırlı bir ağır ateşte pişirme tekniğiyle birleştiğinde, size evde gurme yemek yapmanın aslında ne kadar zahmetsiz ve tatmin edici olduğunu kanıtlayacak. Hadi, malzemeleri hazırlayın; tencerenin kapağını kapatıp mutfaktaki sihri başlatalım!

Neden Beef Bourguignon?

Fransız mutfağının bu kadar prestijli olmasının arkasında aslında çok basit bir mantık yatıyor: Malzemeye saygı duymak ve acele etmemek. Beef Bourguignon, sert ve görece uygun fiyatlı et kesimlerini (kol veya gerdan gibi) yavaşça pişirerek yumuşatma felsefesine dayanır. Uzun pişirme sürecinde etin içindeki kolajenler erir, lifler gevşer ve ortaya bıçak bile gerektirmeyen, çatalla bölünen lokum gibi bir doku çıkar. Yani bu yemek aslında mutfakta bir usta olmanızı değil, sadece zamana güvenmenizi ister.

Porsiyon: 4 Kişilik
Hazırlık Süresi: 20 Dakika
Pişirme Süresi: 2.5 Saat

Beef Bourguignon Tarifi

Malzemeler

  • 1 kg dana kol veya gerdan eti (iri küpler halinde doğranmış)
  • 150 gr arpacık soğan (kabukları soyulmuş, bütün halde)
  • 200 gr kestane mantarı (iri olanları ikiye bölünmüş)
  • 2 adet orta boy havuç (iri halkalar halinde doğranmış)
  • 2 diş sarımsak (ezilmiş)
  • 150 gr füme antrikot veya dana bacon (orijinal tarifteki domuz bacon yerine harika bir yerel alternatiftir)
  • 2 yemek kaşığı tereyağı
  • 1 yemek kaşığı zeytinyağı
  • 2 yemek kaşığı un (sosun o kadifemsi kıvamını bağlamak için)
  • 1 şişe sek kırmızı şarap (Öküzgözü veya Boğazkere gibi gövdeli şaraplar çok yakışır)
  • 2 su bardağı et suyu (varsa gerçek ilikli kemik suyu lezzeti katlar)
  • 1 yemek kaşığı domates salçası
  • Taze kekik, 2 adet defne yaprağı, tuz ve taze çekilmiş karabiber

Yapılışı

  1. Etleri mühürleyin: Kalın tabanlı, derin bir tencereye (varsa döküm tencere) zeytinyağını alın. İyice ısınan tencerede etleri porsiyonlar halinde, birbirine değmeyecek şekilde yüksek ateşte mühürleyin. Amaç etin suyunu içine hapsetmek ve dışını karamelize etmektir. Etleri tabağa alın.
  2. Aromatikleri soteleyin: Aynı tencereye (sakın yıkamayın, o lezzet kalıntıları bize lazım!) tereyağını ekleyin. Füme eti, havuçları ve arpacık soğanları ekleyip 5 dakika kadar soteleyin. Ardından sarımsakları ekleyip kokusu çıkana kadar 1 dakika daha çevirin.
  3. Un ve salçayı ekleyin: Salçayı ekleyip kokusu çıkana kadar kavurun. Unu sebzelerin üzerine serpiştirip iyice karıştırın. Un, pişme esnasında sosu mükemmel şekilde koyulaştıracaktır.
  4. Tencereyi deglaze edin: Kırmızı şarabı tencereye yavaşça dökün. Tahta bir kaşık yardımıyla tencerenin dibine yapışmış o aşırı lezzetli et kalıntılarını kazıyarak şaraba karıştırın. Bu işleme Fransız mutfağında deglaze etmek denir ve lezzetin sırrıdır.
  5. Ağır ateşte pişmeye bırakın: Etleri ve tabakta biriken sularını tencereye geri alın. Et suyunu ekleyin. Defne yaprağını ve taze kekiği içine bırakın. Karışım kaynama noktasına gelince altını en kısığa getirin, tencerenin kapağını sıkıca kapatın ve 2 saat boyunca kendi halinde tıkırdamaya bırakın.
  6. Mantarları ekleyin: Ayrı bir tavada az tereyağı ile mantarları yüksek ateşte soteleyin. Pişme süresinin son 30 dakikasında mantarları tencereye ilave edin. Sos koyulaşıp etler çatalla dağılacak kıvama geldiğinde yemeğiniz hazır demektir.

Mükemmel Sonuç İçin Püf Noktaları

  • Et Seçimi Önemli: Bu yemekte bonfile gibi yağsız ve yumuşak etler kullanmayın. Bu etler uzun pişme sürecinde kurur ve lif lif ayrılır. Bize kol veya gerdan gibi bağ dokusu yüksek etler gerekiyor.
  • Alkolsüz Alternatif: Eğer şarap kullanmak istemiyorsanız, şarap yerine aynı miktarda et suyu kullanıp, asiditeyi dengelemek için içine 2 yemek kaşığı balzamik sirke ve 1 tatlı kaşığı nar ekşisi ekleyebilirsiniz.
  • Sabırlı Olun: Yemeği hızlıca pişirmek için ateşi asla yükseltmeyin. Ağır ateşte yavaş yavaş pişen etin dokusu ve sosun derinliği çok daha başka olacaktır.

Bu muazzam Fransız yahnisini servis ederken yanına bol tereyağlı bir patates püresi hazırlamanızı şiddetle tavsiye ederiz. Üzerine serpiştireceğiniz taze maydanozla hem göze hem damağa hitap eden bir gurme akşamı sizi bekliyor. Afiyet olsun!

Category: Genel | LEAVE A COMMENT
Haziran 14 2026

Sonsuz Bahar Adası Madeira: Lavada Yürüyüşleri ve Dik Yamaçların Seyahat Rehberi

Atlantik Okyanusu’nun ortasında, adeta zamanın yavaş aktığı yeşil bir vaha hayal edin. Portekiz adalari denince akla gelen o klasik, sadece şezlong ve kumsaldan ibaret tatil anlayışını tamamen sıfırlayan bir yer burası. Sarp kayalıkları, her köşesinden fışkıran şelaleleri ve yıl boyu süren bahar havasıyla Madeira, sadece bir ada değil, adeta yaşayan, nefes alan bir doğa harikası. Eğer siz de sıradan turist rotalarından sıkıldıysanız ve doğanın gerçek gücünü hissetmek istiyorsanız, hazırladığımız bu kapsamlı madeira gezi rehberi tam size göre. Bu yazıda lüks otellerin steril pencerelerinden değil, yerel halkın adımladığı patikalardan ve dik yamaçlardan bakacağız dünyaya.

Funchal: Sömürge Tarihi ve Sokak Lezzetleri

Adanın kalbi, dik yamaçlara kurulmuş amfitiyatro benzeri yapısıyla funchal. Şehre ilk indiğinizde, havayı kaplayan okyanus kokusu ve egzotik çiçeklerin aroması sizi hemen saracak. Funchal, hem tarihi sömürge mimarisini koruyor hem de modern bir liman kentinin dinamizmini sunuyor. Ancak burayı pahalı bir turizm merkezi olarak görüp gözünüz korkmasın. Şehrin dar sokaklarında kaybolurken karşınıza çıkacak olan küçük fırınlarda, adanın meşhur ekmeği Bolo do Caco’yu sıcak sıcak yiyebilirsiniz. Sarımsaklı tereyağı ile servis edilen bu tatlı patates ekmeği, sadece iki veya üç Euro gibi komik bir fiyata karnınızı doyurmanın en lezzetli yoludur.

Yemekten sonra yönünüzü eski şehir bölgesine, yani Zona Velha’ya çevirin. Buradaki evlerin kapıları yerel sanatçılar tarafından açık hava sergisine dönüştürülmüş durumda. Hemen ara sokaklardaki yerel barlardan birine ilişip adanın milli içkisi Poncha’yı deneyin. Taze sıkılmış şeker kamışı suyu, bal ve limonun taze taze dövülerek yerel romla karıştırılmasıyla yapılan bu içki, adanın neden bu kadar neşeli olduğunu kanıtlar nitelikte. Poncha’yı turistik mekanlarda yüksek fiyatlara içmek yerine, yerel halkın takıldığı ara sokak barlarında yarı fiyatına bulabilirsiniz.

Lavada Yürüyüşleri: Suyun İzinde Yeşil Bir Macera

Madeira’yı gerçekten anlamak için kıyı şeridinden yukarıya, bulutların arasına tırmanmanız gerekir. İşte burada devreye adanın can damarları olan tarihi su kanalları giriyor. Adada yapacağınız bir lavada yuruyusu, sadece spor amaçlı bir yürüyüş değil, aynı zamanda yüzyıllık bir mühendislik harikasına tanıklık etmektir. On beşinci yüzyıldan kalma bu kanallar, adanın yağışlı kuzeyinden kurak güneyine su taşımak için dağların içine oyulmuş. Bugün ise bu kanalların yanındaki dar bakım yolları, dünyanın en benzersiz yürüyüş rotalarını oluşturuyor.

Örneğin, Levada do Caldeirão Verde rotasında yürürken kendinizi adeta bir fantastik film setinde hissedeceksiniz. Dev eğrelti otları, nemli tüneller ve yolun sonunda sizi bekleyen o devasa şelale, doğanın gücünü iliklerinize kadar hissettirecek. Bu yürüyüş yollarına giriş tamamen ücretsizdir, ancak tünelleri güvenle geçebilmek için yanınızda mutlaka iyi bir kafa feneri bulundurmanız gerekir.

Yerel Keşif Tüyosu: Popüler levadalarda insan seline kapılmamak için yürüyüşe sabah saat sekiz civarında başlayın. Tur otobüsleri genellikle saat ondan sonra gelmeye başlar. Ayrıca adada hava durumu her on kilometrede bir değiştiği için çantanızda her zaman hafif bir yağmurluk ve kaymayan bir çift spor ayakkabı bulundurun.

Bulutların Üzerinde Bir Gün: Pico do Arieiro

Lavadalardan sonra adanın sunduğu en büyük meydan okuma şüphesiz dağ zirveleridir. Pico do Arieiro’dan başlayıp adanın en yüksek noktası olan Pico Ruivo’ya uzanan yürüyüş yolu, hayatınızda görebileceğiniz en dramatik manzaralardan birine sahip. Sabahın erken saatlerinde, henüz güneş doğmadan zirveye ulaştığınızda, ayaklarınızın altında uzanan bulut denizi size başka bir gezegendeymişsiniz hissi verecektir. Buraya ulaşım için taksiler gidiş-dönüş yüksek ücretler talep edebiliyor. Ancak bütçe bilincine sahip gezginler için harika bir tüyo var: Funchal’dan kalkan yerel transfer şirketleri, sizi sabah erkenden zirveye bırakıp yürüyüşün bittiği noktadan öğleden sonra geri alıyor ve bu hizmet için oldukça makul ücretler talep ediyorlar.

Dik Yamaçlar ve Gün Batımı Noktaları

Madeira’nın yolları, adrenalin seviyenizi biraz yükseltebilir. Adanın dik yamaçları o kadar diktir ki, bazen yokuş yukarı çıkarken gökyüzüne doğru tırmandığınızı hissedersiniz. Bu durum, adayı keşfetmek için araba kiralamayı düşünen bütçe dostu gezginler için önemli bir karar anıdır. Funchal’da araba kiralamak dönemsel olarak değişmekle birlikte bütçenizi zorlayabilir. Üstelik dar ve dikey yollarda manuel vitesli küçük bir arabayla debriyaj canavarı olmak istemiyorsanız, otomatik vites tercih etmeniz gerekir ki bu da maliyeti artırır.

Eğer bütçeniz kısıtlıysa ve araç kullanma stresine girmek istemiyorsanız, adanın mükemmel işleyen sarı renkli belediye otobüsleri en büyük yardımcınız olacaktır. Birkaç Euro gibi küçük ücretlerle Funchal’ın en yüksek noktalarına veya çevre köylere ulaşabilirsiniz. Gün batımı için ise turistlerin akın ettiği cam tabanlı Cabo Girão platformu yerine, Ponta do Sol’daki kayalıkların üzerine tünelden geçerek ulaşacağınız gizli plajı tercih edin. Güneşin okyanusun üzerinde batarken gökyüzünü turuncudan mora boyayışını izlemek burada tamamen ücretsiz ve son derece huzurludur.

Bütçe Dostu Madeira İpuçları

Peki, Madeira’da bir haftalık bütçeyi nasıl planlamalıyız? Sizin için terminal üzerinden hızlıca fikir edinebileceğiniz basit bir bütçe simülasyonu hazırladık. Bu basit yapı sayesinde adadaki temel harcamalarınızı optimize edebilirsiniz.

# Madeira bütçe hesaplayıcı (1 haftalık / Tek Kişi)
declare -A harcamalar=(
  ["hostel_konaklama"]=210      # Funchal ara sokaklarında gecelik ~30 Euro
  ["bolo_do_caco_ve_poncha"]=45  # Yerel büfeler ve barlar
  ["otobus_ve_ulasim"]=30        # Horarios do Funchal kartı ile
  ["levada_ve_doga_aktiviteleri"]=0 # Doğa yürüyüşleri tamamen ücretsiz!
  ["supermarket_alisverisi"]=60   # Pingo Doce market zinciri candır
)

toplam=0
for harcama in "${!harcamalar[@]}"; do
  echo "$harcama: ${harcamalar[$harcama]} EUR"
  toplam=$((toplam + harcamalar[$harcama]))
done

echo "-----------------------------------"
echo "Tahmini Minimum Madeira Bütçesi: $toplam EUR"

Yukarıdaki basit hesaplamada da görebileceğiniz gibi, Madeira pahalı bir destinasyon olmak zorunda değil. Lizbon veya Porto üzerinden aktarmalı uçuşları tercih ederek uçak biletini oldukça uygun fiyatlara yakalamanız mümkün. Adada lüks restoranlar yerine yerel market zinciri olan Pingo Doce’nin sıcak yemek büfelerini tercih ederseniz, öğle yemeklerini harika deniz ürünleriyle son derece ucuza geçiştirebilirsiniz. Madeira, her bütçeye kapısını açan ama sunduğu görsel şölenle paha biçilemez anılar bırakan, keşfedilmeyi sonuna kadar hak eden bir yeryüzü cenneti.

Category: Genel | LEAVE A COMMENT
Haziran 14 2026

Yapay Zeka Ajanları ile E-Fatura ve Zaman Takibi Otomasyonu: Kod Yazmadan Otonom Faturalandırma!

KOBİ’lerin ve serbest çalışanların (freelancer) her ay sonu yaşadığı o büyük sancıyı bilirsiniz: Çalışılan saatleri tek tek kontrol et, Excel dosyalarını eşitle, müşteriye uygun açıklamalar yaz ve nihayetinde faturayı kes. İşte tam bu noktada e-invoicing automation (e-fatura otomasyonu) ve clockify api integration süreçleri devreye giriyor. Peki, klasik kurallı yazılımlar yerine yeni nesil ai agents for invoice çözümlerini kullanırsak ne olur? Bu yazıda, smb automation ekosistemini bir adım öteye taşıyarak llm workflows ile faturalandırma süreçlerini nasıl tamamen otonom hale getirebileceğimizi bizzat test edip inceliyoruz.

Neden Klasik Otomasyon Yetmiyor? (Bağlam ve Sorun)

Geleneksel entegrasyon araçları (Zapier veya Make gibi) harikadır, ancak “aptaldırlar”. Eğer çalışanınız Clockify’a “CSS hatasını düzelttim, kahve içtim” yazdıysa, klasik bir otomasyon bu saçma açıklamayı doğrudan faturaya yansıtır. Müşterinize “kahve içtim” yazan bir fatura göndermek istemezsiniz, değil mi?

İşte LLM ajanlarının (Yapay Zeka Ajanları) fark yarattığı yer burası. Bir LLM ajanı sadece veriyi bir yerden alıp diğerine taşımaz; veriyi anlar, sınıflandırır, profesyonelleştirir ve gerekirse reddedip insandan onay ister. Yani sürece akıl katar.

[Görsel: Clockify verilerinin LLM Agent tarafından analiz edilip e-faturaya dönüştürülme şeması]

Sistem Nasıl Çalışıyor? Adım Adım Mimari

Kurduğumuz sistem oldukça basit bir mantığa dayanıyor. Sistem, zaman takip aracı ile e-fatura sistemimiz arasında bir köprü görevi görüyor. Temel akış şu şekilde:

  1. Veri Çekme: Clockify API’si kullanılarak haftalık/aylık zaman kayıtları çekilir.
  2. LLM Analizi: Çekilen veriler (çalışan adı, proje, harcanan süre, açıklama) LLM ajanına gönderilir.
  3. Anlamlandırma ve Filtreleme: Ajan, fatura edilmeyecek saatleri (örneğin dahili toplantılar) ayıklar. Dağınık girilen açıklamaları profesyonel bir dille (“CSS refactoring and UI optimization” gibi) yeniden yazar.
  4. Fatura Oluşturma: Yapay zeka, yapılandırılmış (structured JSON) veriyi e-fatura sistemine (Xero, Paraşüt, Qonto vb.) göndererek taslak faturayı hazırlar.

Clockify API Entegrasyonu İçin Küçük Bir Kod Örneği

Sistemin kalbinde, Clockify’dan veriyi çeken basit bir API çağrısı yatıyor. Kod gözünüzü korkutmasın; bunu n8n veya Make gibi araçlar içinde tek bir tıkla da yapabilirsiniz:

curl -X GET "https://api.clockify.me/api/v1/workspaces/{workspaceId}/user/{userId}/time-entries" \
  -H "X-Api-Key: YOUR_CLOCKIFY_API_KEY" \
  -H "Content-Type: application/json"

Buradan dönen karmaşık JSON çıktısını doğrudan e-fatura servisine basmak yerine, LLM ajanımızın prompt’una (girdisine) besliyoruz.

Test Sürüşü: Dağınık Veriyi Faturaya Dönüştürmek

Denemek amacıyla, sisteme bilerek oldukça “dağınık” girilmiş bir Clockify zaman kaydı girdik:

  • Girdi:Kerem – 3 saat – Buton rengini değiştirdim, patronla tartıştık ama hallettik.
  • LLM Ajanı Yorumu (Arka Planda): “Patronla tartışma kısmı müşteriye yansıtılmamalı. Buton rengi değişimi ‘Arayüz Geliştirmeleri’ altında sınıflandırılmalı.”
  • Oluşan Fatura Kalemi:UI/UX Frontend Optimization: Button Components – 3 Hours.

Sonuç gerçekten etkileyici. LLM ajanları, bağlamı anlayarak gereksiz detayları eliyor ve faturayı kurumsal bir dille yazıyor.

Karşılaştırma: Klasik Otomasyon vs. Yapay Zeka Ajanı

Hangi yöntemin işletmenize daha uygun olduğunu anlamak için hazırladığımız karşılaştırma tablosuna göz atın:

Özellik Klasik Otomasyon (Zapier/Make) LLM Ajanı (n8n + GPT-4o)
Esneklik Düşük (Sadece katı kurallara uyar) Yüksek (Serbest metinleri anlar ve yorumlar)
Hata Ayıklama Manuel (Hatalı veriyi aynen işler) Otonom (Hatalı/eksik veriyi tespit edip düzeltir)
Kurulum Zorluğu Kolay (Sürükle-bırak) Orta (İyi bir prompt tasarımı gerektirir)
Çeviri Desteği Yok (Ekstra araç gerekir) Doğal (Türkçe girilen kaydı İngilizce faturaya dönüştürür)

[Görsel: LLM Ajanının e-fatura taslağını oluştururken yaptığı analiz adımlarının arayüz ekranı]

Maliyetler ve Ücretsiz Alternatifler

Bu sistemi kurmak servet harcamanızı gerektirmez. İşte kullanabileceğiniz araçlar ve maliyet tablosu:

  • n8n (Ücretsiz / Self-Hosted): Eğer kendi sunucunuza kurarsanız tamamen ücretsizdir. Bulut sürümü aylık 20€’dan başlar. Yapay zeka entegrasyonları için en iyi ücretsiz alternatiftir.
  • OpenAI API / Claude API: Fatura başına harcanan token miktarı çok düşüktür. 100 fatura üretimi yaklaşık 0.10$ – 0.50$ arası bir maliyet oluşturur.
  • Clockify: Temel API erişimi sunan ücretsiz planı bu otomasyon için fazlasıyla yeterli.

Son Söz: Gerçekten İş Görüyor mu?

Yaptığımız testler sonucunda gördük ki; e-invoicing automation sürecine bir LLM katmanı eklemek, özellikle dışarıdan çok fazla yüklenici (contractor) ile çalışan KOBİ’ler için tam bir cankurtaran. Ancak yine de her şeyi yapay zekanın insafına bırakmamak gerekiyor. En mantıklı senaryo, ajanın faturayı hazırlayıp “Taslak” olarak kaydetmesi ve sizin tek bir tıkla onay verip göndermenizdir.

Siz de işletmenizde faturalama süreçlerini otomatikleştirmek istiyorsanız, n8n ve ücretsiz bir OpenAI API anahtarı ile ilk denemenizi hemen bugün yapabilirsiniz!

Category: Genel | LEAVE A COMMENT
Haziran 13 2026

Better Auth: 2026’da Neden NextAuth Yerine Self-Hosted ve Framework-Agnostik Bu Kütüphaneyi Seçmelisiniz?

Hadi dürüst olalım: NextAuth (yeni adıyla Auth.js) v4’ten v5’e geçiş sürecinde saçını başını yolmayan, Vercel middleware’lerinin Edge runtime kısıtlamaları yüzünden uykusu kaçmayan bir DevOps veya SRE mühendisi herhalde yoktur. Modern projelerde web güvenliği ve ölçeklenebilir kimlik doğrulama çözümleri ararken kendimizi sürekli tek bir cloud sağlayıcısının ekosistemine kilitlenmiş buluyoruz. İşte tam bu noktada, 2026 yılı itibarıyla sektörün yeni standardı haline gelen better auth, sunduğu tamamen self-hosted auth odaklı ve framework-agnostik mimarisiyle imdadımıza yetişiyor.

NextAuth Bizi Nerede Yarı Yolda Bıraktı?

NextAuth, Next.js’in yükselişiyle birlikte altın çağını yaşadı. Ancak monolith bir yapıya bürünmesi ve Vercel’in sunucusuz (serverless) dünyasına aşırı optimize edilmesi, bağımsız mimarilerde büyük çatlaklar yarattı.

Neden böyle? Çünkü NextAuth, HTTP isteklerini standart Request/Response API’leri üzerinden soyutlamak yerine, Next.js’in kendi iç mekanizmalarına çok sıkı bağladı. SvelteKit, Astro veya SolidStart gibi modern framework’lerde NextAuth kullanmaya çalıştığınızda, aslında arkada çalışmaması gereken tonla Next.js bağımlılığını da projenize dahil etmiş oluyorsunuz.

Dahası, veritabanı adapter’larının hantal yapısı ve karmaşık ilişkisel modelleri yönetirken çıkardığı zorluklar, production ortamında veritabanı bağlantı havuzlarının (connection pool) hızla tükenmesine yol açıyor. Kubernetes üzerinde koşan stateless bir pod’un, her session doğrulama isteğinde veritabanına doğrudan gitmesi sürdürülebilir bir model değil.

Better Auth ve Getirdiği Paradigma Değişimi

Better Auth, sadece bir başka auth kütüphanesi değil; tamamen TypeScript-first olarak tasarlanmış, runtime bağımsız bir kimlik doğrulama motorudur. Node.js, Bun, Deno veya Cloudflare Workers fark etmeksizin her yerde aynı performansla çalışır.

Framework-Agnostik Mimari

Better Auth, çekirdeğinde standart Web API’lerini (Request, Response, Headers) kullanır. Bu sayede uygulamanızın router katmanına doğrudan entegre olur. Bugün Next.js ile başladığınız bir projeyi yarın Astro veya Nuxt’a taşımak istediğinizde, auth servisinizde tek bir satır iş mantığı (business logic) değiştirmek zorunda kalmazsınız.

Self-Hosted Dostu Yapı

Clerk veya Auth0 gibi SaaS çözümleri başlangıçta tatlı gelse de, kullanıcı sayınız 100k barajını aştığında gelen faturalar ve GDPR/KVKK uyumluluk süreçleri baş ağrıtmaya başlar. Better Auth, verilerinizin ve oturum yönetiminizin tamamen kendi veritabanınızda kalmasını sağlayarak altyapı maliyetlerinizi sıfıra yakınsar.

Veritabanı Entegrasyonu ve Kurulum

Better Auth; Drizzle, Prisma veya Kysely gibi modern araçlarla doğrudan konuşabilir. Aşağıdaki kod bloğunda, Drizzle ORM ve PostgreSQL kullanan modern bir Better Auth konfigürasyonunu inceleyebilirsiniz:

// src/lib/auth.ts
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { db } from "./db"; 
import { user, session, account, verification } from "./schema";

export const auth = betterAuth({
    database: drizzleAdapter(db, {
        provider: "pg",
        schema: {
            user,
            session,
            account,
            verification
        }
    }),
    emailAndPassword: {
        enabled: true,
        autoSignIn: true
    },
    socialProviders: {
        github: {
            clientId: process.env.GITHUB_CLIENT_ID!,
            clientSecret: process.env.GITHUB_CLIENT_SECRET!,
        }
    }
});

Şemalarınızı tanımladıktan sonra Better Auth CLI aracılığıyla migration dosyalarınızı saniyeler içinde oluşturup veritabanınızı güncelleyebilirsiniz:

# Better Auth şemalarını tespit et ve Drizzle dosyalarını oluştur
npx better-auth generate --output ./src/lib/auth-schema.ts
npx drizzle-kit push

DevOps Gözünden: Ölçekleme ve Session Caching

Bir SRE olarak state barındıran servisleri scale etmenin ne kadar sancılı olduğunu bilirsiniz. Better Auth, hem JWT-based (stateless) hem de Database-backed (stateful) session yönetimini destekler. Ancak production ortamında “Active Session” takibi, “Revoke Session” ve WebAuthn (Passkeys) gibi özellikler için stateful veya hibrit bir model tercih edilir.

Redis ile Oturum Belleği Yönetimi

Her gelen istekte veritabanına `SELECT * FROM session` sorgusu atmak, DB connection limitlerinizi tüketebilir. Better Auth, secondary storage katmanı sayesinde oturum bilgilerini Redis üzerinde cache’lemenize izin verir:

// src/lib/auth-with-redis.ts
import Redis from "ioredis";
import { betterAuth } from "better-auth";

const redis = new Redis(process.env.REDIS_URL!);

export const auth = betterAuth({
    // ... db configuration
    secondaryStorage: {
        get: async (key) => await redis.get(key),
        set: async (key, value, ttl) => {
            if (ttl) {
                await redis.set(key, value, "EX", ttl);
            } else {
                await redis.set(key, value);
            }
        },
        delete: async (key) => {
            await redis.del(key);
        }
    }
});

Mikro Servis Olarak Dockerize Etmek

Auth mantığını ana monolith uygulamanızdan ayırıp bağımsız bir mikro servis olarak deploy etmek istiyorsanız, Better Auth bunun için biçilmiş kaftandır. İşte stateless bir Bun runtime üzerinde koşan Dockerfile örneği:

# Multi-stage Dockerfile for Better Auth API Service
FROM oven/bun:1.1-alpine AS base
WORKDIR /app

FROM base AS install
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile

FROM base AS prerelease
COPY --from=install /app/node_modules ./node_modules
COPY . .
ENV NODE_ENV=production
RUN bun build ./src/index.ts --outfile dist/index.js

FROM base AS release
COPY --from=prerelease /app/dist/index.js .
COPY --from=prerelease /app/package.json .
USER bun
EXPOSE 3000
ENTRYPOINT [ "bun", "run", "index.js" ]

NextAuth’tan Canlı Geçiş (Zero-Downtime Migration)

Mevcut ve aktif kullanıcıları olan bir sistemi migrate etmek, havadaki uçağın motorunu değiştirmeye benzer. Sıfır kesintiyle Better Auth’a geçmek için izlemeniz gereken strateji şudur:

1. Şema Dönüşümü

NextAuth şeması ile Better Auth şeması büyük oranda paraleldir. SQL katmanında yazacağınız basit bir migration script’i ile eski session ve user verilerini taşıyabilirsiniz:

-- NextAuth kullanıcılarını Better Auth yapısına aktarma scripti
INSERT INTO "better_auth_user" (id, name, email, "emailVerified", image, "createdAt", "updatedAt")
SELECT 
    id, 
    name, 
    email, 
    "emailVerified", 
    image, 
    COALESCE("createdAt", NOW()), 
    COALESCE("updatedAt", NOW())
FROM "User";

2. Password Hash Uyumluluğu (Argon2id Fallback)

NextAuth genellikle şifreleri bcrypt ile hash’ler. Better Auth ise varsayılan olarak modern Argon2id kullanır. Eski kullanıcıların şifrelerini geçersiz kılmamak için Better Auth’un şifre doğrulama (password verification) aşamasına bcrypt fallback’i ekleyebilir veya migration esnasında eski hash’leri otomatik algılayan bir plugin yazabilirsiniz.

Sonuç: 2026’da Doğru Kararı Vermek

Kimlik doğrulama katmanı, bir web uygulamasının en kritik bileşenidir. NextAuth yıllarca işimizi gördü ancak modern cloud-native yaklaşımlar, containerization ve microservice mimarileri karşısında hantal kalmaya başladı. Better Auth; SRE ekiplerine altyapıyı diledikleri gibi ölçekleme özgürlüğü verirken, yazılım geliştiricilere de framework bağımsız, temiz bir API sunuyor. Eğer projenizin geleceğini sağlama almak istiyorsanız, self-hosted dostu Better Auth’a geçiş planınızı şimdiden yapın.

Category: Genel | LEAVE A COMMENT
Haziran 13 2026

Üç Günlük Emek: Evde Pastane Kalitesinde Kat Kat Kruvasan Yapmanın Püf Noktaları

Pazar sabahı mutfaktan yayılan o taze tereyağı kokusunu hayal edin. Evde kruvasan yapımı kulağa göz korkutucu bir dağa tırmanmak gibi gelebilir; ama aslında bu tamamen bir sabır, zamanlama ve biraz da fizik oyunu. Gerçek bir fransız hamur işi klasiği olan kruvasanın sırrı, o meşhur lamination hamur tekniği (katlama) ve tereyağının hamur katmanları arasında erimeden kalmasında gizli. Hazır satılan milföy kruvasan pratikliğini bir kenara bırakıp, mutfakta gerçek bir zanaatkar gibi hissetmeye ne dersiniz?

Porsiyon: 8-10 adet
Hazırlık Süresi: 3 gün (çoğunlukla dinlendirme)
Pişirme Süresi: 20 dakika

Neden Üç Gün?

“Neden bu kadar uzun sürüyor?” sorusu çok haklı bir isyan. Cevap basit: Glüten kontrolü ve tereyağı yönetimi. Unun içindeki glütenin gevşemesi için hamurun soğukta dinlenmesi gerekir. Eğer hamuru aceleyle açmaya çalışırsanız geri büzülür. İkinci neden ise tereyağının hamurla aynı sertlikte kalması gerekliliği. Fırına girdiğinde tereyağının içindeki su buharlaşır, hamur katmanlarını yukarı iter ve o meşhur “göz göz” (alveol) yapıyı oluşturur. Acele ederseniz tereyağı hamura karışır ve elinizde kat kat bir kruvasan değil, lezzetli ama sıradan bir poğaça kalır.

Malzemeler

Kruvasan az malzemeyle yapılır ama malzemelerin kalitesi sonucu doğrudan etkiler.

  • 500 gr ekmeklik un (Alternatif: Yüksek proteinli çok amaçlı un)
  • 60 gr toz şeker
  • 10 gr tuz
  • 10 gr instant maya (Alternatif: Yarım paket yaş maya)
  • 150 ml soğuk su
  • 120 ml soğuk süt
  • 50 gr oda sıcaklığında tereyağı (Hamur içine)
  • 250 gr soğuk tereyağı (Turlama/Lamination için – en az %82 yağ oranlı profesyonel tereyağı tercih edilmeli)
  • 1 adet yumurta sarısı (Üzerine sürmek için)

Adım Adım Kruvasan Yapılışı

1. Gün: Hamurun Yoğrulması (Détrempe)

  1. Un, şeker, tuz ve instant mayayı karıştırın. Soğuk su, soğuk süt ve 50 gr yumuşak tereyağını ekleyerek pürüzsüz bir hamur elde edene kadar yoğurun.
  2. Hamuru dikdörtgen formuna getirip streç filme sarın ve en az 12 saat (tercihen bir gece) buzdolabında dinlendirin.

2. Gün: Lamination Hamur Tekniği

  1. 250 gram soğuk tereyağını iki yağlı kağıt arasında merdaneyle ezerek 15×15 cm boyutlarında düzgün bir kare haline getirin ve buzdolabına kaldırın.
  2. Dinlenen hamurunuzu unlu tezgahta 30×15 cm boyutlarında bir dikdörtgen olacak şekilde açın.
  3. Soğuk tereyağı karesini hamurun tam ortasına yerleştirin. Hamurun iki ucunu tereyağının üzerinde mektup zarfı gibi birleştirip kenarlarını sıkıca kapatın.
  4. Hamuru merdaneyle nazikçe boyuna doğru uzatın. Üç kat olacak şekilde katlayın (tekli tur). Streçleyip buzdolabında 1 saat dinlendirin. Bu katlama işlemini gün içinde toplamda 3 kez tekrarlayın ve her seferinde hamuru dolapta en az 1 saat dinlendirin. Son turdan sonra hamuru ertesi güne kadar dolapta bırakın.

3. Gün: Şekillendirme ve Pişirme

  1. Dinlenen hamuru tezgahta 4 mm kalınlığında büyük bir dikdörtgen şeklinde açın.
  2. Taban genişliği 9 cm, yüksekliği 25 cm olacak şekilde uzun üçgenler kesin.
  3. Üçgenlerin geniş tabanına küçük bir çentik atıp, dışa doğru hafifçe esneterek rulo şeklinde sarın.
  4. Fırın tepsisine dizdiğiniz kruvasanları oda sıcaklığında (yaklaşık 24-25 derecede) 2-2.5 saat iki katına çıkana kadar mayalandırın. (Sıcak ortam tereyağını eritir, dikkat!)
  5. Üzerlerine fırça yardımıyla nazikçe yumurta sarısı sürün. 200 dereceye ısıtılmış fırında, altı ve üstü altın sarısı olana kadar yaklaşık 18-20 dakika pişirin.

Püf Noktası

Kruvasan yaparken mutfağın ısısı hayati önem taşır. Eğer mutfağınız 25 dereceden sıcaksa tereyağı hızla eriyecektir. Böyle durumlarda tezgahı ve merdaneyi soğuk suyla silip kurulamak harika bir kurtarıcı yöntemdir. Ayrıca katlama aşamalarında hamurun yırtılmamasına özen gösterin; eğer tereyağı dışarı sızarsa o bölgeye hafifçe un serpiştirip hamuru hemen buzluğa atarak 10 dakika şoklayın.

Category: Genel | LEAVE A COMMENT