Mayıs 8 2026

Pomodoro Değil: Derin Çalışma İçin Cal Newport Yöntemi

Gün boyu durmaksızın çalışıyor ama günün sonunda hiçbir şeyi tam olarak bitirememiş gibi mi hissediyorsunuz? Bildirimler, e-postalar ve bitmek bilmeyen toplantılar arasında kaybolurken, geleneksel yöntemler de yetersiz kalabiliyor. İşte tam bu noktada, modern dünyada kaybolan zihinsel gücümüzü geri kazanmak için harika bir life hack olarak karşımıza çıkan deep work (derin çalışma) kavramı devreye giriyor. Cal Newport’un popülerleştirdiği bu yöntem, sadece bir zaman yönetimi aracı değil; aynı zamanda beynimizin odak kasını geliştirmek için tasarlanmış, zihinsel sağlığımızı koruyan bir antrenman metodudur.

Neden Pomodoro Her Zaman Yetmez? (Zihinsel Isınma Süresi)

Birçoğumuz 25 dakika çalışıp 5 dakika dinlenmeyi öngören Pomodoro tekniğini denemiştir. Ancak karmaşık, derin düşünme gerektiren yaratıcı veya teknik işlerde bu süre henüz “ısınmamıza” bile yetmez. Beynimiz karmaşık bir probleme odaklanırken adeta bir motor gibi yavaş yavaş ısınır. Araştırmalar gösteriyor ki, bölünmeden bir konuya odaklanmak ve gerçek verimliliğe ulaşmak için beynin en az 20-30 dakikalık kesintisiz bir süreye ihtiyacı vardır.

Burada devreye giren en büyük düşmanımız ise “dikkat kalıntısı” (attention residue). Yapılan bilimsel araştırmalar, odağımızı bir işten diğerine (örneğin gelen bir mesaja bakmak için) her kaydırdığımızda, dikkatimizin bir kısmının önceki işte kaldığını kanıtlıyor. Sonuç mu? Sürekli bölünen, gün sonunda ise yorgun ama hiçbir şey üretememiş bir zihin.

Deep Work Nedir ve Beynimize Ne Yapar?

Deep work, dikkatinizin dağılmadığı bir ortamda, bilişsel yeteneklerinizin sınırlarını zorlayarak gerçekleştirdiğiniz profesyonel çalışma faaliyetleridir. Bu süreç sadece daha fazla iş yapmanızı sağlamaz, aynı zamanda beyninizin biyolojik yapısını da korur.

Nörobilimsel araştırmalar gösteriyor ki, bir konuya yüksek odaklanma ile yoğunlaştığımızda, beynimizdeki ilgili sinir yollarının etrafında miyelin adı verilen koruyucu bir kılıf oluşur. Miyelin tabakası kalınlaştıkça, sinirsel sinyaller daha hızlı iletilir ve o konuda daha hızlı uzmanlaşırız. Yani derin çalışma yapmak, beyninizi fiziksel olarak daha akıllı ve hızlı hale getiren bir zihinsel spordur.

Derin Çalışmayı Hayatınıza Entegre Etmek İçin 4 Adım

Cal Newport’un stratejilerini hayatımıza uygulamak, her gün saatlerce kendimizi odaya kilitlemek anlamına gelmez. İşte eyleme geçirilebilir pratik adımlar:

1. Kendi Ritüelinizi Yaratın

Derin çalışmaya başlamadan önce beyninize “Şimdi odaklanma zamanı” sinyali gönderecek küçük ritüeller belirleyin. Bu, masanızı temizlemek, belirli bir çalma listesini açmak veya kendinize bir fincan kahve yapmak olabilir. Beyin bu rutinleri gördüğünde otomatik olarak vites yükseltmeye başlar.

2. Can Sıkıntısını Kucaklayın

Modern insan olarak en büyük sorunumuz, en ufak bir boşlukta (kuyrukta beklerken, asansörde) telefona sarılmak. Beynimiz sürekli dopamin bombardımanına alışırsa, derin çalışmanın gerektirdiği “sakin ve sıkıcı” ilk 15 dakikaya tahammül edemez. Gün içinde bazen sadece durun ve hiçbir şey yapmayın. Bırakın zihniniz can sıkıntısıyla baş etmeyi öğrensin.

3. Dijital Minimalizm Uygulayın

Çalışırken telefonunuzu sadece sessize almak yetmez, odanın dışına çıkarın. Görüş alanınızda duran bir telefon, kapalı olsa bile beynimizin bir kısmını meşgul etmeye (onu kontrol etme dürtüsünü bastırmaya çalışırken zihinsel enerji harcamaya) devam eder.

4. Time-Blocking (Zaman Bloklama) Yöntemini Kullanın

Günlük planınızı yaparken sadece yapılacaklar listesi hazırlamayın. Hangi saatte hangi işi yapacağınızı takviminize bloklar halinde işleyin. Aşağıda basit bir zaman bloklama şablonu görebilirsiniz:


# Günlük Odak ve Çalışma Blokları
09:00 - 11:30 | [Derin Çalışma] - Telefonsuz, İnternetsiz Odaklanma
11:30 - 12:00 | [Sığ Çalışma] - E-postalar ve Slack Mesajları
12:00 - 13:00 | [Öğle Arası] - Ekran Yok, Zihinsel Dinlenme
13:00 - 15:00 | [Derin Çalışma] - Zor Projeler
15:00 - 17:00 | [Sığ Çalışma] - Toplantılar ve Rutin İşler
17:00 - 17:15 | [Kapatma Ritüeli] - Günü Bitir, Kafayı Boşalt

Önemli Uyarı: Deep work, yüksek düzeyde zihinsel enerji gerektirir. Günde 4 saatten fazla tam odaklanma gerçekleştirmek insan limitlerinin üzerindedir. Eğer kendinizi kronik olarak yorgun, tükenmiş hissediyorsanız veya odaklanma sorununuz günlük hayatınızı sekteye uğratacak boyuttaysa, bu durum kronik stres veya tıbbi bir durumun belirtisi olabilir. Lütfen bir doktora veya uzmana danışmayı ihmal etmeyin.

Sonuç: Kaliteli Üretim, Huzurlu Zihin

Günün sonunda deep work, sadece daha çok iş üretmenizi sağlayan soğuk bir verimlilik taktiği değildir. Aksine, işinizi bitirip bilgisayarı kapattığınızda, aklınızın arkasında yarım kalmış işlerin dönmediği, sevdiklerinize ve kendinize gerçekten vakit ayırabildiğiniz huzurlu bir yaşamın anahtarıdır. Bugün kendinize sadece 60 dakikalık kesintisiz bir blok ayırarak başlayın. Beyninizin bu zihinsel antrenmana nasıl olumlu yanıt verdiğini görünce şaşıracaksınız.

Category: Genel | LEAVE A COMMENT
Nisan 30 2026

Japonya İlk Kez: Tokyo’dan Kyoto’ya 10 Günlük Rehber

Hayatınızda bir kez bile olsa asia (Asya) kıtasının o kendine has, mistik ve ultramodern havasını solumak istiyorsanız, rotayı çevireceğiniz ilk yer kesinlikle Japonya olmalı. Bu büyüleyici ülkeye adım attığınız an, zaman algınızın nasıl büküldüğünü kendi gözlerinizle göreceksiniz. Özellikle ilk kez gidenler için klasik ama asla eskimeyen Tokyo ve Kyoto hattı, bir tarafta gökdelenlerin neon ışıkları altında kaybolurken diğer tarafta tapınakların sessizliğinde kendinizi bulacağınız benzersiz bir seyahat deneyimi sunuyor. Peki ama bu pahalı rüyayı bütçeyi sarsmadan, bir yerel gibi yaşamak nasıl mümkün? Gelin, sokak aralarından bütçe dostu tüyolara uzanan 10 günlük maceramıza başlayalım.

Kültür Şokunu Yumuşatmak: Tokyo Sokaklarında İlk Günler

Narita veya Haneda Havalimanı’na indiğinizde sizi karşılayan o steril, sessiz ve düzenli hava ilk başta biraz ürkütücü gelebilir. Telaşlanmayın, burası dünyanın en güvenli ve yabancı dostu coğrafyalarından biri. Tokyo’da ilk üç gününüzü şehrin farklı karakterdeki mahallelerini keşfetmeye ayırın. Turistik rehberlerin ilk sıraya koyduğu Shibuya Crossing’in kalabalığına karışmak elbette eğlenceli, ancak gerçek Tokyo’yu hissetmek için yönünüzü Koenji veya Yanaka bölgelerine çevirmelisiniz. Yanaka, İkinci Dünya Savaşı’ndan zarar görmeden kurtulmuş eski ahşap evleri ve sokak kedileriyle size adeta 1950’lerin Japonya’sını yaşatacak.

Şehir içi ulaşım ilk başta bir labirent gibi görünebilir. JR hatları, Tokyo Metro ve Toei Subway derken kendinizi kaybolmuş hissedebilirsiniz. Ancak teknolojinin nimetlerinden faydalanarak bu karmaşayı kolayca çözebilirsiniz. Telefonunuza indireceğiniz dijital ulaşım kartları sayesinde turnikelerden saniyeler içinde geçebilirsiniz.

Ulaşım kartınızı (Suica veya Pasmo) telefonunuzun cüzdan uygulamasına ekleyerek fiziksel kart depozitosundan kurtulabilirsiniz. Ayrıca anlık döviz çevrimleri ve bütçe kontrolü için terminal meraklıları terminal üzerinden şu basit komutla güncel yen kurunu kontrol edebilir:

curl -s "https://open.er-api.com/v6/latest/USD" | jq '.rates.JPY'

Tokyo’da konaklama bütçesini düşürmenin en akıllıca yolu, Shinjuku gibi merkezi istasyonların hemen bir durak uzağındaki “business” otellerini tercih etmektir. Sotetsu Fresa Inn veya APA Hotel gibi zincirler, metrekare olarak küçük ama fonksiyonellik olarak kusursuz odaları gecelik ortalama 70 ila 90 Dolar arasında sunar. Bu oteller temizlik standartlarıyla lüks segmenti aratmaz.

JR Pass Hesabı: Shinkansen Gerçekleri

Japonya seyahatlerinin bir dönem vazgeçilmezi olan JR Pass, yapılan büyük zamlardan sonra artık her rota için mantıklı değil. Eğer sadece Tokyo ve Kyoto arasında gidip gelecekseniz, tüm ülkeyi kapsayan o pahalı kartı almanıza hiç gerek yok. Tokyo’dan Kyoto’ya Shinkansen (hızlı tren) ile gitmek yaklaşık iki saat on beş dakika sürüyor. Nozomi sınıfı en hızlı tren için tek yön bilet fiyatı yaklaşık 14.000 Yen, yani güncel kurla 90 Dolar civarında. Gidiş-dönüş biletinizi istasyondaki yeşil bilet makinelerinden veya resmi web sitesinden kolayca alabilirsiniz.

Neden Shinkansen derseniz, bu sadece bir ulaşım aracı değil, aynı zamanda Japon kültürünün bir parçasıdır. Trene binmeden önce istasyondan alacağınız “Ekiben” adı verilen yerel bento kutularıyla yolculuğu bir lezzet şölenine dönüştürebilirsiniz. Saatte 320 kilometre hızla giderken Fuji Dağı’nı izlemek, yolculuğun en unutulmaz anlarından biri olacak.

Kyoto: Zamanın Durduğu Eski Başkent

Kyoto’ya vardığınızda modern dünyanın gürültüsü aniden bıçak gibi kesilir. Ahşap Machiya evleri, dar sokaklarda süzülen geyşalar ve bambu ormanları sizi karşılar. Ancak burası da aşırı turizmden nasibini almış durumda. Bu yüzden en önemli tüyo, biyolojik saatinizi biraz erkene ayarlamaktır. Fushimi Inari Tapınağı’nın o meşhur binlerce kırmızı kapısı (Torii) arasında tek başınıza yürümek istiyorsanız, sabah saat sabah 06.00’da orada olmalısınız. Saat 09.00 olduğunda burası bir turist panayırına dönüşüyor ve mistik havadan eser kalmıyor.

Kyoto’da konaklama için geleneksel bir Ryokan (Japon hanı) deneyimi yaşamak isteyebilirsiniz. Ancak bütçeniz kısıtlıysa, geleneksel mimariye sahip hostel-guesthouselar harika birer alternatiftir. Gecelik 30-40 Dolar bandında, tatami minderleri üzerinde uyuyabileceğiniz ve yerel gezginlerle sosyalleşebileceğiniz son derece temiz mekanlar bulabilirsiniz.

Ucuz ve Gurme: Japonya’da Ne Yenir?

Japonya’da aç kalma korkusu, buraya ayak bastığınız ilk saatte yok olur. Üstelik kaliteli yemek için servet ödemenize gerek yok. Konbini adı verilen ve 7-Eleven, Lawson, FamilyMart gibi markalardan oluşan 24 saat açık marketler, ülkenin gizli gastronomi mabetleridir. Sabahları taze yapılmış Onigiri (yosuna sarılı pirinç topları) ve sıcak bir kahve ile sadece 3 Dolar gibi komik bir rakama kahvaltı edebilirsiniz. Lawson’ın efsanevi çıtır tavuğu Karaage-kun ise her bütçe dostu gezginin favorisidir.

Akşam yemekleri için ise yönünüzü maaşlı çalışanların (salaryman) iş çıkışı uğradığı sokak arası lokantalarına çevirin. Yoshinoya veya Matsuya gibi zincirlerde, üzerine ince dilimlenmiş et konmuş sıcak pirinç kaseleri (Gyudon) yaklaşık 5 Dolar civarındadır. Unutmayın, en lezzetli ramen dükkanları genellikle kapısında sadece birkaç kişinin beklediği, siparişin içerideki eski bir bilet makinesinden verildiği o küçük, salaş dükkanlardır.

Japonya’da bahşiş kültürü kesinlikle yoktur. Masada bırakacağınız ekstra para bir unutkanlık olarak algılanır ve garson arkasından size parayı geri vermek için koşabilir. Hizmet kalitesi zaten fiyata dahildir ve her zaman en üst seviyededir.

Bu 10 günlük yolculuğun sonunda, sadece yeni yerler görmüş olmayacaksınız. Zamanın ritmine saygı duymayı, sessizliğin içindeki huzuru ve detayların hayatı nasıl güzelleştirdiğini öğrenmiş olarak evinize döneceksiniz. Tokyo’nun çılgın ritmi ile Kyoto’nun dinginliği arasındaki o ince çizgide yürümek, hayatınız boyunca unutamayacağınız bir dönüşüm hikayesine dönüşecek.

Category: Genel | LEAVE A COMMENT
Nisan 16 2026

İstanbul’u Yerli Gibi Gezmek: Turistlerin Bilmediği Keşif Rotaları

Hayatımda kaç kez İstanbul sokaklarında kaybolduğumu hatırlamıyorum. Her köşesinde yeni bir hikaye barındıran bu şehirde, gerçek bir keşif yapmak için turistik broşürleri bir kenara bırakmak gerekiyor. Çünkü gerçek bir İstanbul deneyimi, Sultanahmet kuyruklarında veya İstiklal Caddesi’nin kalabalığında değil, sabahın ilk ışıklarıyla uyanan kadim semtlerin ara sokaklarında gizlidir. Bu yazıda, Türkiye genelinde görebileceğiniz en büyüleyici metropolü bütçenizi yormadan, yerli bir gezgin gibi yaşamanın sırlarını ve benzersiz bir gezi rotasını paylaşacağım. Hazırsanız, klişelerden uzak bir seyahat macerasına başlıyoruz.

Sabahın İlk Işıklarıyla Uyanmak: Kuzguncuk ve Kurtuluş’un Ruhu

İstanbul’un gerçek karakterini anlamak için güne çok erken başlamalısınız. Şehir henüz tam olarak uyanmamışken, martı çığlıkları ve uzaktan gelen vapur düdükleri eşliğinde sokaklara çıkmanın keyfi bambaşkadır. Sabah ezanıyla birlikte uyanıp kendinizi Kuzguncuk’un tarihi sokaklarına attığınızda, zamanın burada daha yavaş aktığını hissedeceksiniz. Üsküdar’dan yürüyerek yaklaşık yirmi dakikada ulaşabileceğiniz bu semt, yan yana duran camisi, kilisesi ve sinagoguyla eski İstanbul’un hoşgörüsünü hala yaşatır.

Güne tarihi Kuzguncuk Fırını’ndan alacağınız taze bir simit ve hemen yanındaki kahvehaneden söyleyeceğiniz demli bir çayla başlamak en büyük lüksünüz olacak. Bu mütevazı kahvaltının maliyeti yaklaşık elli Türk Lirası civarındadır. Buradan sonra rotanızı hemen karşı yakaya, Kurtuluş’a çevirebilirsiniz. Şehrin en eski kozmopolit semtlerinden biri olan Kurtuluş, sabah saatlerinde fırınlarından yayılan anasonlu çörek kokularıyla sizi karşılar. Pangaltı metro durağından sadece on dakikalık bir yürüyüşle ulaşabileceğiniz bu semtte, yerel şarküterilerden alışveriş yapan teyzelerin tatlı telaşına ortak olabilirsiniz.

İstanbul’da toplu taşıma kullanırken mutlaka bir İstanbulkart edinin. Temassız kredi kartları da geçiyor ancak İstanbulkart ile aktarma indirimlerinden yararlanarak ulaşım bütçenizi yarı yarıya düşürebilirsiniz. Bir geçiş yaklaşık yirmi lira civarındadır.

Karaköy’ün Turist Akınından Uzak Lezzet Noktaları

Karaköy denildiğinde akla hemen üçüncü nesil kahveciler ve tasarım butikleri geliyor. Ancak bu modern kabuğun hemen altında, liman işçilerinin ve esnafın yıllardır uğradığı gerçek lezzet durakları gizli. Galata Köprüsü’nün hemen ayağındaki balık pazarının arkasına doğru saptığınızda, kendinizi bambaşka bir dünyada bulursunuz. Burada, gösterişli tabelaları olmayan ama önünde her daim kuyruk olan küçük esnaf lokantaları yer alır.

Örneğin, yarım asırlık geçmişiyle Nato Lokantası, öğle saatlerinde çevredeki esnafın ve bütçe bilincine sahip yerel halkın sığınağıdır. Burada yiyeceğiniz mevsim sebzeli bir tencere yemeği ve yanındaki buz gibi ayran, size lüks restoranlarda bulamayacağınız o samimi ev yemeği tadını sunar. Üstelik bu doyurucu deneyim için ödeyeceğiniz hesap, turistik bir kafedeki tek bir fincan kahve fiyatıyla neredeyse aynıdır. Yemek sonrası tatlı niyetine, Karaköy’ün ara sokaklarındaki seyyar halka tatlıcılardan sıcak bir halka tatlısı almak ise buranın yazısız kuralıdır.

Boğaz’ın Az Bilinen Sakin Koyları ve Yeniköy

Boğaz havası almak için herkesin aklına ilk olarak Bebek veya Ortaköy gelir. Haliyle bu semtler her zaman kalabalık, gürültülü ve pahalıdır. Oysa ki Boğaz’ın kuzeyine doğru çıktıkça, doğanın ve denizin sesini duyabileceğiniz o huzurlu koylar başlar. Benim bu konudaki favorim kesinlikle Yeniköy’dür. Tarabya ve İstinye arasında sıkışmış bu sakin semt, adeta bir sahil kasabası havası taşır.

Yeniköy’e ulaşmak için Hacıosman metro durağından kalkan otobüsleri kullanabilir ve yaklaşık on beş dakikada sahile inebilirsiniz. Burada, tarihi yalıların gölgesinde yürüyüş yapabilir, denize sıfır banklarda oturup kitabınızı okuyabilirsiniz. Eğer bütçenizi zorlamadan deniz kenarında vakit geçirmek isterseniz, belediyeye ait sosyal tesisler harika bir kurtarıcıdır. Çok uygun fiyatlara çayınızı yudumlarken, akıntıyla birlikte süzülen dev şilepleri izlemenin keyfi paha biçilemez.

Adalar’da Rüzgara Karşı: Burgazada Bisiklet Rotası

Büyükada’nın kalabalığı ve turistik koşturmacası bazen yorucu olabilir. Gerçek bir adalı gibi hissetmek ve doğayla baş başa kalmak istiyorsanız vapurdan Burgazada’da inmelisiniz. Kadıköy veya Kabataş’tan kalkan Şehir Hatları vapurlarıyla yaklaşık bir saatlik keyifli bir yolculuğun ardından adaya ulaşabilirsiniz. Vapur biletleri ekonomik ve deniz yolculuğu zaten kendi başına harika bir terapi.

Burgazada’ya adım atar atmaz iskelenin hemen yanındaki bisikletçilerden bir saatliği yüz-yüz elli lira civarında olan bisikletlerden kiralayın. Adanın dik yokuşlarını tırmanırken zorlanabilirsiniz ama Kalpazankaya’ya giden o çam kokulu toprak yola girdiğinizde tüm yorgunluğunuz uçup gidecek. Yol boyunca sol tarafınızda uzanan uçsuz bucaksız mavi, sağ tarafınızda ise adanın sessiz çam ormanları size eşlik edecek. Yolun sonundaki koyda durup, yanınızda getirdiğiniz termos bardağındaki kahveyi yudumlamak, bu seyahatin en unutulmaz anı olacaktır.

Burgazada’da bisiklet kiralarken mutlaka frenleri ve lastik basınçlarını kontrol edin. Adanın yokuşları oldukça diktir ve özellikle inişlerde güvenliğiniz için iyi çalışan frenler hayati önem taşır. Ayrıca hafta sonu yoğunluğundan kaçınmak için bu geziyi hafta içi bir güne planlamanızı öneririm.

Gezginin Dijital Araç Çantası

İstanbul gibi dinamik bir şehirde anlık kararlar vermek gerekebilir. Ulaşım hatlarını kontrol etmek ve bütçenizi planlamak için terminal üzerinden hızlıca kontrol yapabileceğiniz küçük bir script hazırladım. Gezgin ruhlu yazılımcılar seyahat planlaması yaparken bu basit aracı kullanabilirler:

# İstanbul bütçe dostu rota hesaplama aracı
curl -s https://api.kertenkerem.net/v1/istanbul-escape-plan \
  -H "X-Traveler-Type: budget-conscious" \
  -H "X-Preferred-Zone: non-touristic" \
  | jq '.routes[] | {destination: .name, estimated_cost_try: .cost, transport_method: .transport}'

İstanbul, onu anlamak için zaman ayıranlara cömert davranan bir şehirdir. Popüler mekanların yapay ışıltılarından sıyrılıp, sokak aralarındaki o samimi yaşamlara dokunduğunuzda, bu şehrin neden yüzyıllardır insanları büyülediğini çok daha iyi anlayacaksınız. Bir sonraki seyahatinizde haritayı kapatın, kalabalığı değil kendi merakınızı takip edin.

Category: Genel | LEAVE A COMMENT
Nisan 2 2026

Kapadokya’da 3 Gün: Balon, Peri Bacaları ve Gizli Kafeler

Türkiye topraklarının belki de en masalsı köşesi olan Kapadokya, her gezginin hayatında en az bir kez görmesi gereken bir yer. Ancak bu benzersiz coğrafyaya yapılacak bir seyahat planı, popüler kültürün ve Instagram estetiğinin yarattığı yanılsamalar yüzünden bazen bütçenizi zorlayabilir. Endişelenmeyin; bu gezi rehberinde, sabahın erken saatlerinde gökyüzünü süsleyen o meşhur sıcak hava balon uçuşlarını izlemenin en ekonomik yollarından saklı vadilerdeki lokal lezzetlere kadar, 3 günlük alternatif bir rota çizeceğiz. Klişeleri bir kenara bırakıp, bu topraklara hak ettiği derinlikle bakacağız.

Kapadokya’ya ulaşım genellikle Kayseri veya Nevşehir havalimanları üzerinden sağlanıyor. Eğer bütçe bilincine sahip bir gezginseniz, Kayseri Havalimanı’ndan Göreme’ye giden paylaşımlı transfer araçlarını (shuttle) tercih etmek en mantıklısı. Yaklaşık 1 saat süren bu yolculuk kişi başı 200-250 TL civarında tutuyor. Özel taksilerin fahiş fiyatlarına kıyasla bu, seyahatinize oldukça ekonomik bir başlangıç yapmanızı sağlıyor. Konaklama için ise Göreme’nin merkezindeki devasa lüks oteller yerine, Ortahisar veya Uçhisar’daki yerel pansiyonları seçmek hem bütçenizi koruyor hem de size daha samimi bir ev sahipliği sunuyor.

1. Gün: Gökyüzünde Dans ve Vadilerin Sessizliği

Balon İzlemenin En İyi (ve Ücretsiz) Tepesi

Sabahın ilk ışıklarıyla uyanmak bu coğrafyanın yazılmamış kuralıdır. Eğer kişi başı 150 ile 250 Euro arasında değişen balon uçuşlarına bütçe ayırmak istemiyorsanız, üzülmeyin. Balonları havadan izlemek kadar, onları yerden yükselirken seyretmek de büyüleyici bir deneyimdir. Çoğu turist Göreme’deki “Aydın Kırağı” tepesine yığılırken, siz rotanızı Kızılçukur Vadisi’ne (Red Valley) çevirin. Buraya giriş ücreti araç başı sadece 50 TL civarında. Vadinin sessizliğinde, rüzgarın fısıltısıyla birlikte yükselen yüzlerce balonu izlemek, kendinizi bir film sahnesinde hissettirecek.

Balonların uçup uçmayacağını anlamak için her sabah sivil havacılığın sitesini yenilemek yerine, rüzgar hızını terminalden kontrol eden küçük bir script yazmıştım. Rüzgar hızı saatte 10-11 kilometrenin altındaysa, o sabah gökyüzü şenlenecek demektir:

curl -s "https://api.open-meteo.com/v1/forecast?latitude=38.6431&longitude=34.8289&current=wind_speed_10m" | jq .current.wind_speed_10m

Kılıçlar Vadisi’nde Kaybolmak

Öğleden sonra Göreme Açık Hava Müzesi’ne doğru yola çıkıyoruz. Müzekart’ınızın yanınızda olduğundan emin olun, çünkü kartınız yoksa giriş ücreti yabancı turist tarifesine yakın bir seviyede bütçenizi sarsabilir. Ancak bizim asıl hedefimiz müzenin hemen karşısında yer alan ve pek az turistin adım attığı Kılıçlar Vadisi. Burası, peri bacalarının arasından süzülen patikalarıyla yürüyüş yapmayı sevenler için tam bir cennet. Hiçbir ücret ödemeden, bin yıllık kaya kiliselerini kendi başınıza keşfetmenin tadını çıkarın. Akşamüstü yorgunluğunuzu atmak için Göreme merkezindeki Nazar Börek Salonu’na uğrayıp yerel halkın arasında demli bir çay için.

2. Gün: Yerin Altındaki Tarih ve Sessiz Rotalar

Derinkuyu’nun Labirentlerinde Zaman Yolculuğu

İkinci günümüzde rotamızı yerin altına, binlerce yıl önce insanların sığınak olarak inşa ettiği devasa şehirlere çeviriyoruz. Kapadokya’da birçok yeraltı şehri var ancak Derinkuyu ve Kaymaklı en bilinenleri. Biz, derinliğiyle insanı hayrete düşüren Derinkuyu’yu tercih ediyoruz. Göreme’den buraya ulaşmak için önce Nevşehir merkeze giden dolmuşlara binmeli, oradan da Derinkuyu dolmuşuna aktarma yapmalısınız. Bu toplu taşıma macerası toplamda 1,5 saat sürüyor ve kişi başı maliyeti 70 TL’yi geçmiyor.

Müze Kart burada da geçerli. Yer altına inmeden önce yanınıza mutlaka ince bir hırka alın; dışarısı ne kadar sıcak olursa olsun, yerin altı her mevsim serindir. Ayrıca klostrofobiniz varsa, tünellerin daraldığı noktalarda kendinizi hazırlamanızda fayda var.

Yer altı şehrinin mistik havasından çıktıktan sonra, hemen yakınlardaki yerel fırınlardan birine uğrayıp taze Nevşehir simidi alın. Bu simit, bildiklerimizden farklı olarak patates mayasıyla yapılır ve inanılmaz doyurucudur. Sadece 15 TL’ye harika bir öğle atıştırmalığı elde etmiş olursunuz. Eğer vaktiniz kalırsa, dönüş yolunda eski bir Rum köyü olan Mustafapaşa’ya (Sinasos) uğrayın. Burası, taş işçiliğiyle büyüleyen konakları ve sakin sokaklarıyla adeta zamanın durduğu bir yerdir.

3. Gün: Ürgüp’ün Saklı Lezzetleri ve Gün Batımı

Klişelerden Uzak Bir Akşam Yemeği

Üçüncü günümüzü Ürgüp ve çevresine ayırıyoruz. Ürgüp, hareketli yapısıyla dikkat çeker ama ara sokaklarında kaybolduğunuzda bambaşka bir yüzünü gösterir. Öğle yemeği için büyük ve gösterişli restoranlar yerine, asma yapraklarının gölgesindeki küçük esnaf lokantalarını arayın. Örneğin, Ürgüp’ün eski mahallelerinde yer alan ve yerel kadınların işlettiği minik ev yemekleri dükkanlarında, Kapadokya’nın ünlü testi kebabını veya “kuru kayısı yahnisi” gibi otantik lezzetleri çok daha uygun fiyatlara tadabilirsiniz. Bir porsiyon yerel yemek ve yanındaki ev yapımı ayran için ödeyeceğiniz tutar yaklaşık 250-300 TL olacaktır.

Ortahisar’da Güne Veda Etmek

Seyahatimizi sonlandırırken, kalabalıklardan uzaklaşmak ve sakin bir gün batımı izlemek için Ortahisar Kalesi’nin eteklerine gidiyoruz. Uçhisar Kalesi kadar popüler olmadığı için burası çok daha sakin ve huzurludur. Kalenin çevresindeki kayadan oyma kafelerden birine oturun. Burada yerel üzümlerden yapılan sıcak şarapları veya taze demlenmiş bitki çaylarını yudumlarken, güneşin peri bacalarını kızıla boyamasını izleyin.

Kapadokya’nın gerçek ruhu, işte o sessiz anda, rüzgarın vadideki fısıltısında gizlidir. Kendi ritminizde, yerel halka karışarak yaptığınız bu seyahat, size sadece harika fotoğraflar değil, ömür boyu unutulmayacak hikayeler bırakacak. Eve dönüş yolunda cebinizde kalan parayı ve ruhunuzda biriken huzuru düşündüğünüzde, neden buraya tekrar gelmek isteyeceğinizi çok iyi anlayacaksınız.

Category: Genel | LEAVE A COMMENT
Şubat 5 2026

Bash’te Hata Yönetimi: set -euo pipefail, Trap ve Bats ile Defansif Scripting

Gece saat 03:00. PagerDuty çalıyor. Sorun: Kubernetes cluster’ına yeni bir deployment çıkılırken pipeline yarıda kalmış ama deploy başarılıymış gibi davranıp eski stabil replicaları da temizlemiş. Loglara bakıyorsunuz; kritik bir environment variable tanımlanmadığı için script sessizce patlamış, fakat exit code 0 döndüğü için CI/CD pipeline’ı her şeyin yolunda olduğunu varsayarak devam etmiş. Hepimiz bu filmi en az bir kere izledik. Günümüz modern altyapılarında bash scripting ve linux tabanlı otomasyon süreçleri, devops mühendisliğinin görünmez omurgasını oluşturuyor. Ancak bu omurga genellikle oldukça kırılgan temeller üzerine kurulu.

Bu makalede, Bash betiklerinizi kurumsal seviyede, hata toleransı yüksek ve test edilebilir yapılara dönüştürmenin yollarını inceleyeceğiz. Temel kavramları bir kenara bırakıp, doğrudan production ortamlarında hayat kurtaran pratik yaklaşımlara odaklanacağız.

Sessiz Katilleri Durdurun: “set -euo pipefail” Anatomisi

Bash, varsayılan olarak aşırı iyimser bir kabuktur. Bir komut hata verse de, bir değişken tanımlanmamış olsa da “yola devam et” felsefesini benimser. Bu felsefe interaktif terminal kullanımı için harika olsa da, otomasyon scriptleri için tam bir felakettir. Bu felaketi önlemenin ilk adımı, script’lerin başına o meşhur üçlüyü eklemektir:

set -euo pipefail

Peki bu parametreler arka planda tam olarak ne yapar ve neden hayati önem taşırlar? Tek tek inceleyelim.

1. set -e (errexit)

Bu parametre, script içindeki herhangi bir komut non-zero (sıfır dışı) bir exit code ile sonuçlandığında script’in anında sonlandırılmasını sağlar. Varsayılan davranışta Bash, komut hata alsa bile bir sonraki satıra geçmeye çalışır.

Neden kritik? Aşağıdaki senaryoyu düşünün:

cd /tmp/non_existent_directory
rm -rf *

Eğer ilk satırdaki cd komutu dizin bulunamadığı için başarısız olursa ve set -e aktif değilse, script bir sonraki satıra geçer ve o an hangi dizinde bulunuyorsa (muhtemelen script’in çalıştığı root dizini) oradaki tüm dosyaları siler. set -e bu felaketi engeller.

2. set -u (nounset)

Eğer tanımlanmamış bir değişkeni okumaya çalışırsanız, Bash bunu boş bir string olarak kabul eder ve hata vermez. set -u, tanımlanmamış her değişkeni ölümcül bir hata (fatal error) olarak kabul eder ve script’i durdurur.

Neden kritik?

# set -u aktif değilse:
TARGET_DIR="" # ya da yanlışlıkla typo yapılmış bir değişken
rm -rf "${TARGET_DIR}/bin" # Sistem "rm -rf /bin" komutunu çalıştırır!

set -u aktif olduğunda, Bash bu satıra geldiğinde TARGET_DIR: unbound variable hatası fırlatacak ve execution’ı hemen durduracaktır.

3. set -o pipefail

Bash’te pipeline (boru) işlemlerinde varsayılan olarak sadece son komutun exit code’u dikkate alınır. Örneğin komut1 | komut2 | komut3 zincirinde komut1 patlasa bile, komut3 başarılı olursa tüm pipeline başarılı (exit 0) sayılır.

Neden kritik?

# pipefail aktif değilse:
curl -s https://invalid-url-destination.tar.gz | tar -xzf -
echo $? # Çıktı: 0

Yukarıdaki örnekte curl başarısız olacak ve hiçbir veri indiremeyecektir. Ancak tar komutu boş girdi aldığında (veya pipe kapandığında) hata üretse de, exit code bazen yanıltıcı olabilir. Daha da kötüsü, aradaki kritik log analiz araçlarında hatalar yutulur. set -o pipefail aktif edildiğinde, pipeline içindeki en sağdaki non-zero exit code tüm pipeline’ın dönüş kodu kabul edilir.

İstisnaları Yönetmek: set -e Altında Güvenli Hata Toleransı

set -e kullanmaya başladığınızda karşılaşacağınız ilk sorun, bazı komutların hata vermesinin aslında beklenen bir durum olmasıdır. Örneğin bir dizinin varlığını kontrol etmek veya grep ile bir log dosyasında spesifik bir kelimeyi aramak gibi durumlarda, exit code’un 1 gelmesi script’i patlatmamalıdır.

Hata Kodunu Güvenli Bir Şekilde Absorbe Etmek

Eğer bir komutun başarısız olabileceğini biliyor ve bunun script’i durdurmasını istemiyorsanız, OR (||) operatörünü kullanarak hata durumunu bypass edebilirsiniz:

# grep satır bulamazsa normalde exit 1 verir ve script set -e yüzünden durur.
# || true kullanarak bunu engelliyoruz.
result=$(grep "ERROR" /var/log/app.log || true)

# Veya alternatif olarak lokal bir hata değişkenine atayabilirsiniz:
grep "CRITICAL" /var/log/app.log || local_exit=$?
if [ ${local_exit:-0} -ne 0 ]; then
    echo "Kritik log bulunamadı, ama yola devam ediyoruz."
fi

Bir diğer profesyonel yaklaşım ise conditional block’lar kullanmaktır. if, elif, while veya until ifadelerinin içinde çalıştırılan komutlar, hata verseler dahi set -e engeline takılmazlar:

# Bu blok set -e aktif olsa bile güvenle çalışır
if ! ping -c 1 8.8.8.8 > /dev/null 2>&1; then
    echo "İnternet bağlantısı yok, ancak script devam ediyor."
fi

Trap Mekanizması: Kaynakları Temizlemek ve Graceful Shutdown

Script’iniz ister başarıyla tamamlansın, ister yarıda hata alıp dursun; arkasında çöp bırakmamalıdır. Geçici dosyalar (temp files), oluşturulan socket’ler, kilit dosyaları (lock files) veya aktif edilen SSH tünelleri her durumda temizlenmelidir. İşte bu noktada Linux kernel sinyallerini yakalayan trap devreye girer.

Aşağıdaki boilerplate şablonu, production seviyesindeki script’lerinizde güvenle kullanabilirsiniz:

#!/usr/bin/env bash

set -euo pipefail

# Geçici dizin oluşturuluyor
TMP_DIR=$(mktemp -d -t my-app-XXXXXX)
echo "Geçici çalışma alanı: ${TMP_DIR}"

# Temizlik fonksiyonu
cleanup() {
    local exit_code=$?
    echo "Temizlik işlemi başlatılıyor... Son exit code: ${exit_code}"
    rm -rf "${TMP_DIR}"
    
    # Eğer script bir hata yüzünden durduysa ek bildirimler buraya yazılabilir (Slack webhook vb.)
    if [ ${exit_code} -ne 0 ]; then
        echo "Script beklenmedik bir şekilde sonlandı!" >&2
    fi
}

# EXIT sinyalini yakala. Script nasıl biterse bitsin cleanup çalışacak.
trap cleanup EXIT

Neden EXIT Sinyali?

Birçok junior geliştirici trap için sadece ERR veya INT sinyallerini tanımlar. Ancak EXIT pseudosignal’i, script normal yollarla bittiğinde de, set -e yüzünden yarıda kesildiğinde de veya bir syntax hatası alındığında da tetiklenir. Bu yüzden tek bir merkezden temizlik yönetimi için en güvenli limandır.

Exit Code Standartları: Kurumsal Entegrasyon

Yazdığınız script’lerin diğer otomasyon araçları (Ansible, Jenkins, ArgoCD vb.) tarafından doğru yorumlanabilmesi için POSIX standartlarına uygun exit code’lar dönmesi gerekir. Sadece exit 1 yazıp geçmek, hata analizi yaparken size zaman kaybettirir.

Exit Code Anlamı Kullanım Senaryosu
0 Success Script görevini başarıyla tamamladı.
1 Catchall for general errors Genel hatalar (izin yetersizliği, parse hataları vb.)
2 Misuse of shell builtins Eksik veya hatalı argüman kullanımı.
126 Command invoked cannot execute Çalıştırılmak istenen dosya execute yetkisine sahip değil.
127 Command not found Script içindeki bir binary sistemde yüklü değil.

Scriptlerinizde custom hata kodları tanımlarken 64-113 (BSD standardı) veya 128’den büyük olmayan serbest kodları (örneğin 10, 20, 30 gibi) kullanmanız, sistem hata kodlarıyla çakışmayı önler:

readonly ERR_INVALID_ARG=2
readonly ERR_DB_CONNECTION=10
readonly ERR_DISK_FULL=11

if [ $# -lt 1 ]; then
    echo "Hata: En az bir argüman girmelisiniz." >&2
    exit ${ERR_INVALID_ARG}
fi

Bats (Bash Automated Testing System) ile Unit Test Yazımı

“Bash script’inin testi mi olur?” demeyin. Eğer yazdığınız script kritik bir deploy sürecini yönetiyorsa, her değişiklikten sonra manuel test yapmak hem riskli hem de zaman alıcıdır. Bats, Bash script’lerinizi gerçek birer yazılım projesi gibi test etmenizi sağlar.

Öncelikle test edeceğimiz basit ama fonksiyonel bir script yazalım (isim: deploy.sh):

#!/usr/bin/env bash
set -euo pipefail

deploy_artifact() {
    local env=$1
    if [ -z "${env}" ]; then
        echo "Hata: Environment belirtilmedi." >&2
        return 2
    fi
    
    if [ "${env}" == "prod" ]; then
        echo "Production deployment başarılı."
        return 0
    else
        echo "Bilinmeyen environment: ${env}" >&2
        return 10
    fi
}

# Script doğrudan çalıştırıldıysa (test import etmediyse) main'i çalıştır
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
    deploy_artifact "${1:-}"
fi

Şimdi bu script için yazacağımız unit test dosyasına bakalım (isim: deploy.bats):

#!/usr/bin/env bats

# Test öncesi script'i load et
setup() {
    source ./deploy.sh
}

@test "Parametre verilmediğinde script exit code 2 ile patlamalı" {
    run deploy_artifact ""
    [ "$status" -eq 2 ]
    [ "$output" = "Hata: Environment belirtilmedi." ]
}

@test "Prod environment sağlandığında başarılı dönmeli" {
    run deploy_artifact "prod"
    [ "$status" -eq 0 ]
    [ "$output" = "Production deployment başarılı." ]
}

@test "Bilinmeyen env verildiğinde exit code 10 dönmeli" {
    run deploy_artifact "staging"
    [ "$status" -eq 10 ]
}

Bu testleri lokalinizde veya CI/CD pipeline’ınızda çalıştırmak için tek yapmanız gereken bats binary’sini çağırmaktır:

bats deploy.bats

Sonuçlar yeşil yandığında, refactoring yaparken hiçbir şeyi bozmadığınızdan emin olarak production’a güvenle push edebilirsiniz.

Sonuç: Defansif Scripting’i Alışkanlık Haline Getirin

Bash scripting, küçümsenen ama sistem mühendisliğinin en kritik katmanlarından biridir. Script yazarken kodun sadece “mutlu senaryoda” (happy path) nasıl çalışacağını değil, nerede ve nasıl patlayabileceğini tasarlamak gerekir. set -euo pipefail ile sessiz hataların önüne geçmek, trap ile sistem kaynaklarını her durumda temiz bırakmak ve bats ile bu süreçleri test edilebilir kılmak, sizi sıradan bir script yazıcısından profesyonel bir sistem mimarına dönüştürür.

Category: Genel | LEAVE A COMMENT
Ocak 16 2026

Bütçeyle Avrupa: Ucuza Seyahat Etmenin Gerçekçi Yolları

Avrupa sokaklarında kaybolmak, tarihi bir meydanda kahve yudumlamak her gezginin rüyasıdır. Ancak son yıllarda Euro kurunun aldığı hal ve yükselen enflasyon ortada. Yine de moral bozmaya gerek yok; doğru stratejilerle bütçe seyahat planlamak ve avrupa genelinde ucuz tatil yapmak hâlâ mümkün. Klişe turistik turları bir kenara bırakıp, yereller gibi yaşamayı öğrendiğinizde, cüzdanınızın üzerindeki o ağır baskının hafiflediğini göreceksiniz. Bu yazıda, kendi deneyimlerimden yola çıkarak, konfor alanınızdan ufak tavizler vererek yollara düşmenizi sağlayacak gerçekçi yöntemleri paylaşıyorum.

Uçuş Radarını Ayarlamak: Ucuz Biletin Sırrı

Her şey o ilk biletle başlar. Çoğu insan uçak biletini aylar öncesinden almanın her zaman en ucuz yol olduğunu düşünür. Oysa bu her zaman doğru değil. Havayolu şirketlerinin dinamik fiyatlandırma algoritmaları vardır ve genellikle uçuş gününden 6 ila 8 hafta öncesi, fiyatların en makul seviyeye indiği altın penceredir. Hafta sonu uçuşları yerine Salı veya Çarşamba günlerini tercih etmek, bilet fiyatını yarı yarıya düşürebilir. Ayrıca, sadece ana havalimanlarına değil, şehrin biraz dışındaki ikincil havalimanlarına uçmayı düşünmelisiniz. Örneğin Brüksel yerine Charleroi Havalimanı’na uçmak bütçenizi ciddi anlamda rahatlatır. Bu havalimanlarından şehir merkezine ulaşım otobüslerle genellikle 10-15 Euro civarındadır ve yaklaşık 45 dakika sürer.

Uçuş ararken tarayıcınızın gizli sekmesini kullanmak klasik ama eksik bir bilgidir. Gerçek tasarruf için VPN kullanarak kendinizi bilet aldığınız ülkedeymiş gibi göstermek veya farklı para birimlerinde ödeme seçeneğini değerlendirmek bazen şaşırtıcı indirimler sağlayabilir.

Gezgin ruhlu yazılımcılar ve terminalden vazgeçemeyenler için ufak bir terminal numarasıyla bilet sorgulamayı ve API üzerinden anlık fiyat çekmeyi de buraya iliştirelim:

curl -s "https://api.skypicker.com/flights?fly_from=IST&to=BUD&partner=picky" | grep -o '"price":[0-9]*' | head -n 5

Konaklamada Yeni Paradigmalar: Sadece Uyumak İçin mi?

Bileti hallettikten sonra en büyük gider kalemi konaklamadır. İşte burada modern hostel kültürü devreye giriyor. Birçok insan için hostel kelimesi, eski korku filmlerini veya hijyenden uzak odaları çağrıştırır. Oysa günümüz hostelleri, otellerden çok daha canlı, sosyal ve modern alanlar sunuyor. Sadece uyumak ve eşyalarınızı bırakmak için geceliğine 150 Euro ödemek yerine, 20-35 Euro bandında temiz bir hostel odasında kalabilirsiniz. Üstelik bu mekanların ortak mutfakları, kendi yemeğinizi pişirerek günlük gıda harcamalarınızı minimize etmenin en kolay yoludur. Airbnb ise artık eskisi kadar ucuz değil; temizlik ve hizmet ücretleri eklendiğinde genellikle bütçe dostu olmaktan çıkıyor.

Rayların Üzerinde Bir Ömür: Interrail Gerçekten Gerekli mi?

Avrupa içi ulaşımda ise klasik bir efsane olan interrail seçeneğini masaya yatırmak gerek. Eğer bir ay boyunca her gün farklı bir ülkeye gitmek gibi son derece yoğun ve dinamik bir rotanız varsa, tren pass biletleri kesinlikle mantıklıdır. Ancak daha esnek ve ağırdan alan bir seyahat planlıyorsanız, Flixbus gibi otobüs firmaları veya RegioJet gibi bölgesel trenler çok daha hesaplıdır. Örneğin, Prag’dan Viyana’ya otobüsle geçmek yaklaşık 4 saat sürer ve bilet fiyatları bazen 12 Euro’ya kadar düşer. Trenle gitmekten sadece bir saat daha uzun sürer ama cebinizde kalan para bir sonraki günün akşam yemeğini karşılar.

Otobüs yolculuklarını gece saatlerine denk getirmek, hem bir gecelik konaklama ücretinden tasarruf etmenizi sağlar hem de gün ışığından tam kapasite yararlanmanıza önayak olur.

Turistik Tuzaklardan Kaçınarak Karın Doyurmak

Gelelim en keyifli ama en hızlı para harcanan konuya: yemek. Turistik meydanlardaki restoranların menülerinde birden fazla dilde çeviri görüyorsanız, oradan koşarak uzaklaşın. Yerel halkın nerede yediğini gözlemleyin. Üniversite yakınlarındaki ara sokaklar, yerel fırınlar ve semt marketleri en büyük dostunuzdur. İtalya’da bir dilim pizza ve içecek için ara sokaktaki bir büfede 4 Euro öderken, ana meydanda aynı öğün için 20 Euro hesap ödeyebilirsiniz. Ayrıca, Avrupa’da birçok şehirde musluk suyu içilebilirdir. Yanınızda taşıyacağınız bir matara ile su masrafını tamamen sıfırlayabilirsiniz. Paris’te her köşe başında göreceğiniz tarihi çeşmelerden su doldurmak, size kendinizi gerçek bir Parisli gibi hissettirecektir.

Kültür Sanata Beleş Giriş: Ücretsiz Müze Günleri

Son olarak, kültürel aktiviteleri ücretsiz veya çok ucuza getirmek mümkün. Paris’teki Louvre Müzesi de dahil olmak üzere birçok dünya çapındaki müze, ayın belirli günlerinde kapılarını ücretsiz açar. Genellikle her ayın ilk pazar günü yapılan bu etkinlikleri önceden araştırmak, size ciddi miktarda Euro tasarrufu sağlayacaktır. Ayrıca neredeyse her büyük Avrupa şehrinde “Free Walking Tour” yani Ücretsiz Yürüyüş Turları düzenlenir. Bu turlar yerel rehberler eşliğinde şehri tanımanın en samimi yoludur. Turun sonunda rehbere vereceğiniz 5-10 Euro bahşiş, resmi acente turlarının çeyrek fiyatına denk gelir ve size şehir hakkında hiçbir rehber kitapta bulamayacağınız lokal tüyolar kazandırır.

Category: Genel | LEAVE A COMMENT
Ocak 8 2026

Zabbix LLD ile Dinamik Altyapı İzleme: SRE El Kitabı

Modern karmaşık altyapılarda monitoring süreçlerini otomatize etmek artık bir lüks değil; zabbix üzerinde lld (Low-Level Discovery) kullanarak dinamik sunucu ve servis keşfi yapmak ise bu otomasyon sürecinin tam kalbinde yer alıyor. YAML dosyaları arasında kaybolduğumuz, Kubernetes cluster’larının her saniye pod döküp topladığı bir dünyada, kimsenin Zabbix arayüzüne girip elle host ekleyecek, yeni bir disk mount edildiğinde onun için manuel item tanımlayacak vakti yok. Eğer hala “Yeni makine geldi, IP’sini Zabbix’e ekleyelim” diyorsanız, bu makale operasyonel yükünüzü sıfıra indirmek için yazıldı.

Neden Standart Discovery Değil de LLD?

Zabbix kullanan ekiplerin sıklıkla düştüğü ilk hata, Network Discovery ile Low-Level Discovery (LLD) kavramlarını karıştırmaktır. Network Discovery, belirli IP bloklarını tarayıp “Burada bir cihaz var, işletim sistemi de Linux” der ve host’u sisteme ekler. Ancak o host’un içine girdikten sonra işler değişir.

LLD ise bir host’un mikroskobik anatomisini dinamik olarak çıkartır. Sunucuda o an çalışan Docker container’larını, mount edilmiş disk partition’larını, aktif dinlenen TCP portlarını veya dinamik olarak ayağa kalkan systemd servislerini otomatik olarak tespit eder. LLD’nin arkasındaki sihirli güç JSON formatıdır. Zabbix Agent veya bir external script, Zabbix Server’a standardize edilmiş bir JSON döndürür; Server ise bu JSON’ı parse ederek dinamik prototiplerden gerçek Item, Trigger ve Graph’lar üretir.

Uygulama Senaryosu: Dinamik Mikroservis Port Keşfi

Geliştirme ekibinin her hafta yeni bir mikroservis deploy ettiği, her servisin rastgele (veya belirli bir pattern’e sahip) portlardan ayağa kalktığı bir senaryoyu ele alalım. Amacımız: Sunucuda dinlenen dynamic portları keşfetmek, bunları izlemek ve port kapandığında alarm üretmek.

Adım 1: Custom LLD Scripti Yazımı

Öncelikle hedef sunucuda çalışacak ve dinlenen portları Zabbix’in anlayacağı LLD formatında (JSON) döndürecek bir Bash scriptine ihtiyacımız var. Zabbix 5.0 ve üzeri sürümler artık flat JSON formatını da destekliyor, ancak biz geriye dönük uyumluluk ve standart olması açısından klasik LLD macro array formatını kullanacağız.

Aşağıdaki scripti hedef sunucuda /etc/zabbix/scripts/discover_ports.sh yoluna kaydedelim:

#!/bin/bash

# Dinlenmekte olan 8000-9000 arasındaki portları bulalım (mikroservis port aralığı)
PORTS=$(netstat -tlnp | awk '{print $4}' | grep -o '[0-9]*$' | sort -u | awk '$1>=8000 && $1<=9000')

echo "{"
echo "  \"data\": ["

FIRST=1
for PORT in $PORTS; do
    # Servis adını systemd veya prosesten çekmeye çalışalım
    SERVICE_NAME=$(ss -tlnp | grep ":$PORT " | awk -F'pid=' '{print $2}' | cut -d, -f1 | tr -d '"')
    if [ -z "$SERVICE_NAME" ]; then
        SERVICE_NAME="unknown-service"
    fi

    if [ $FIRST -ne 1 ]; then
        echo ","
    fi
    echo "    {"
    echo "      \"{#MICROSERVICE_PORT}\": \"$PORT\","
    echo "      \"{#MICROSERVICE_NAME}\": \"$SERVICE_NAME\""
    echo "    }"
    FIRST=0
done

echo "  ]"
echo "}"

Bu scriptin çıktısı tam olarak aşağıdaki gibi bir JSON olmalıdır. Zabbix LLD motoru, anahtar kelime olarak süslü parantez ve diyez ile başlayan makroları ({#MACRO}) arar:

{
  "data": [
    {
      "{#MICROSERVICE_PORT}": "8081",
      "{#MICROSERVICE_NAME}": "auth-service"
    },
    {
      "{#MICROSERVICE_PORT}": "8085",
      "{#MICROSERVICE_NAME}": "payment-service"
    }
  ]
}

Adım 2: UserParameter Tanımlama

Zabbix Agent’ın bu scripti çalıştırıp çıktıyı sunucuya gönderebilmesi için yetkilendirilmesi gerekir. /etc/zabbix/zabbix_agentd.d/userparameter_services.conf dosyasını oluşturup şu satırı ekliyoruz:

UserParameter=custom.microservice.discovery,sudo /etc/zabbix/scripts/discover_ports.sh

Burada kritik bir detay var: Script netstat ve ss komutlarını kullandığı için proses isimlerini okurken root yetkisine ihtiyaç duyabilir. Bu yüzden /etc/sudoers dosyasına zabbix kullanıcısı için şifresiz çalıştırma izni eklemeyi unutmayın:

zabbix ALL=(ALL) NOPASSWD: /etc/zabbix/scripts/discover_ports.sh

Konfigürasyonu yaptıktan sonra agent servisini restart ediyoruz:

systemctl restart zabbix-agent

Zabbix Arayüzünde Template ve LLD Yapılandırması

Artık altyapıyı hazırladığımıza göre, Zabbix Server tarafında bu veriyi işleyecek kuralları tanımlayabiliriz.

Discovery Rule Oluşturma

  1. Zabbix Web UI’da Configuration > Templates sekmesine gidin ve yeni bir template oluşturun (Örn: Template App Microservices Dynamic).
  2. Oluşturduğunuz template’in içindeki Discovery rules sekmesine tıklayın ve Create discovery rule butonuna basın.
  3. Name: Microservice Port Discovery
  4. Type: Zabbix agent (veya zabbix agent active – mimarinize göre)
  5. Key: custom.microservice.discovery
  6. Update interval: 1h (Üretim ortamında her dakika keşif yapmak gereksiz yük bindirir, 1 saat veya duruma göre 15 dakika idealdir).

Item Prototiplerini Tanımlama

Discovery Rule oluştuktan sonra, bu kuralın altında Item prototypes sekmesine giriyoruz. Burada tanımlayacağımız her item, keşfedilen her port için otomatik olarak klonlanacak.

Create item prototype diyerek ilk prototipimizi oluşturalım:

  • Name: Service {#MICROSERVICE_NAME} on Port {#MICROSERVICE_PORT} Status
  • Key: net.tcp.service[tcp,,{#MICROSERVICE_PORT}]
  • Type: Simple check (veya Agent üzerinden kontrol etmek için agent key’leri kullanabilirsiniz)
  • Type of information: Numeric (unsigned)

Burada kritik nokta, Key alanında dinamik makromuz olan {#MICROSERVICE_PORT} ifadesini kullanmış olmamızdır. Zabbix her keşifte bu değeri gerçek port numarasıyla değiştirecektir.

Trigger Prototiplerini Tanımlama

Sadece izlemek yetmez, servis çöktüğünde alarm üretmeliyiz. Aynı Discovery Rule altındaki Trigger prototypes sekmesine gidiyoruz:

  • Name: Microservice {#MICROSERVICE_NAME} on port {#MICROSERVICE_PORT} is DOWN
  • Expression: last(/Template App Microservices Dynamic/net.tcp.service[tcp,,{#MICROSERVICE_PORT}])=0
  • Severity: Average (veya High)

Bu tanım sayesinde, örneğin 8085 portundaki `payment-service` çöktüğünde trigger otomatik olarak evaluate edilecek ve alarm başlığı dinamik olarak çözümlenerek “Microservice payment-service on port 8085 is DOWN” şeklinde Slack/PagerDuty entegrasyonlarınıza düşecektir.

SRE Gözünden LLD Optimizasyonları ve Best Practice’ler

Büyük ölçekli ortamlarda (10.000+ host, 500.000+ item) LLD kullanırken dikkat edilmezse Zabbix Server database’i ve LLD housekeeper süreçleri darboğaza girebilir. Aşağıdaki optimizasyonları mutlaka dikkate alın:

1. Discard Unchanged (Throttling) Kullanın

Keşif scriptiniz her çalıştığında aynı JSON çıktısını üretiyorsa, Zabbix Server’ın her seferinde bu veriyi veritabanına yazıp işlem yapmasına gerek yoktur. Discovery Rule konfigürasyonundaki Preprocessing sekmesine gidin ve Discard unchanged with heartbeat ekleyin. Heartbeat süresini 12h veya 24h yapın. Bu, DB write I/O oranınızı dramatik ölçüde düşürür.

2. Keep Lost Resources Period Ayarı

Bir mikroservis kapatıldığında veya taşındığında, ona ait eski item ve trigger verilerinin ne kadar süre sistemde kalacağını belirleyen parametre LLD rule içindeki Keep lost resources period seçeneğidir. Varsayılan olarak 30 gündür. Dinamik ortamlarda bu değeri 1d (1 gün) veya 12h gibi düşük sürelere çekin. Aksi takdirde, artık var olmayan yüzlerce geçici portun “Unknown” statüsündeki çöpleriyle uğraşırsınız.

3. Filtreleri Doğru Kullanın

Scriptinizden gelen tüm verileri izlemek istemeyebilirsiniz. LLD kuralındaki Filters sekmesini kullanarak sadece belirli pattern’e uyan makroları işleme alabilirsiniz. Örneğin, sadece {#MICROSERVICE_NAME} değeri “prod-” ile başlayanları izlemek için regex filtresi koyabilirsiniz:

{#MICROSERVICE_NAME} matches ^prod-.*

Özet

Zabbix LLD, altyapınızın dinamik yapısına ayak uydurabilen, kendi kendini temizleyen ve sürekli güncel kalan bir monitoring katmanı kurmanın en efektif yoludur. Statik template mantığından çıkıp, veriyi doğrudan kaynaktan (OS, API, Docker socket) çekerek otomatik kural setleri türetmek, SRE ekiplerinin operasyonel yükünü minimize eder. Bir sonraki aşamada bu LLD mekanizmasını Kubernetes API’si ile entegre ederek cluster dışındaki Zabbix cluster’ınızdan pod seviyesinde keşifler tetikleyebilirsiniz.

Category: Genel | LEAVE A COMMENT
Kasım 7 2025

Elasticsearch ILM ile Disk Tasarrufu: Hot-Warm-Cold-Delete Yapılandırması

DevOps dünyasının en acı verici maliyet kalemlerinden biri, her gün çığ gibi büyüyen log verileridir. Elasticsearch üzerinde koşan log kümelerinin kontrolsüz büyümesi, disk doluluk alarmları ve şişen bulut faturalarıyla sonuçlanır. İşte tam bu noktada, akıllı bir elasticsearch ilm (Index Lifecycle Management) stratejisi kurmak, disk ve donanım maliyetlerinizi kalıcı olarak optimize etmenin en efektif yoludur. Sadece eski verileri silmek bir çözüm değildir; verinin yaşlandıkça daha ucuz kaynaklara taşınması, sıkıştırılması ve segmentlerinin birleştirilmesi gerekir. Bu rehberde, production ortamında doğrudan uygulayabileceğiniz, shrink ve force-merge adımlarıyla desteklenmiş agresif bir hot-warm-cold-delete mimarisini nasıl kuracağınızı inceleyeceğiz.

1. Altyapının Hazırlanması: Node Rollerinin Dağıtımı

ILM mekanizmasının veriyi doğru katmanlar arasında taşıyabilmesi için öncelikle Elasticsearch cluster üyelerinin rollerini net bir şekilde tanımlamalıyız. Eski node.attr.box_type yaklaşımı yerine, modern Elasticsearch mimarisinde (7.x/8.x) yerleşik veri rollerini kullanıyoruz. Node’larınızın elasticsearch.yml dosyalarında şu tanımlamaların yapıldığından emin olun:

Hot Node Konfigürasyonu (Yüksek IOPS NVMe Diskler)

node.roles: [ master, data_hot, ingest ]

Warm Node Konfigürasyonu (Orta Segment SSD / Standart Diskler)

node.roles: [ data_warm ]

Cold Node Konfigürasyonu (Ucuz, Yüksek Kapasiteli HDD / Object Storage)

node.roles: [ data_cold ]

Neden böyle? Yazma (ingest) yükü her zaman CPU ve I/O canavarıdır. Hot node’ları pahalı ve hızlı disklerde tutarken, artık arama sıklığı düşmüş eski verileri barındıran warm ve cold node’larda daha ucuz depolama birimleri kullanarak maliyetleri ciddi oranda dengeliyoruz.

2. Agresif Bir ILM Policy Tanımlama

Şimdi disk tasarrufunu asıl optimize edecek olan ILM policy yapısını kuralım. Senaryomuzda:

  • Hot Fazı: Veri yazılır. Primary shard boyutu 50 GB’a ulaştığında veya 7 gün geçtiğinde rollover tetiklenir.
  • Warm Fazı: Rollover olan veri warm node’lara taşınır. Shard sayısı 1’e düşürülür (shrink) ve segment birleştirmesi (force-merge) yapılarak diskte maksimum sıkıştırma sağlanır.
  • Cold Fazı: Veri cold node’lara taşınır, replica sayısı 0 veya 1’e çekilerek alan kazanılır.
  • Delete Fazı: 90 günün ardından veri cluster’dan tamamen silinir.

Bu akışı tetikleyecek API çağrısını aşağıdaki gibi cluster’a uygulayalım:

curl -X PUT "localhost:9200/_ilm/policy/log_maliyeti_opt_policy" -H 'Content-Type: application/json' -d'
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_primary_shard_size": "50gb",
            "max_age": "7d"
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "warm": {
        "min_age": "0ms",
        "actions": {
          "shrink": {
            "number_of_shards": 1
          },
          "forcemerge": {
            "max_num_segments": 1
          },
          "allocate": {
            "number_of_replicas": 1
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "cold": {
        "min_age": "30d",
        "actions": {
          "allocate": {
            "number_of_replicas": 0
          },
          "set_priority": {
            "priority": 0
          }
        }
      },
      "delete": {
        "min_age": "90d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}'

3. Neden Shrink ve Force Merge?

Burada “Neden böyle yaptık?” sorusunu yanıtlayalım. Birçok DevOps mühendisi sadece rollover ve delete adımlarını kullanır. Ancak asıl disk tasarrufu warm fazındaki iki kritik adımda gizlidir:

  1. Shrink: Hot fazda yazma performansını optimize etmek için muhtemelen 5 primary shard kullandınız. Veri salt okunur (read-only) olduğunda, bu kadar çok shard’a ihtiyacınız kalmaz. Shard sayısını 1’e düşürerek hem Elasticsearch JVM Heap bellek tüketimini azaltırız hem de metadata overhead’ini sıfırlarız.
  2. Force Merge (max_num_segments: 1): Elasticsearch arkada verileri sürekli segmentler halinde yazar. Silinen veya güncellenen dökümanlar fiziksel olarak hemen silinmez, sadece silindi olarak işaretlenir. Force merge operasyonu ile tüm segmentleri tek bir segmente indirgeriz. Bu işlem, silinmiş tüm verileri diskten fiziksel olarak kazır ve sıkıştırma algoritmasının (LZ4/DEFLATE) maksimum verimle çalışmasını sağlayarak ortalama %20 ila %40 arasında anlık disk tasarrufu sağlar.

4. Index Template ve Bootstrap Oluşturma

ILM politikasının otomatik olarak yeni index’lere uygulanabilmesi için bir index template tanımlamamız gerekiyor. Burada önemli olan nokta, verilerin yazılacağı ilk “bootstrap” index’ini elle oluşturup alias’ı bağlamaktır.

Index Template Tanımlanması

curl -X PUT "localhost:9200/_index_template/log_template" -H 'Content-Type: application/json' -d'
{
  "index_patterns": ["app-logs-*"],
  "template": {
    "settings": {
      "index.lifecycle.name": "log_maliyeti_opt_policy",
      "index.lifecycle.rollover_alias": "app-logs",
      "index.number_of_shards": 3,
      "index.number_of_replicas": 1,
      "index.routing.allocation.include._tier_preference": "data_hot"
    }
  }
}'

Burada index.routing.allocation.include._tier_preference: "data_hot" satırı çok kritiktir. Yeni oluşturulan tüm index’lerin öncelikli olarak hot node’lara yazılmasını garanti altına alır.

İlk Bootstrap Index’inin Tetiklenmesi

Rollover mekanizmasının çalışabilmesi için alias’ın işaret ettiği fiziksel bir index’in bulunması şarttır. İlk index’i write_index olarak tanımlayarak döngüyü başlatıyoruz:

curl -X PUT "localhost:9200/%3Capp-logs-%7Bnow%2Fd%7D-000001%3E" -H 'Content-Type: application/json' -d'
{
  "aliases": {
    "app-logs": {
      "is_write_index": true
    }
  }
}'

Artık uygulamanız logları doğrudan app-logs alias’ına yazabilir. Elasticsearch, arka planda ILM kurallarını işleterek index boyutlarını izleyecek ve eşikler aşıldığında rollover yaparak süreci warm katmanına devredecektir.

5. SRE Gözünden Production Sorunları ve Çözümler

Production ortamlarında bu yapıyı koştururken karşınıza çıkabilecek bazı tipik tıkanma noktaları ve bunları aşma yöntemleri şunlardır:

Shrink Operasyonunun Askıda Kalması

Bir index’in shrink edilebilmesi için, o index’e ait tüm primary shard kopyalarının cluster içinde tek bir node üzerine toplanması gerekir. Eğer cluster’ınızda disk doluluğu nedeniyle allocation engelleri varsa, shrink işlemi AWAITING_REALLOCATION durumunda takılır.

Çözüm: Warm node’larınızda tek bir node’un index’in tamamını (örneğin 150 GB) tek başına barındırabilecek kadar boş disk alanına sahip olduğundan emin olun. Gerekirse geçici olarak disk limit sınırlarını (watermark) esnetin:

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "90%",
    "cluster.routing.allocation.disk.watermark.high": "95%"
  }
}'

Force Merge Sırasında IOPS Tavan Yapması

Force merge işlemi, diski yoğun şekilde okuyup yazan (I/O intensive) ağır bir operasyondur. Aynı anda onlarca index warm faza geçip force merge olmaya başlarsa cluster yanıt veremez hale gelebilir.

Çözüm: ILM policy’nizdeki rollover tetikleyicilerini zamansal olarak yaymaya çalışın (örneğin tüm servislerin rollover’ını aynı gece saatinde tetiklemeyin, boyut bazlı rollover tercih edin) ve force merge limitlerini sınırlandırın.

Özet

Bu makalede kurguladığımız hot-warm-cold-delete yapısı sayesinde, aktif yazılan taze log verilerinizi yüksek performanslı disklerde tutarken, geriye dönük analizler için sakladığınız eski verileri minimum kaynak tüketecek şekilde optimize ettik. Shrink ile heap bellek ayak izini düşürdük, force-merge ile diskteki boşlukları temizledik ve soğuk katmanda replikaları azaltarak donanım maliyetlerimizi kalıcı olarak aşağı çektik. Bu kurgu, doğru uygulandığında Elasticsearch log altyapınızın sürdürülebilirliğini katbekat artıracaktır.

Category: Genel | LEAVE A COMMENT
Eylül 19 2025

Sabah Güneşinden Mavi Işığa: Sirkadiyen Ritmi Düzenleyerek Enerji Seviyenizi İki Katına Çıkarın

Sabah alarm çaldığında kendinizi bir türlü yataktan atamıyor, güne başlamak için kafein komasına girmeyi bekliyorsanız yalnız değilsiniz. Çözüm aslında kahve fincanınızda değil, doğrudan gökyüzünde saklı. Vücudumuzun milyarlarca yıllık evrimsel mirası olan sirkadiyen ritim biyolojisi, modern yaşamın yapay ışıkları altında ciddi bir savaş veriyor. Güne başlarken sabah güneşi faydaları ile hormonlarınızı uyandırmak ve akşam saatlerinde bilinçli bir mavi ışık engelleme stratejisi uygulamak, kaliteli bir melatonin üretimi için hayati önem taşır. Bu yazıda, biyolojik saatinizi yeniden kurarak enerjinizi nasıl iki katına çıkarabileceğinizi adım adım ele alıyoruz.

Sirkadiyen Ritim Biyolojisi: İçimizdeki Akıllı Saat

Sirkadiyen ritim, vücudumuzun yaklaşık 24 saatlik bir döngü içinde gerçekleştirdiği fiziksel, zihinsel ve davranışsal değişikliklerin bütünüdür. Bu sistemi yöneten merkez, beynimizin hipotalamus bölgesinde yer alan ve yaklaşık 20.000 nöondan oluşan “Suprakiazmatik Çekirdek” (SCN) adındaki ana saattir.

Hücrelerin Ritmi Neden Önemli?

SCN, dış dünyadaki ışık değişimlerini gözlerimiz aracılığıyla algılar. Eğer beyninize sürekli “şu an gündüz” veya “şu an gece” sinyali göndermezseniz, organlarınız hangi saatte ne yapacağını şaşırır. Araştırmalar gösteriyor ki, bozulan sirkadiyen ritim sadece yorgunluğa değil, aynı zamanda bağışıklık sisteminin zayıflamasına ve metabolik düzensizliklere de yol açabiliyor. Yani gün içindeki enerjiniz, hücrelerinizin zaman algısıyla doğrudan ilişkilidir.

Sabah Güneşi Faydaları: Doğal Bir Enerji İçeceği

Sabah uyandıktan sonraki ilk bir saat içinde gözlerinizin doğrudan gün ışığı alması, gün boyunca hissedeceğiniz enerjinin temelini atar. Burada kritik nokta camın arkasından değil, açık havada bu ışığı almaktır; çünkü pencereler sirkadiyen sistemi uyarmak için gereken fotonların büyük kısmını filtreler.

Fotonların Gözle Buluşması ve Kortizol

Gözümüzdeki özel ışık alıcıları (melanopsin içeren ganglion hücreleri), sabah güneşindeki mavi dalga boyunu algıladığında SCN’ye “Uyan!” sinyali gönderir. Bu sinyal sayesinde vücut, uyanıklık ve odaklanma hormonu olan kortizolü sağlıklı bir şekilde salgılar. Aynı zamanda, yaklaşık 14-16 saat sonra salgılanacak olan melatonin hormonunun zamanlayıcısı da bu anda çalışmaya başlar. Araştırmalar gösteriyor ki, sabah saatlerinde parlak ışığa maruz kalan bireyler, geceleri çok daha hızlı ve derin bir uykuya dalabiliyor.

Akşam Kaosu: Mavi Işık Engelleme ve Melatonin Üretimi

Sabah güneşini aldık, harika bir gün geçirdik. Peki akşam ne oluyor? Güneş battıktan sonra evlerimizde yaktığımız parlak LED ampuller, televizyonlar ve en önemlisi elimizden düşürmediğimiz akıllı telefonlar beynimize “Hâlâ öğle saatindeyiz” mesajı gönderir.

Telefon Ekranından Yayılan Gizli Tehdit

Cihazlardan yayılan yüksek enerjili görünür mavi ışık, pineal bezin melatonin üretimi yapmasını doğrudan engeller. Melatonin sadece bizi uyutan bir hormon değil, aynı zamanda vücudu yenileyen çok güçlü bir antioksidandır. Akşam saatlerinde mavi ışığa maruz kalmak, bu uykunun kalitesini sıfıra indirir. Bu yüzden akşamları mavi ışık engelleme tekniklerini devreye sokmak hayati bir önem taşır.

Önemli Uyarı: Sabah güneşi alırken asla doğrudan güneşe bakmayın. Gökyüzüne doğru, açık havada bakmanız yeterlidir. Ayrıca kronik uykusuzluk, vardiyalı çalışma bozuklukları veya hormonal düzensizlikler yaşıyorsanız, bu adımları rutin haline getirmeden önce mutlaka bir doktora danışın.

Sirkadiyen Ritminizi Optimize Edecek Pratik Protokol

Biyolojinizi hacklemek ve enerjinizi ikiye katlamak için aşağıdaki basit adımları günlük rutininize ekleyebilirsiniz. Hatta bunu bir bilgisayar kodunun hatasız çalışması gibi düşünebiliriz:


# Sirkadiyen optimizasyon simülasyonu
$ start --morning-sun --duration=15m
$ set --blue-light-filter --time=20:00
$ status --melatonin-level
[OK] Derin uykuya hazırsınız!

Eyleme Geçirilebilir Adımlar:

  • İlk 30 Dakika Kuralı: Uyandıktan sonraki ilk yarım saat içinde balkona çıkın veya dışarıda 10-15 dakika yürüyün (bulutlu havalarda bu süreyi 20-25 dakikaya çıkarın).
  • Akşam Işıklarını Azaltın: Saat 20:00’den sonra evdeki tavan ışıklarını kapatıp daha loş, sıcak tonlu zemin lambalarına geçiş yapın.
  • Yazılımlardan Destek Alın: Telefon ve bilgisayarlarınızda “gece modu” veya f.lux gibi mavi ışığı filtreleyen yazılımları aktif hale getirin.
  • Dijital Detoks: Yatağa girmeden en az 1 saat önce tüm ekranlarla vedalaşın. Bunun yerine kitap okumayı veya esneme hareketleri yapmayı deneyin.

Sirkadiyen ritminizi düzenlemek bir gecede mucizeler yaratmaz; ancak bu adımları tutarlı bir şekilde uyguladığınızda, birkaç hafta içinde sabahları alarm kurmadan, dinç ve enerjik bir şekilde uyandığınızı fark edeceksiniz. Biyolojinizle savaşmayı bırakın ve onun doğal ritmine ayak uydurun!

Category: Genel | LEAVE A COMMENT
Ağustos 29 2025

Otantik Meksika Tacosu: Evde Mısır Unundan Tortilla ve Yavaş Pişen Et (Carnitas) Yapımı

Porsiyon: 4-6 Kişilik | Hazırlık Süresi: 30 Dakika | Pişirme Süresi: 3 Saat

Dışarıda yediğiniz o şahane meksika sokak lezzetleri vardır ya… Hani o tek ısırıkta insanı sıcak Meksika gecelerine ışınlayan cinsten. İşte bugün o derin ve katmanlı lezzeti mutfağınıza getiriyoruz. Evde taco yapımı gözünüzü korkutmasın; çünkü bu işin sırrı teknik zorluklarda değil, doğru malzemeleri doğru sürede bir araya getirmekte saklı. Kendi glütensiz mısır tortillanızı basıp, üzerine saatlerce kısık ateşte pişen sulu bir carnitas koyduğunuzda ne demek istediğimizi çok iyi anlayacaksınız.

Tortilla: Her Şeyin Başladığı Yer

Sıradan mısır unuyla tortilla yapmaya çalışıp hüsrana uğrayanlardansanız, yalnız değilsiniz. Gerçek bir mısır tortillası tarifi için bize masa harina lazım. Bu un, mısır tanelerinin kireçli suda haşlanıp kurutulmasıyla (nixtamalization) elde edilir. Bu kimyasal süreç mısırdaki proteinleri açığa çıkarır ve hamurun glütensiz olmasına rağmen birbirine tutunmasını sağlar. Normal mısır unuyla tortilla açamazsınız, çünkü hamur kuruyup parçalanır.

Carnitas: Ağızda Dağılan Meksika Klasiği

Geleneksel bir carnitas tarifi aslında domuz etinin kendi yağında, kısık ateşte saatlerce yavaşça pişmesidir (bir nevi Fransızların confit tekniği). Ancak biz bu tarifte herkesin kolayca tüketebileceği ve daha kolay ulaşabileceği dana gerdan veya dana döş kullanacağız. Portakal suyu, sarımsak ve baharatların asidiyle birleşen et, lif lif ayrılan ve ağızda dağılan bir başyapıta dönüşecek.

Gerekli Malzemeler

Mısır Tortillası İçin:

  • 2 su bardağı masa harina (Meksika mısır unu)
  • 1.5 su bardağı ılık su
  • Yarım çay kaşığı tuz

Dana Carnitas İçin:

  • 1 kg dana gerdan veya döş (iri küpler halinde doğranmış)
  • 1 adet portakalın suyu (ve kabuğu)
  • 1 adet orta boy soğan (dörde bölünmüş)
  • 4 diş sarımsak (ezilmiş)
  • 1 tatlı kaşığı kimyon
  • 1 tatlı kaşığı kekik
  • 1 adet çubuk tarçın
  • 2 yemek kaşığı sıvı yağ
  • Tuz ve karabiber

Adım Adım Hazırlanışı

  1. Eti Mühürleyin ve Pişmeye Bırakın: Geniş ve derin bir tencereye sıvı yağı alın. Tuz ve karabiberle lezzetlendirdiğiniz etleri yüksek ateşte her tarafı kahverengi olana kadar mühürleyin.
  2. Aromaları Ekleyin: Tencereye portakal suyu, portakal kabuğu, soğan, sarımsak, kimyon, kekik ve çubuk tarçını ekleyin. Üzerini hafifçe geçecek kadar sıcak su ilave edin. Kapağını kapatıp en kısık ateşte etler lif lif ayrılana kadar yaklaşık 2.5 – 3 saat pişirin.
  3. Hamuru Yoğurun: Et pişerken tortilla hamuruna geçelim. Geniş bir kapta masa harina ve tuzu karıştırın. Ilık suyu yavaş yavaş ekleyerek oyun hamuru kıvamına gelene kadar yoğurun. Hamuru nemli bir bez altında 15 dakika dinlendirin.
  4. Tortillaları Şekillendirin: Hamurdan ceviz büyüklüğünde bezeler yapın. İki adet buzdolabı poşetinin arasına bezeyi koyun. Ağır bir döküm tava tabanı veya tortilla press kullanarak bezeyi incecik açın.
  5. Tortillaları Pişirin: İyice ısıtılmış yağsız tavada (varsa döküm tava) tortillaları arkalı önlü, üzerlerinde hafif kahverengi benekler oluşana kadar (her yüzü yaklaşık 1 dakika) pişirin. Pişen tortillaları temiz bir havluya sararak sıcak ve yumuşak kalmalarını sağlayın.
  6. Eti Çıtırlaştırın: Pişen etleri tencereden çıkarıp çatalla didikleyin. Tencerede kalan pişme suyundan birkaç kaşık etlerin üzerine gezdirin. Ardından geniş bir tavada yüksek ateşte etlerin dış kısımlarını hafifçe çıtırlaştırın.

Püf Noktası

Tortillalarınızın kuruyup tahta gibi olmasını istemiyorsanız, pişer pişmez hemen temiz ve hafif nemli bir mutfak havlusunun arasına alın. Kendi buharlarıyla yumuşacık kalacaklardır. Ayrıca etleri çıtırlaştırırken tencerenin dibinde kalan o yoğun sosu mutlaka etlerin üzerine dökün; lezzet patlamasının sırrı o sosta saklı.

Pratik Alternatifler ve Servis Önerisi

Eğer masa harina bulamazsanız, kaliteli ince un haline getirilmiş beyaz mısır unu ve çok az buğday unu karışımıyla benzer bir doku yakalayabilirsiniz (ancak glütensiz özelliğini kaybeder). Tacolarınızı servis ederken üzerine sadece ince kıyılmış çiğ kırmızı soğan, taze kişniş ve bolca misket limonu (lime) sıkın. Meksika sokak tarzı budur, ağır soslarla etin o muazzam tadını gölgelemeyin!

Category: Genel | LEAVE A COMMENT