# Yunus Emre Ak \~ yemreak

Bir şey geliyor — fikir, his, anlayış — ve gidiyor. Anlamadığım şey yaşanmamış gibi. Sistem kuruyorum, kaybolmasın diye değil, tekrar bulabilmek için.

> Gerçek uzmanlık, düşünmeden doğru şeyi anında yapabilmek—ve bunu yönlendirebilecek ve yargılayabilecek kadar bilinçli olmaktır. \~ yemreak

**2020'de 450 dolarla sıfırdan kripto arbitraj botumu kurdum.** Mario'nun altın sesini kazanç bildirimi yapıp anneme gösterirken sistem çalışmaya başladı. İlk yıl finansal özgür oldum, 20+ borsada test ettim birkaçında çalışıyor.

Sonra **manuel trade** denedim - yarısını kaybettim. Duygular devreye girince her şey bozuldu. O günden beri tek odağım: **duyguları formüle et, sisteme dönüştür.**

6 yıldır once blog ve notlarla, sonrasinda ChatGPT/Claude ile günde 8+ saat konuşup calisirken elde ettigim düşünce sistemlerimi biriktirdim. Whisper ile sesimi metne çevirip, Voice Clone ile kendi sesimde İngilizce öğrendim. Çocukken yapboz, ilkokulda matematik formülleri, lisede trigonometri - formül takıntım hep vardı.

Şimdi **yapay zeka davranışlarından insan davranışlarını** anlıyorum. Claude Code'a sesimle kod yazdırırken fark ettim - o da bizim gibi, söylenene değil maruz kaldığına uygun davranıyor. Sıfır dokümantasyon prensibi: anlatma, kültürü yaşat; her seyi ogretme yolda ogrensin (hook) gibi prensipler inşa ediyorum.

30+ CLI aracı yaptım ama hiçbirini monetize etmedim. Amacım para değil, **düşünce ile kod arasındaki sürtünmeyi sıfırlamak.** Hız takıntım var - 7 saatlik sprint yaptığım oluyor, kendimi durduramıyorum. Reaktif ve plansız çalışırım, fikir geldi mi hemen yaparım.

**Hayalim basit:** Gece karanlık odamda AI'larla konuşup / çalışıp sistemler tasarlamak ve tasarım sürecinde kendi davranışlarımı ve düşünme şeklimi kontrol etmeyi öğrenmek. Eğer yapay zekanın davranışlarını kontrol edebilirsem, 6 yıldır biriktirdiğim düşünce sistemleriyle kendi davranışlarımı da kontrol edebilirim.

*eksiği var fazlası yok..*

2025-11-24T20:38:21+03:00

[Instagram: @yemreak\_](https://www.instagram.com/yemreak_/)

{% embed url="<https://github.com/yemreak>" %}

***

## Yapay zeka ile konuş, kopyala yapıştır

Yapay zeka iş akışın için kısayol. Konuşman + kopyaladıkların senkronize.

{% content-ref url="/pages/081c93b10c6efd62683863bee2ed6800b6045478" %}
[optionOS - yemreak](/yemreak-macos)
{% endcontent-ref %}

***

{% content-ref url="/pages/JhEsQR5JGThuqywnJbtL" %}
[Yolculugum](/yolculugum)
{% endcontent-ref %}

{% content-ref url="/pages/jgEn11qXK3pOy9hvfaB0" %}
[Keşifler](/contents)
{% endcontent-ref %}


# optionOS - yemreak

{% embed url="<https://optionos.yemreak.com/>" %}

## Konuş. Kopyala. Yapıştır.

Yapay zeka iş akışın için kısayol. Konuşman + kopyaladıkların senkronize.

[*English*](https://github.com/yemreak/yemreak-macos) - GitHub

[Satın al](https://yemreak.gumroad.com/l/macos) - Gumroad

## 10-14 saat AI ile çalışıyorum. Yazmak istemiyorum. Konuşmak istiyorum.

{% stepper %}
{% step %}

### Clipboard Çakışması

Durum:

* 6-7 terminal açık. Her birinde farklı bir AI.
* Konuşurken kopyalıyorum, ama konuşmayla senkron değil; en son kopyaladıklarım toplu geliyor.
* AI'lar "bu", "şu" dediğimde neyi kastettiğimi anlamıyor.

{% hint style="info" %}
Çözüm: Kopyaladıklarım konuşmamla aynı zaman damgasında hizalanıyor. "Şuna bak" dediğim an, o an kopyaladığım şey tam o noktaya yerleşiyor. Konuşma akışım bozulmuyor.
{% endhint %}
{% endstep %}

{% step %}

### Toplu Kopyalama

Durum:

* 5 resim var. Normalde: kopyala-yapıştır, kopyala-yapıştır... pencereler arası geçiş, dikkat dağılması, 2 dakika.

{% hint style="info" %}
Çözüm: Konuşurken birden fazla şeyi kesintisiz kopyalayabiliyorum. Konuşmaya devam ediyorum; yapıştırma tek tuş. Dikkat dağılmıyor, akış korunuyor.
{% endhint %}
{% endstep %}

{% step %}

### Bağlam Kaybı

Durum:

* Bir terminalde AI'a talimat verdim, diğerine geçtim. İlk AI yanlış anladıysa geri dönüp tüm bağlamı tekrar vermek gerekiyor.
* Bağlam değiştikçe eski fikirle yeni fikir arasındaki bağlantı kopuyor.

{% hint style="info" %}
Çözüm: Clipboard hizalaması sayesinde "bu", "şu" belirsizliği azalıyor; ilk seferde doğru anlaşılma olasılığı artıyor. Geri dönüp yeniden açıklama ihtiyacı azalıyor.
{% endhint %}
{% endstep %}

{% step %}

### Bekleme Stresi

Durum:

* MacWhisper gibi sistemler transkripsiyon için bekletiyor. Konuşmam bittikten sonra da beklemek gerekiyor.
* Beklerken fikirler kayboluyor; 2 saniye bile sıkıntı.

{% hint style="info" %}
Çözüm: Konuşma durduğunda anında transkripsiyon. Cümle bitmesini beklemiyor; konuşma biter bitmez metin hazır.
{% endhint %}
{% endstep %}

{% step %}

### Akış Kesintisi

Durum:

* Konuşurken "aklıma şu da geldi" diyorsun; MacWhisper'da ESC ile iptal vs. Ardışık konuşmalarda zorluk.

{% hint style="info" %}
Çözüm: Ardışık konuşmalar destekleniyor. Bir konuşmanın transcription'u bitmeden ikinciyi başlatabiliyorsun; sistem sırayla işliyor.
{% endhint %}
{% endstep %}

{% step %}

### Araya Not

Durum:

* Konuşurken aklına yazılı bir şey geliyor. Terminaldeyken ses kaydını bulup doğru yere eklemek zor.

{% hint style="info" %}
Çözüm: Option+S ile konuşma devam ederken not yazabiliyorsun. Yazdığın metin tam o ana yerleşiyor; toplantı chat'i gibi.
{% endhint %}
{% endstep %}

{% step %}

### Geçmiş Arama

Durum:

* "Bunu daha önce açıklamıştım" fakat hangi kayıtta olduğunu bulmak zor.

{% hint style="info" %}
Çözüm: Konuşma geçmişi + arama. Konuşmalar içinde arama yapabiliyorsun; aradığın şey senin fikrin.
{% endhint %}
{% endstep %}
{% endstepper %}

## Nasıl bir deneyim?

* `Option+A` → Konuşmaya başla. Konuşurken kopyala. `Option+A` → Yapıştır.
* — ne zaman, ne kopyaladın, nereden kopyaladın hepsi kayıtlı

![Claude Code terminalde kayıt başlat, neleri kopyaladığını gör](/files/4a1dcfe42273b866e9e33f64f10b87fcdb83e21f)

![Konuşurken araya not ekle](/files/4719eba6492de5b56db09f81f17a0bf58fa69a66)

![Tek tuşla yapıştır](/files/5132d882001f6cb1d7d8f95edc3ae9047da76060)

![Konuşman + kopyaladıkların sıralı şekilde AI'a gidiyor](/files/6c07cd826b84108557836fcc9440a9af942920d6)

![Geçmişten kaydını önizle](/files/33e16f46751a6b2d2de2661d1e3df4cfa693cb15)

![Geçmişten kaydını önizle](/files/094e74927f321e61486e0bcde77ef0d22f6b2254)

[Satın al](https://yemreak.gumroad.com/l/macos) - Gumroad

## Alternatif neydi?

5 farklı app kullanıyordum yapay zeka iş akışım için:

* **MacWhisper** — $30 (konuşmayı yazıya çevir)
* **CleanShot X** — $29 (ekran görüntüsü + annotate)
* **Paste** — $15/yıl (clipboard history)
* Bir de context tracker, hotkey manager...

Her gün: app aç, kopyala, diğer app'e geç, yapıştır, organize et, tekrar. $74 + öğrenme saatleri + 4-5 farklı hotkey + koordinasyon.

Sonra baktım — ben bunların %20'sini kullanıyorum. Geri kalan %80 orada duruyor. O %20'yi tek hotkey'e sıkıştırdım.

Fiyatlandırma:

* Tek seferlik: $50. Early adopter fiyatı. - [Satın al](https://yemreak.gumroad.com/l/macos) - Gumroad

## Ve diğer kişisel araçlarım

* Kafede internet yok mu? `Option+Shift+A` → Offline konuş, yapıştır.
* Saatlerce ekran başında mısın? → Mola zamanını hatırlat.
* Güneşte ekran görünmüyor mu? `F1/F2` → Apple limitinin ötesine geç.
* Klavyeyi temizlerken tuşlar mı basılıyor? → Kilitle, sil, aç.

## Vizyon

AI ile asenkron değil, senkron iletişim. İnsanla konuşuyormuşum gibi bilgisayarla çalışmak.

> Yapay zekayla karşılaştığım her problemin çözümünü tek bir yerde topluyorum.

[Satın al](https://yemreak.gumroad.com/l/macos) - Gumroad

{% embed url="<https://optionos.yemreak.com/>" %}


# Yolculugum

2020'den bugüne kripto botundan AI sistemlerine, duygusal keşiflerden formülleştirmeye uzanan yolculuğum.

**2020**, Üniversite 4. sınıfta yılında Polonya'ya Erasmus'la gidip COVID'de yurttan dışarı çıkamama korkusuyla evime dönüp kriptoya merak sarmıştı.

Kriptoda algoritmik trade ilgimi çekti ama algoritmayı kurmak bütün günümü ve odağımı aldığı için (formül kurmayı takıntılı derecede sevdiğimden) okula ve günlük hayatıma odaklanmak için temel fikrimi open source yapıp, kaçtım. 1 hafta sonra Polonya için aldığım burs param olan 450 dolarımın %10-20'sini al sat yaparak kaybedince başarısız hissedip tekrardan fikrime odaklandım. Open source'u silip, 1 hafta uyandıktan uyuyana kadar takıntılı bir şekilde fikri geliştirip yazılım haline getirdim.

İlk denememde **17 Mart/Nisan 2020** idi sanırım 5 kuruş kazansam her bir yemek alırım ile başlattım. Mario'nun altına vurunca çıkardığı sesi kazanç bildirimi ve öldüğünde çıkarttığı sesi kayıp bildirimi olarak ayarladım ve sesi son ses açıp annemin yanına mutfağa gittim. "Anne bak altın sesi gelince sistemim bana 5 kuruş kazandırmış olacak" derken, altın sesleri aralıksız gelmeye başladı. Haliyle kazandığımı değil sistemin bozulduğunu düşündüm ve odama koştum.

Ve..

Kazanıyordum! Sonrasında sistemimdeki güvenlik tedbirini kaldırınca 1$ kazançlar ve sonrasında 10$ ile artarak ilerleyen kazançlara tanık oldum. 5 kuruş dediğim şey ilk yılın sonunda beni tamamen finansal özgür bırakacak hale geldi. Farklı saygın kurumlarda iş teklifi alsam da reddettim ve kendi keşfime odaklandım.

Süreç içerisinde algoritma, kod yani her şeyi **kendim** sıfırdan yaptım. Ve en çok haz veren de bunların hepsini sıfırdan kendimin üretmesi idi. Sanırım formülüme benzer yaklaşımların ve sistemlerin temel seviyede internette zaten olduğunu görseydim bu işe hiç girişmeyebilirdim, "zaten varmış" der geçerdim belki. İyi ki görmemişim önceden. Beni hızlandırmak yerine caydırırdı.

**2022-2024**, İlk yüksek finansal kazançlardan sonra **para yönetimi ve koruması** diye bir dertle yüzleştim ve sistemin kullanamadı paralar ile kendim manuel alım - satım işlemleri denedim. Hatta ironik bir şekilde teknik analiz formüllerinden bir haber şekilde kendim benzerlerini grafikleri izleyerek (formül takıntımdan dolayı içine düşerdim) bulmuşumdur.

Sonuç nasıldı? Tam olarak berbat..

Formülü bilmek sadece sistem kurarken yeterli imiş. Kendim işin içinde olunca duygularım devreye girdi, bekleyemez halde oldum ve hemen sonucu görmek ve geliştirme yapmak istedim ve hiçbir stratejime uzun vade uyamadım. Algoritmik sistemimdeki kazançlarımın yarısından çoğunu kaybettim. Hatta likit olduğum ve bu anla karşılaşırsam diye farklı alanlara dağıttığım paralarla ilerlediğim anlarım da oldu. Hedge denen şeyi yapmışım, istemsizce (aslında korkarak ve kendimi tanıyarak).

Tüm bu manuel alım satımdan gelen kayıplar, izole ve yalnız çalışma serüveni sonucunda, algoritmam hala beni kurtarmaya devam etti, ben her ne kadar ona inanmasam da çünkü süreç içerisinde o kadar kaybettim ki, her şeyin berbat ilerleyeceğine inanmıştım.

Tüm bu acı deneyimler şunu öğretti bana..

DUYGULARINI ÖNEMSE (ve formülleştir, yine takıntı 🙃)

**2022-2023**, Bütün günlerimi duygularımı anlamaya, gruplandırmaya, etiketlendirmeye harcamaya başladım. MBTI gibi bilimsel olarak yanlış kabul gören, subjektif yaklaşımları dahi inceledim, sistemsel yaklaşım ve görüş elde etmek için. Duygu dünyası biraz farklı idi, her şey kişinin inanç sistemine göre değişiyor ve formülize edilse bile inançlar değişince her şey bozuluyordu. Bu süreç içerisinde arbitraj sistemimi de ölçeklendim ve 20'den fazla borsada testler yaptım.

Sonrasında..

**2023-2024**, Arbitraj sistemine sadece bakım yapmaya ve kodlar içerisinde düşünce modellerimi gerçekleştirmeye odaklandım. Yani.. resim çizmek gibi, düşünce tarzımı ve adımlarımı görselleştirmek kodlarımı sürekli baştan yazdım. Amaç sistemi genişletmek değil korumaktı.

Artık önceliklerim duygularım, motivasyonlarım ve bunlar üzerine hareket etmek oldu. Kendi kendime aynada konuşunca, İngilizce konuşunca, beden dilimi ve mimiklerimi görünce enerjimin arttığını fark ettim ve bunlara yönelik sistemler kurmaya odaklandım.

Tam bu anda Whisper modelini yayınladı OpenAI, seslerimi metne çevirebiliyordum. O andan itibaren bütün düşünce süreçlerimi sesli yapıp, kayıt altında almak için otomasyon sistemleri kurdum. Fikir geldiği anda saatimden konuşup Notion'a kaydediyordum, etiketliyordum.

Ardından Voice Clone ile denklestim. Kendi sesimi klonladım ve beğendiğim İngilizce sesleri yapay zeka ile kendi sesimde dinledim. İnanılmaz enerji veriyordu ve bu süreç içerisinde İngilizce konuşma yeteneklerimi, özgüvenimi, mimiklerimi hatta düşünmeyi geliştirdim. Amaç İngilizceden çok ondan aldığım motivasyon idi, tükenene kadar devam ettim. İletişim eğitimi aldım Vinh Giang'tan, kendisinin konuşmasını ne zaman görsem enerjim yükselir, ne söylediğinden çok konuşma tarzını severim.

Artık hem İngilizce hem Türkçe düşünür oldum. Her fikrim kayıt altında, her düşünce yaklaşımlarımı formülleştirmeye çalışır oldum. ChatGPT'den sonra da kendimi formülleştirmeye odaklandım. Günde 8 saatten fazla kendi düşüncelerim üzerine ChatGPT ile konuşuyor buldum kendimi, onları kontrol altına almaya çalıştım.

Bir yandan da İngilizce öğrenme yöntemimi kullanılabilir hale getirip, arkadaşlarımla paylaştım ama fark ettim ki "kendi sesinle İngilizce" fikri benim kadar hissettirmedi kimseye, yalnız hissettim ve kullanım da beklediğim gibi olmayınca vaktimi harcamak istemedim, kendime odaklanmaya devam ettim.

Genelde ritmim budur, bir şeyler keşfederim kendim üzerinde yüksek etkiye sahip olur. Sonra, bunu hemen en yakın çevreme nasıl uygularım aktarırım derim, sonra talep görmez veya ilgi çekse bile benim varlığımla hayatta kalır, ben gidince ilgi söner. Ben de kendi halimde vakit geçirdiğim için sürekli yanlarında olamam. Bu yüzden de insanlar için geliştirmeyi bırakıp, tekrardan kendime dönerim.

Bir diğer aşama da Claude AI. Kendimi daha iyi anlamak için "project knowledge" içerisinde benim davranışlarımı ve yaklaşımlarımı içeren dokümanlar oluşturup, sürekli güncellemeye başladım. Ardından bu yapay zeka dokümanlarımla Agent yaptım ve Telegram üzerinden yine arkadaşlarıma ve yakın çevreme sundum. Ve yine ilgi alanı farklılıklarından dolayı beğenenler olsa bile kullanımları düzenli olmadı, ben de dikkatimi korumak için o sistemi de kendimin kullanacağı hale getirip, bahsetmeyi bıraktım. Tüm bu süreçlerde finansal kazancım sadece eski arbitraj sistemimden geliyordu.

Claude Code sadece konuşarak düşüncelerimi kodlara döküp, sistematikleştirmeye çalışıyorum. Onunla konuşurken nasıl düşündüğümü ve ifade etmem gerektiğine dair farkındalığım artıyor ve notlar alıyorum. Tüm kod projelerimi, fikirlerimi ve dokümanlarımın hepsini tek bir merkeze alıp yapay zekaya aklıma gelenleri projelerime uygulayıp deneme yanılmalar yapıyorum.

Bu arada finans tarafı nasıl?

Şu anda korkuyorum odağımın dağılmasından ve zihnini anlamaktan uzaklaşmaktan. Bu yüzden altın, kendi algoritmam ve korka korka alıp, tutup sonra korkup sattığım hisselerim var. Sınırlı kayıp alanım gibi benim için.

Yapay zeka alanından devam etmek istiyorum..

Yapay zekanın davranışlarından kendi davranışlarımı anlamlandırmaya çalışıyorum.

O da bizim gibi, söyleneni değil de maruz kaldığına uygun hareket ediyor. Yani her ne kadar talimat verirsen ver, öncesinde çok uzun bir metin / bağlam sunduysan eskiyi istemsizce taklit ediyor, değiştiremiyor kendisini. Anlatmak yerine örnekler göstererek bunu hallediyorum.

Her şeyi baştan öğrenince kafası karışıyor, yolda öğrenmesi gerekiyor. Claude code hook sistemiyle, eylemlerine göre bilgiyi otomatik yüklüyorum.

Dokümanları okumuyor, kısa yolları seçiyor aynı bizim gibi. Şirketi girdiğimiz zaman kuralları okumuyoruz, yanımızdaki kişilerden öğreniyoruz yani onların davranışlarına bakıyoruz.

Sıfır dokümantasyon prensibi diyorum buna yani anlatmak yerine kültürü yaşat. Hatta dinlerin de yazılı olarak gelmemesi davranışlarla aktarılmasını buna bağlıyorum, Yazılı olursa öğrenmesi yavaş ve esnettilmesi zor oluyor. Belki yanılıyorumdur ama düşüncemi unutmamayı sağlıyor. İnanç yanlış bile olsa etkisi pozitif ise kabul edilebilir buluyorum. Bu daha açık görüşlü olmamı ve keşfi önyargıyla oyalanmadan yapmamı sağlıyor.

Yapay zeka konusuna tekrar gelirsek kod yazarken doküman yerine eski yazdığım kodları referans veriyorum, bütün projelerimi tek merkezde toplama sebeplerimden biri de bu. Kodlarım değişirse doküman güncelleme derdim de olmuyor, çünkü yoklar. (birazcık da olsa var hala sıfırlayamadım 😅)

Yapay zeka ile çalışırken, tüm davranış yönetim fikirlerimi onda deniyorum ama temel amacım kendi davranışlarımı yönetebilmek.

Neden peki? Bahsetmiştim ya, duygular..

Bu kadar büyük yıkıma sebep olabilen bu şeyler, kontrol edilirse inanılmaz kazanç verir, sadece finans değil yaşam kalitesi ve anlam arayışı için de tek çare olarak görüyorum. Hisleri görmeye ve anlamaya verdiğim önem benim için hayatta kalma savaşına dönüşmüş durumda. (gözyaşım pit.. 🥺)

Özetle yolculuğum şu:

* Çocukken yapboz ve kendi kendine oyun oynamaktan
* İlk okulda matematikle nasıl konuşuruz diye merak edip sayılarla kelimeleri eşleştirmeye
* Orta okulda kağıttan oyunlardaki gibi envanter sistemi ve satın alma katalogları oluşturmaya
* Lisede trigonometrik (sin, cos) formüllerinden yeni formüller elde etmeye ve matematik soruları yazmaya (olan bazı olimpiyat soruları dandik gelmişti rahatsız oluyordum)
* Üniversitede blog, websitesi ve kripto alım satım botuna
* Üniversite sonrası, tek başıma Maslak'ta, karanlık evimde yapay zekalarla kendimi anlamak ve formülleştirmek için konuşmaya
* Ve şimdi de, yapay zekanın davranışlarını kontrol edebilirsem, 6 yıldır biriktirdiğim tüm düşünce sistemlerimle kendi davranışlarımı kontrol etmeye

doğru ilerliyorum

*eksiği var fazlası yok..*

***

**Keşif ve merakımı paylaşanlarla** yakın etkileşim kurmak isterim

* Maslak / Istanbul
* 2025-10-30T20:32:34+03:00


# Keşifler

Üzerine düşündüğüm şeyleri yazdığım yer. Mundane'de gizli yapıyı bulma: okumadan önce göremediğin bir şeyi, okuduktan sonra görmen için.


# Ekranda Göster, AI Koda Gitsin

![SourceMap inceleme modu: ekrandaki her component adı ve dosya:satırıyla çerçeveleniyor](/files/E9vzUKp1tKArtgYwGlZz)

## Problem: insan koda inmek zorunda kalıyor

Bir masaüstü uygulaması geliştirirken yapay zekâ ile çalışıyorsun. Ekranda bir şey görüyorsun — bir buton yanlış yerde, bir liste kasıyor, bir kart bozuk görünüyor. AI'ya "şunu düzelt" demek istiyorsun.

Ama AI senin gördüğünü göremiyor. Ona tarif etmek için sen koda iniyorsun: hangi dosya, hangi satır, hangi component? Koca repoda arıyorsun. Her seferinde tekrar eden bir el-emeği, bir sürtünme.

Oysa temel ilke şu olmalı: **gördüğün her şey, AI'ya tarif edilebilir olmalı.** Sen ekranda göster, kod-yolu kendiliğinden çıksın.

## Fikir: insan UI katmanında kalsın

İnsan–AI etkileşiminde insanın yeri UI katmanıdır — gözünle gördüğün yüzey. Kod tarafına inmek zorunda kalman senin işin değil, aracın eksikliğidir.

Çözüm basit: UI ile kodu birbirine bağlamak. Ekrandaki her görsel elementin, koddaki konumunu (dosya:satır) taşıması.

Bu yeni bir problem değil. Tarayıcılarda çoktan çözülmüş: "Inspect Element" ile bir web sayfasında herhangi bir öğeye gelirsin, kaynağını görürsün. On yıllardır var. Eksik olan, aynı deneyimin macOS native uygulamalarda olmaması. SourceMap tam olarak bunu yapıyor.

## Nasıl çalışıyor

SwiftUI view'ına bir kez etiket koyuyorsun:

```swift
CartView().sourceMap("cart")
```

Sonrası:

* **⌥I** ile inceleme modunu açıyorsun — ekrandaki her component, adı ve `dosya:satır`'ıyla çerçeveleniyor (yukarıdaki ekran görüntüsü tam olarak bu)
* Fareyi gezdiriyorsun — iç içe geçmiş component'ler zincirleniyor
* **⌥scroll** ile derinliğe iniyorsun, en içteki elementi nişan alıyorsun
* **⌥C** ile `cart — CartView.swift:42` panoya kopyalanıyor

Bu metni doğrudan AI'ya yapıştırıyorsun. Artık AI aramıyor — tam o dosyaya, o satıra gidiyor.

Önemli ayrıntı: `dosya:satır`'ı sen yazmıyorsun. Swift derleyicisinin `#fileID` ve `#line` sabitleri bunu etikete otomatik gömüyor. Etiketi koydun mu, gerisi kendiliğinden gelir; satır numarası elle takip edilmez.

## Tek kimlik, üç yüzey

İşin asıl güzel tarafı: aynı isim üç yerde birebir yaşıyor.

```
EKRAN          KOD                      DOSYA
cart      =    .sourceMap("cart")  =    ...component.Cart.swift
```

Biri değişince diğeri kırılır. İsmi değiştirdin mi, ekranda da kodda da dosyada da senkron olmak zorunda. Yanlış eşleme fiziksel olarak imkânsız — çünkü hepsi tek kaynaktan türüyor.

Altında derin bir tasarım ilkesi var: **hatayı çözmek yerine, hatanın var olmasını engellemek.** İki yeri elle eşleştirirsen er ya da geç kayar. Tek yerden türetirsen kayamaz.

## Neden bu kadar hızlandırıyor

Bir hata gördüğünde döngü şu hale geliyor:

> ekranda elementi göster → `ad — dosya:satır` kopyala → AI'ya ver → AI nokta atışıyla o satıra gider → düzeltir.

Arama yok. Tahmin yok. "Hangi dosyaydı bu?" yok. Ne yaptığını biliyorsun, çünkü gördüğün şey doğrudan koda bağlı. macOS'ta yazılım geliştirme bu yüzden inanılmaz hızlanıyor: insan gözüyle görür ve gösterir, AI koda gider.


# Klasörlerimi Özelliklere Değil Kararlara Göre Diziyorum

![](/files/8Mjh4Msr4ezM1XSqo8Vd)

Yapay zekayla kod yazarken bir şey fark ettim. **Eklemesi kolay, çıkarması zor.** Bir özellik istiyorsun, hop, geldi. Ama o özelliği kaldırmak istediğinde, bağımlılıklar her yerde.

Önce feature-bazlı klasör yapısıyla çalışıyordum. Her özellik bir klasör. Klasik. Ama bir süre sonra şunu gördüm: aynı kararı tekrar tekrar veriyorum. Mesela bir panel tasarımı yapmışım clipboard için. Command bar'da da aynı paneli istiyorum. Yeni baştan yapmam mı gerekiyor? Yoksa eski koddan import mu edeyim?

Sorun şuydu: feature'lar karar'ları içine alıyordu. Karar feature'ın hizmetkarı oluyordu. **Oysa kararlar feature'lardan daha temel bir şey.**

Sonra decision-based architecture'a geçtim. **Klasörler artık feature değil, decision.** "Panel tasarımı" diye bir hücre. "Renk seçimi" diye bir hücre. "Aksiyon dispatch" diye bir hücre. **Her hücre kendi authority'sini manifest ediyor: burada şu konuda karar verilir.**

Bunun bir sonucu var: **bir hücreyi sildiğinde, ona bağlı her şey silinmiş oluyor.** Çünkü bağımlılık decision'a, decision'ı kullanan feature'a değil.

Sonra başka bir şey daha gördüm. Sistemin amacı nedir? **Bir sistemin var olma sebebi, sonunda bir aksiyon üretmesi.** O zaman bütün sistem aksiyona bağlanmalı.

Ama önemli bir nokta: aksiyon, dışarıdan eklenen bir özelliğin sistemi kendine çekmemeli. Aksiyon, "ben bu command bar'da gözükürüm" diye projection vermeli. **Contract aksiyonun kendisinden geliyor, dışarıdan değil.**

Sonra şunu fark ettim: aksiyon güzel, sistemin amacı bu. Ama aksiyon bir decision'dan çıkar. Birinin karar vermesi lazım ki aksiyon ortaya çıksın. Agent karar veriyorsa, agent'in decision'lara erişimi olmalı. **O zaman file system decision olsun.**

Şöyle bir zincir oluştu sonunda:

* Sistem aksiyonlara bağlanır
* Agent decision'lara bağlanır
* Decision'lar authority hücrelerinde durur
* Authority hücrelerini insan manifest eder

Bir adım daha gittim. Authority neden var? Bir intent için, bir niyet için. **Ama agent niyet bilmez; niyet insana aittir. Sistemde saklanmaz, insan üretir.**

İnsan neden niyet üretir? **Durum değişir, observe edersin, niyete ulaşırsın.**

**Son zincir şu: state-change → intent → decision → action.**

Bu sıradan bir mimari değil aslında. Bir epistemoloji. **İnsanın iç-durumundan dış-aksiyona nasıl geçtiğinin haritası.** Üstelik kod olarak yazıldığı için, teoriyi her gün uyguluyorum.

Hâlâ refactor ediyorum. Çünkü her yeni karar zincirin bir yerinde sırıtıyor, oranın daha doğru bir yapısı var.


# Her "Güzel" Dediğimde Altında Ne Olduğunu Çözmeye Başladım

![](/files/5Rn8qcOCqQIcIPzyZN2H)

Bir kural ortaya çıkardım kendim için. **Her subjektif tabir, aslında objektif ifadelerin orkestrasyonudur.** Orkestrasyon priority'lere göre, priority'ler değerlere göre, değerler de eksikliklere ve koşullara göre ortaya çıkar.

"Güzel" subjektif görünür. Ama açtığında altında objektif metrikler var: simetri, oran, aşinalık, yenilik, kişisel geçmiş, kültürel context. Her biri belirli bir ağırlıkla işliyor. **O ağırlıkları priority'lerin belirler, priority'lerini değerlerin, değerlerini eksikliklerin.**

"Güzel" diye bir his değil aslında. **Belirli koşullarda belirli ağırlıklarla çalışan bir hesap.** Sonucu bir his olarak yaşıyorsun, ama altında deterministik bir orkestrasyon var.

Bunu fark ettiğimden beri kendimi sürekli modellemeye çalışıyorum. Hangi subjektif tabirimin altında ne var? "Bu kişiyi seviyorum" derken hangi objektifler hangi ağırlıkta? "Bu sıkıcı" derken neden sıkıcı, hangi koşul karşılanmıyor?

Bir süre sonra şunu gördüm: **dar boğazlarım var — belirli metriklerin ağırlığı çok yüksek, başkalarınınki çok düşük.** Bu beni belirli durumlarda zayıf yapıyor. Mesela "yapısal derinlik" çok yüksek ağırlıkta, "sosyal akışkanlık" çok düşük. **Bu seçim değil, mevcut konfigürasyon.**

İnsanlar arasında bir şey hissetmediğim anlar oluyor. Çoğu insan bunu "duygusuzluk" sanır. Değil. Sadece o ortamda yüksek ağırlıklı metriklerim karşılanmıyor. **Sistem ateşlenmiyor; eksik olan ben değilim, mismatch var.**

İnsanların neden bir şey hissettiklerini de anlamlandırmaya çalışıyorum. Bir şarkı duydu, ağladı. Hangi objektifler ne ağırlıkta birleşti de bu sonuç çıktı? Çoğu zaman onun çocukluğunda, geçmişinde, eksikliklerinde bir şey var. **Onun konfigürasyonu farklı; o konfigürasyonda o şarkı ateşliyor.**

Bu yaklaşımın bir tehlikesi var. Her şeyi hesaplanabilir gibi göstermek. **Oysa bazı şeyler ölçülmüyor, ya da ölçtüğümüzü sandığımız şey gerçek değişken değil.** Bu sınırı kabul ediyorum.

Ama yine de bir model olmadan yaşamak imkansız. **Soru şu: modelin var olduğunu kabul edip görünür mü yapacaksın, yoksa görünmez kalmasına izin verip ona göre tepki mi vereceksin?**

Birincisi yorucu. İkincisi tehlikeli.

Şu an yorgun olmayı tercih ediyorum.


# Gardırop Düzenlerken Bütün Kararlarımın Aynı Olduğunu Gördüm

![](/files/NTq8xfMv8exxkyyl78mB)

Gardırop düzenlerken bir trade-off fark ettim. İki strateji var: pijamaları üst üste koymak, ya da tişört-pijama-tişört şeklinde sıralamak.

**Üst üste koyarsan koyma maliyeti 1, alma maliyeti n. Sıralı koyarsan koyma maliyeti n, alma maliyeti 1.** Yani biri yazma pahalı okuma ucuz, öbürü tam tersi.

Bu tanıdık geldi. **Çünkü bu eager vs lazy evaluation.** Precompute vs compute-on-demand. Aynı yapı.

Ama bir asimetri var. Eğer gelecekte pijama giymekten vazgeçersem, sıralı düzende yatırım çöpe gider. Üst üste düzende kayıp yok, çünkü zaten yazma maliyeti 1'di. **Sıralı düzen geleceğe atılan bir bahis; üst üste düzen belirsizliğe karşı dayanıklı.**

Sonra başka bir şey gördüm. Sıralı düzende pijamayı alırken düşünmem gerekmiyor, O(1). Ama üst üste düzende her seferinde düşünmem lazım.

**Düşünmek context switch'tir.** Kod modundan pijama moduna geçmek, sonra geri dönmek. Bu maliyetli. Yani **üst üste düzen yazma maliyetini 1 göstermiyor; gizli bir maliyet var, her alımda context switch.**

Bu noktada düşünmenin tanımı çıktı. Veri zaten işlenmiş formda değilse, yani O(1) değilse, düşünürüz. **Düşünme, işlenmemiş veriyi işlemektir.**

Bu data transfer gibi. Bir noktadan öbürüne veri taşımak. Format uymuyorsa arada bir processor olur. **Ve her processor kayıplıdır.** Enerji transferinde de aynı: belirli bir miktar yolda kaybolur, sıcaklık olarak geri döner. Düşünme süreci de öyle, kayıplı bir processor.

Şimdi soru şu: ne zaman batch process yapmalı (sıralı düzen), ne zaman lazy bırakmalı (üst üste düzen)?

Cevap geleceğin belirliliğine bağlı. **Gelecek belliyse batch yap, context switch maliyetinden kurtul, akışta kal. Gelecek belirsizse lazy bırak, boşa yatırım yapma.**

Aslında bunu düşünüyordum çünkü kendi kararlarımı organize etmek istiyorum. Hangilerini şimdi vereyim, hangilerini erteleyeyim?

Sanırım kural şu: **kararın sonucunu çok kez kullanacaksam ve koşullar stabil ise, şimdi ver. Tek seferlikse ya da koşullar değişkense, ertele.**

Gardırop hiç önemli değildi. Pijama da önemli değildi. Gördüğüm şey iki maliyet tipi arasındaki değiş-tokuştu: yazma maliyeti vs okuma maliyeti. Sonra bunu hemen başka alanlara taşıdım: bilgisayar bilimi, termodinamik, biliş, karar teorisi. Dört alan, tek yapı.

Çoğu insan pijamaya bakar, pijama görür. Ben pijamaya bakıyorum, trade-off görüyorum. **Pijama sadece taşıyıcı; asıl nesne, alanların altındaki ortak yapı.**


# Kendi Sesimi İngilizce Dinledim, Bir Yılda Öğrendim

![](/files/CvqCGZ0r39og0vmCo9Jc)

Aslında İngilizce öğrenmek amacım değildi. İki kuralın doğru olup olmadığını test ediyordum. İngilizce sadece case study'ydi.

İlk kural şuydu: **bir şey öğrenmenin en hızlı yolu, duygu maksimum seviyedeyken hemen aksiyon almaktır.** Çünkü duygu maksimumdayken tükenmesi en hızlı oluyor. **Sistem en hızlı şekilde erişilebilir olmalı, yoksa duygu kaybolur ve onunla momentum.**

İkinci kural: **destination visible ise aksiyon almak çok daha kolay.** Gideceğin yeri net görüyorsan, oraya gitmek kolaylaşıyor. **Belirsizlik en büyük friction.**

Bu iki kuralı birleştirdim. Sonra bir tetik gerekiyordu. Instagram'da aksanlı İngilizce konuşan bir case gördüm, bir şey hissettim. Kuralları test etme zamanı.

Şöyle çalıştırdım. Kendi sesimi alıp yapay zekayla İngilizce'ye çevirdim. Sonra kendi sesimi İngilizce konuşurken dinledim. Burada iki şey aynı anda oldu.

Birincisi: destination visible oldu. Kendi sesimi İngilizce duyduğum için, hedef artık soyut değildi. "İngilizce konuşan biri" değil, "İngilizce konuşan ben." **Hedef bedenleşti.**

İkincisi: haz aldım. Kendi sesini başka bir dilde duymak garip bir şey. Bir şey hissettim. **Ve o duygu yüksekken aksiyon aldım** — telaffuz çalıştım, taklit ettim. Sistem erişilebilirdi.

Bir yıl sonra İngilizce öğrenmiştim. Aksanlı, akıcı.

Ama asıl çıkan şey İngilizce değildi. **Kuralların doğru olduğunun kanıtıydı.**

Bir kural daha çıktı bu süreçten. Çoğu öğrenme yöntemi destination'ı belirsiz tutuyor, sonra "motivasyonun olsun" diye dışarıdan duygu pompalıyor. Bu ters çalışıyor. **Ödünç duygu hızla kaybolur.**

**Doğru sıra şu: önce destination'ı bedenleştir, sonra duygu kendiliğinden gelir, sonra o duygu maksimumdayken hızlıca sisteme bağla.**

Şimdi bu kuralı başka şeylere uyguluyorum. **Her şey bir case study; asıl ilgilendiğim şey kuralın kendisi.** İngilizce, kod, alışkanlık, ilişki, hepsi kuralın test laboratuvarı.

**Kuralın yanlış çıkacağı bir alan bulursam, daha da iyi olur — çünkü orada daha derin bir yapı vardır.**


# Düşüncem Kırılmasın Diye Her Şeyi Tek Bir Akışa Bağladım

![](/files/oY7Z3jrCSToKSBoIsVeb)

Bir süredir yapay zekayla çalışırken aynı problemi yaşıyordum. Bir şey düşünüyorum, akıyor, sonra durup yazmam gerekiyor. Yazarken düşünce kırılıyor. Ekran değiştiriyorum, copy paste yapıyorum, fotoğraf çekiyorum, başka pencereye geçiyorum. Her geçişte bir şey kayboluyor.

Sorun aslında tool değildi. **İnsan düşüncesi en iyi flow'da çıkar; context switch olmaması lazım.** Ama bütün araçlar tam tersini yapıyor, her şey için ayrı bir mod, ayrı bir aksiyon.

Önce kendime bir kural koydum. **Tek bir session olsun.** Konuşurken, kopyalarken, fotoğraf çekerken, annotation yaparken, hepsi tek session içinde olsun. Parçalı session yok. Tek bulk session.

Sonra ikinci kural: **copy paste değil, sadece copy.** Yani tek bir aksiyon sürekli batch yapılsın. Yapıştırma sonra, hepsi birden, tek seferde.

Bu iki kuralla bir uygulama yaptım. Konuşurken kopyaladığım her şey otomatik sıralanıyor. Resim, gif, metin, hepsi. Sonra tek bir AI agent'ına çıktı olarak gidiyor.

Aslında ekstrem bir yapı değil. Dictation'a bir clipboard sırası eklemişim sadece. **Ama arkadaki mantık bu: flow'u kırma.**

Bir detay daha eklemem gerekti. Konuşma transcription'a dönüşürken bir gecikme var. O sırada bir şey daha söylemek istersen ne olacak? Çoğu uygulamada bu yeni session sayılır, flow kırılır.

Bunun için multi-session yaptım. Bir saniye içinde yeni ses gelirse, transcription bitmemiş olan ile merge ediliyor. **Aynı düşüncenin parçaları, zaman olarak ayrı görünse de, birleştirilir.**

Şu an günde 10 saat falan bunu kullanıyorum. Bilgisayar kullanma süremle aynı. Hatta bu yazıyı da onunla yazıyorum.

İlginç olan şu: uygulamayı dağıtmadım. Çünkü amaç uygulama değildi. **Amaç flow kuralını test etmekti; uygulama o kuralın bir örneği.** Friction'dan çıkmış bir tool.

Asıl soru şu kalıyor: flow kuralı her zaman doğru mu? Belki bazı düşünceler context switch ister. Belki bazı kararlar yavaşlamayı gerektirir. Henüz bilmiyorum.

Ama şimdilik şu kesin: **çoğu zaman context switch faydadan çok kayba neden oluyor; ve tool'lar bunu bilmeden tasarlanıyor.**


# Serena MCP

```
SERENA MCP

  ┌─────────────────────────────────────────────────────┐
  │ PROBLEM: AI kod yazarken codebase'i anlamıyor      │
  │          Token limit, grep-like search, string find │
  └─────────────────────────────────────────────────────┘
                          ▼
  ┌─────────────────────────────────────────────────────┐
  │ SERENA SOLUTION (MCP + LSP Integration)             │
  │                                                     │
  │  Code ──> AST Parser ──> LSP ──> Symbols           │
  │                           │                         │
  │  AI Agent ────────────────┘                         │
  │    │                                                │
  │    ├─ find_symbol                                  │
  │    ├─ find_referencing_symbols                     │
  │    ├─ insert_after_symbol                          │
  │    └─ semantic_code_search                         │
  └─────────────────────────────────────────────────────┘
                          ▼
  ┌─────────────────────────────────────────────────────┐
  │ OUTCOME: IDE gibi kod anlama + düzenleme           │
  │          Token-efficient, symbol-level navigation   │
  └─────────────────────────────────────────────────────┘

  ALTERNATİFLER (2025)

  Context Management (Serena'ya En Yakın):

  A. CLAUDE CONTEXT (Zilliz)
  ┌────────────────────────────────────┐
  │ Codebase → Vector DB (Zilliz)     │
  │ Query → Hybrid Search              │
  │ (BM25 + Dense Vector)              │
  │                                    │
  │ ✓ ~40% token reduction             │
  │ ✓ Incremental indexing (Merkle)   │
  │ ✓ AST-based chunking               │
  │ ⚠ Requires Zilliz Cloud + OpenAI  │
  └────────────────────────────────────┘

  B. CHROMA MCP
  ┌────────────────────────────────────┐
  │ Documents → Vector DB              │
  │ Semantic + Full-text search        │
  │                                    │
  │ ✓ Persistent storage               │
  │ ✓ Open source                      │
  │ ⚠ Document-focused (not code)      │
  └────────────────────────────────────┘

  Framework Alternatifleri:

  C. LANGCHAIN/LANGGRAPH
     Developer Framework → Custom tools
     ⚠ Complexity, security responsibility

  D. SEMANTIC KERNEL (Microsoft)
     .NET/Python SDK → Memory management
     ⚠ Microsoft ecosystem dependency

  E. VERTEX AI (Google)
     Managed platform → Enterprise features
     ⚠ Vendor lock-in, Google Cloud only

  KARŞILAŞTIRMA

                   Serena  Claude   Chroma  LangChain
                           Context
  ────────────────────────────────────────────────────
  Code-focused       ✓       ✓        ✗       ✗
  Semantic search    ✓       ✓        ✓       △
  Symbol-level       ✓       ✗        ✗       ✗
  LSP integration    ✓       ✗        ✗       ✗
  Free/Open source   ✓       ✓        ✓       ✓
  Setup complexity   △       △        ○       ●
  Token efficiency   ●●●     ●●●      ●●      ○
  30+ languages      ✓       ✗        N/A     N/A
  IDE-like tools     ✓       ✗        ✗       ✗
  Vector DB req.     ✗       ✓        ✓       △

  Legend: ✓=Yes ✗=No △=Partial ○=Low ●=Medium ●●=High ●●●=Very High

  PATTERN

  Serena: LSP → Symbol-level → IDE tools
  Claude Context: Vector DB → Semantic search → Hybrid retrieval
  Chroma: Vector DB → Document management → Persistent storage
  LangChain: Framework → Custom orchestration → Developer control

  CONSTRAINT

  - Serena: Python 3.8+, LSP servers for each language
  github.com/oraios/serena
  - Claude Context: Node 20-23, Zilliz Cloud token, OpenAI API
  github.com/zilliztech/claude-context
  - Chroma: Python env, client setup docs.trychroma.com
  - LangChain: Framework complexity, security self-managed
  python.langchain.com

  2025 Güncellemeler

  MCP 1. yıldönümü (2025-11-25):
  - Task-based workflows (long-running operations)
  - URL mode elicitation (secure OAuth)
  - Sampling with tools (agentic servers)
  - 2000+ MCP servers ecosystem

  Sources:
  - https://github.com/oraios/serena
  - https://medium.com/@souradip1000/deconstructing-serenas-mcp-powered-se
  mantic-code-understanding-architecture-75802515d116
  - https://www.merge.dev/blog/model-context-protocol-alternatives
  - https://github.com/zilliztech/claude-context
  - https://cyberpress.org/best-mcp-servers/
  - https://blog.modelcontextprotocol.io/posts/2025-11-25-first-mcp-annive
  rsary/
```


# Deterministik Mimari · Config (\_manifest.ts) Driven Architecture · Zero markdown 14 Nov 2025

> **oznel konusmalarim**, **nesnel bilgiler**

Şu an üzerine çalıştığım yaklaşım **her şeyimi deterministik yapmak**. Projelerimde tüm her şeyin **deterministik olduğu, string gibi tiplerin kullanılmadığı** bir mimari deniyorum.

Her proje ve modül kendisini **\_manifest.ts** dosyolarıyla diğer modülslara haberdar ediyor. Hedeflenen **sistemin %100 bir şekilde her bir parçasından haberdar olması.**

Bu süreç doğrultusunda **geliştirme süreci çok uzayacak** farkındayım. Bu bedel ödenebilir mi? Onun testini yapıyorum aslında. Çünkü geliştirme sürecini yapay zekalar yaptığı için sanki **ödenebilir gibi** geliyor.

Ayrıca bir diğer yaptığım şey de şu, **hiç doküman yazmayayım, type dosyaları oluşturayım ve type dosyaların üzerinde JsDoc ile dokümanlari embedded yapayım**. Ve bunu yaparken de sadece örüntüyü vereyim, yani uzun açıklama yok, sadece örüntü, template.

Bir diğer ilginç keşfettiğim şey de; kendi telegram botumu sistematik hale getirirken, `_manifest` ile, insana dair benzerlikler görüyorum. İnsanı da büyük bir sistem olarak görüyorum.

```sh
Bot ↔ İnsan Paralelleri:

  ┌─────────────────┬──────────────────────┬─────────────────────┐
  │ Kategori        │ Bot                  │ İnsan               │
  ├─────────────────┼──────────────────────┼─────────────────────┤
  │ Identity        │ id, button           │ İsim, erişim        │
  │ UI              │ output, keyboard     │ Görünüş, jest       │
  │ Lifecycle       │ activations, skills  │ Uyku, yetenekler    │
  │ Integration     │ dependencies, perms  │ Aile, arkadaş       │
  │ Behavior        │ lifecycle, editable  │ Tepki, esneklik     │
  └─────────────────┴──────────────────────┴─────────────────────┘
```


# Yapay Zekalar icin Visualization Hatirlatmalari

1. STATE MACHINE - state geçişleri, transition kuralları, terminal states
2. BOX DIAGRAM (Black/White) - abstraction level, detay gizleme/gösterme
3. FLOW CHART - sequential flow, conditional branching, merge points
4. DECISION TREE - hierarchical decisions, criteria-based branching
5. FEEDBACK LOOP - circular causality, self-regulation, reinforcing/balancing
6. CAUSAL LOOP - causal chains, feedback polarity (+/-), delays
7. HIERARCHY / TREE - parent-child, depth levels, breadth
8. PROCESS PIPELINE - sequential stages, data transformation
9. LAYERED ARCHITECTURE - separation of concerns, abstraction layers
10. NETWORK / GRAPH - nodes, edges, connections, topology
11. MATRIX / GRID - two-dimensional, row/column relationships
12. VENN DIAGRAM - set relationships, intersection, union
13. TIMELINE / SEQUENCE - temporal ordering, before/after, dependencies
14. INPUT-OUTPUT TRANSFORMATION - function mapping, side effects
15. CONTAINER / SCOPE - nesting, scope boundaries, containment

```sh
A ──> B ──╮
          │
          ╰──> C ──> D
Start ──╮
        │
        ╰───╮
            │
            ╰───> End

 ┌──────────────┐
 │ voice msg    │
 └──────┬───────┘
				▼
		◉ voice_received ◄────────────────┐
				▼                             │
	voice_transcribe                    │
				▼                             │
		◉ voice_transcribed (TEXT)        │
				│                             │
				├──────────┬─────────┐        │
				▼          ▼         ▼        │
text_synthesize  translate  tag       │
				│          │         │        │
				▼          ▼         ▼        │
		◉ voice_   ◉ text_   ◉ tag_       │
		synthesized translated selection  │
		(VOICE)    (TEXT)     (SPECIAL)   │
				│          │                  │
				└──────────┴──────────────────┘
				▲                     │
				└─────────────────────┘
```

PATTERN: Her model bir abstraction level seçer ve belirli bir görünüm sağlar. CONSTRAINT: Model seçimi soruya bağlıdır — state geçişleri için state machine, hiyerarşi için tree, zaman için timeline.


# Hammerspoon Dictation

macOS için Metal GPU hızlandırmalı sesli yazıya çevirme sistemi

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1o6158u/built_a_voicetotext_system_for_macos_with_claude/) • [r/macOS](https://reddit.com/r/MacOS/comments/1o613zy/voicetotext_on_macos_using_local_gpu_0315s/) • [r/LocalLLaMA](https://reddit.com/r/LocalLLaMA/comments/1o61494/local_voicetotext_on_apple_silicon_with_smart/)

macOS için yerel GPU kullanarak ses-metin dönüşümü yapan sistem. Claude Code ile yazdım.

Alt+A → konuş → Alt+A → metin yapışır. 0.3-1.5 saniye.

## Akış

```
Alt+A tuşuna bas (TR) / Alt+Shift+A (EN)
  ↓
Hammerspoon hotkey yakala
  ↓
audiorecord.swift kayda başla → Görsel gösterge (◉ REC)
  ↓
Alt+A tekrar bas
  ↓
audiorecord.swift kaydet ~/Recordings/*.wav
  ↓
voice-transcribe.ts orkestrasyon
  ↓
  ┌─────────────────────────────────────────┐
  │ Sağlayıcı Kademesi (hata → sonraki)     │
  ├─────────────────────────────────────────┤
  │ 1. Parakeet :8768                       │
  │    ├─ Sadece İngilizce                  │
  │    ├─ ~0.3s                             │
  │    ├─ Ücretsiz, GPU                     │
  │    └─ HTTP istek                        │
  │         ↓ (hata veya TR)                │
  │ 2. Whisper MLX :8770                    │
  │    ├─ Türkçe/İngilizce                  │
  │    ├─ ~1.5s                             │
  │    ├─ Ücretsiz, GPU                     │
  │    └─ WebSocket stream                  │
  │         ↓ (hata veya kapalı)            │
  │ 3. ElevenLabs API (opsiyonel)           │
  │    ├─ Bulut                             │
  │    ├─ ~2-3s                             │
  │    └─ API key gerekli                   │
  │         ↓ (hata veya kapalı)            │
  │ 4. OpenAI Whisper API (opsiyonel)       │
  │    ├─ Bulut                             │
  │    ├─ ~2-3s                             │
  │    └─ API key gerekli                   │
  └─────────────────────────────────────────┘
  ↓
Transkript metni döndü
  ↓
Akıllı pano: eski kaydet → yeni yapıştır → eski geri yükle
  ↓
Metin aktif uygulamada görünür + boşluk ekle
```

## Mimari

```
hammerspoon/
├─ init.lua                   → Giriş noktası, config yükle
├─ modules/dictation.lua      → Kayıt orkestrasyon, hotkey
└─ scripts/
   ├─ voice-transcribe.ts     → STT sağlayıcı kademesi
   └─ lib/
      ├─ parakeet.ts          → HTTP istemci
      └─ whisper-stream.ts    → WebSocket istemci

services/
├─ parakeet.py               → :8768 HTTP sunucu (Parakeet MLX)
├─ whisper-mlx-stream.py     → :8770 WebSocket sunucu (Whisper MLX)
└─ ecosystem.config.cjs      → PM2 servis yönetici

audiorecord-swift/
└─ audiorecord.swift         → Yerel ses kaydı (AVFoundation)
```

## Kurulum

```bash
git clone https://github.com/yemreak/hammerspoon-dictation.git
cd hammerspoon-dictation
./scripts/install.sh
```

Otomatik yükleyici her şeyi kuruyor. 5 dakika.

[hammerspoon-dictation](https://github.com/yemreak/hammerspoon-dictation)


# Git Commits Kolektif Hafıza Olarak

Git commit geçmişini yapay zeka için kolektif hafıza olarak kullanıyorum. Anayasa + kültür + aksiyon. Evrim gibi.

{% embed url="<https://youtu.be/sh2qv-4WRhM>" %}

Commit message'da "**learned: dikkat ekonomisi**" yazıyorum. Yapay zeka git geçmişine bakıyor, neyi öğrendiğimizi görüyor, tekrar öğrenmeye çalışmıyor. Ateşi bulmak gibi.

Akış şu: Makefile komutunu çalıştırıyorum, `learned` başlıklı commitleri yapay zekaya gönderiyor, değişiklikleri gösteriyor, commit nasıl atması gerektiğini hatırlatıyor. Her seferinde "şöyle yap, böyle yap" demek yerine **onaylanmış aksiyonları** gösteriyorum. Kod görüyor zaten, sonuç olarak ne öğrendiğimizi commit'te buluyor.

Üç katman var:

**Anayasa** → Output style dosyası. Claude.md değil. System prompt değiştirmesi lazım. Ülkenin kanunu gibi. 2497 satır. Nasıl konuşması gerektiği, davranış kuralları.

**Kültür** → Git geçmişi. İnsanların kültürü gibi. Alınan aksiyonlar, kolektif hafıza. Yapay zekalar buradan öğreniyor.

**Aksiyon** → Makefile komutları. Yapay zeka orkestrator oluyor. Pipeline'lar, git komutları, terminal komutları. İşletim sistemi gibi.

Pattern şu: bilginin kendisi değil, **aksiyona geçiren bilgi** topla. Fikirler değil, işe yarayan aksiyonlar. Evrim gibi - ateşi bulmak aktarılır, birikir, medeniyet kurulur. Aynı konsept yapay zekada. Git geçmişine bakıyor, "ha ateşi böyle bulmuşlar" diyor, tekrar aramıyor.

Bir ülke yönetiyormuş gibi düşün bunu.


# Philips Hue: Yapay Zeka ile Sesli Kontrol

Claude'a evdeki Philips Hue ışıklarıma tam erişim verdim. İlk defa yapıyorum bunu. AI dokümanları okudu, scriptleri yazdı, şimdi sadece konuşuyorum.

{% embed url="<https://youtu.be/jDfV28R9BgE>" %}

"Woooow! Hahaha." İlk tepkim buydu. Yapay zeka ışıkları maviye çevirdi. Biraz rahatsız edici ama çalışıyor.

Akış çok basit: ses kaydı atıyorum, AI Hue API dokümanını okuyor, CLI komutu yazıyor, ışıklar yanıt veriyor. `hue color blue` yazıyor, lambalar mavi oluyor. `hue dim 50` yazıyor, parlaklık yarıya düşüyor. Düşünmeye gerek yok, direkt aksiyon.

İlk denemede bütün yetkiyi verdim. "Rengi değiştir" dedim, yeşil yaptı. Sonra mavi. "Abi mavi kullanma rahatsız oluyorum" dedim, sıcak beyaza çevirdi. Lambalar dans ediyor gibi oldu. Palyaço gibi. Ama çalışıyor işte.

Proof of concept bu. Erişebilirliği gösteriyorum. Benim sevdiğim kısım bu zaten - erişilebilir kılmak. Kullanmayı değil, sadece erişilebilir kılmayı. Artık bundan sonrası kullananın hayal gücüne kalmış.

Pattern şu: ses → AI okuyor → kod yazıyor → fiziksel değişim oluyor. Aynı pattern Chrome için çalışır, VSCode için çalışır, MacOS için çalışır. Şu an Hue lambalarda test ettim, yarın başka bir şey bağlanır.

Kod [GitHub'da](https://github.com/yemreak/vibe-coding/tree/main/packages/hue). İlk kurulum için `hue auth` komutu, bridge'deki butona basman lazım önce. Environment variable'lar `.env` dosyasında: `HUE_BRIDGE_IP` ve `HUE_USERNAME`.

Sırada ne yapacagim, bilmem :D


# Claude Code'a Yeni Başladım, Temel Olmayan Özellikleri Araştırmasını İstedim

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1lnckpq/started_claude_code_recently_had_it_research/)

Geçen hafta Claude Code kullanmaya başladım. Çoğu YouTube videosu aynı 5-6 temel özelliğe 20 dakika harcıyor (planlama modu, özel komutlar, vs).

Sinirlenip Claude'dan gerçekten gelişmiş patternleri araştırmasını istedim - özellikle herkesin zaten bildiği bariz şeyleri atlamasını söyledim.

Bahsedilmediğini gördüğüm bazı ilginç şeyler buldum: <https://claude.ai/public/artifacts/6221a407-8c3a-4de0-9445-a0023063089f>

Özellikle beğendiklerim:

* Paralel Claude instance'ları için Git worktree
* Headless otomasyon için \`claude -p\`
* Farklı thinking token bütçeleri
* Devam etmek için \`/resume\`

Kendim de bu konuda yeniyim, bu yüzden her şeye kefil olamam ama başkalarının da faydalı bulabileceğini düşündüm.


# "MAX\_THINKING\_TOKENS": "31999" Bilmeyenler İçin, Bu Oyun Değiştirici

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1njlrx4/for_the_ones_who_dont_know_max_thinking_tokens/) • [r/ClaudeCode](https://reddit.com/r/ClaudeCode/comments/1nqjnmn/for_the_ones_who_dont_know_max_thinking_tokens/)

Model düşünme kapasitesini artırın (daha yavaş yapıyor ama değer)

`.claude/settings.json` dosyanızı açın ve şunu koyun

```json
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"includeCoAuthoredBy": false,
	"env": {
	...
		"MAX_THINKING_TOKENS": "31999", // <====== BU
		"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
	...
	},
...
}
```

***

bu arada API için kullanmanızı önermem, maliyet çılgınca pahalı olur (ben claude code max kullanıyorum)


# AI Önemli Dosyaları Sildi, rm Komutu trash Oldu

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1nrrmv3/til_ai_keeps_using_rm_rf_on_important_files/) • [r/ClaudeCode](https://reddit.com/r/ClaudeCode/comments/1nrrn4z/til_ai_keeps_using_rm_rf_on_important_files/)

AI ile pair programming yapıyordum. Config dosyalarımı iki kez sildi.

İlk düşünce: Onay istemleri ekle Gerçek: Okumadan yes'e basmaya devam ettim

İkinci düşünce: İzinleri kısıtla Gerçek: Günlük iş için çok sinir bozucu

Son karar: `alias rm='trash'`

Şimdi AI gün boyu rm -rf yapabilir. Dosyalar çöpe gidiyor, yok olmuyor.

macOS için komut:

```bash
alias rm='trash'
```

Kalıcı yapmak için \~/.zshrc'ye ekle.

***

edit: İşte başka bir alternatif

```bash
rm() {
    echo "WARNING: rm → trash (daha güvenli alternatif)" >&2
    trash "$@"
}
```


# VsCode Extension Aramak Yerine AI ile VSCode'a File History Extension Ekledim

{% embed url="<https://youtu.be/QZeaFYFlYW8>" %}

VSCode'da dosyalarin git gecmisini gormek istiyordum. Extension aramak yerine AI'a 4 dakikada yaptirdim.

**Dry run yaptir:**

* Ne yapacagini once goster, sonra uygula
* Yanlış anlamayi onle

**Literatur terimlerini kullan:**

* "Temiz yap" YOK → "compact code" VAR
* "Event-driven", "functional programming"
* AI literaturu biliyor, sen de ogrenirsen hizlaniyor

**Referans goster:**

* Diger featurelara bak, ona benzer yap
* Kod uzerinden ogret, dokuman yazma

**OCR kullan:**

* Screenshot YOK → text kopyala VAR
* "Sag ustteki" YOK → "file history button" VAR
* Pozisyon YOK → isim VAR

**Enerji onemli:**

* Icon renk ekle
* Enerji dusuyor → verim dusuyor
* Visual feedback enerji yukseltiyor

***

edit: Mevcut extension'a feature ekle, marketplace'de arama yapma. 2-4 dakika suruyor.


# Dokümantasyon Yetişmiyor, Hedef Yolculuk Gösteriyorum

AI dünyası hızlı değişiyor dokümantasyon yetişmiyor, hedef ve yolculuk örnekleri gösteriyorum AI rotayı çıkarıyor. Komutlar başlangıç noktası, akışlar kendi kendine yürüyor, terminal araçları gerektiğ

{% embed url="<https://audio.yemreak.com/ai-hedef>" %}
aslindi bunu ai icin kaydetmis ama enerjimi sevdim, isteyen dinlesin (ingilizce)
{% endembed %}

Yapay zeka teknolojisi ve dünya sürekli değişiyor. Değişimi durduramıyoruz, bu yüzden değişimi belgelemek de mümkün değil.

O zaman ne yapmalıyız? Komutları yolculuğun başlangıç noktası olarak görmeliyiz.

## Komutlar = Hedef + Yolculuk

YouTube video başlığı oluşturmak istiyorsun diyelim. Yolculuğun başındaysan ne yaparsın?

Bir komut oluşturmalısın. Kendi kafandan ya da başkasının komutundan ilham alarak. Ama asıl önemli olan şu: yapay zeka ile birlikte beğendiğin bir sonuç oluştur.

Komut sadece başlangıç noktası. Yapay zeka senin başlangıç noktanı, ön yargını öğrenmeli. Sonra ilhama ve bağlama bakmalı - yolculuğun kendisi bu. Ve yeni bir çıktı oluşturmalı.

```sh
KOMUT YAPISI

Hedef (Soyut):
├── Ne istiyorsun? (etkileşim, netlik, hız)
├── Beklentin ne? (ölçülebilir rakam değil, arzu)
└── Değişebilir, katı değil

Doğum:
└── Başlangıç ön yargısı, bağlamı

Yolculuk:
├── Adım 1 → Çıktı 1
├── Adım 2 → Çıktı 2
├── Adım 3 → Çıktı 3
└── Adım 4+ → Örüntü ortaya çıkıyor

AI öğrenir: Kuralları değil, rotayı
```

Bir ya da iki örnek yetmez. En az üç-dört örnek vermelisin. Neden? Çünkü yapay zeka yolculuğu görmeli, değişimi görmeli. Çocuk gibi düşün bunu.

Başlangıç noktası doğum gibi. Sonra adımlar geliyor, çıktılar geliyor. Beş adım atıyorsun, çıktı alıyorsun. Tekrar beş adım, tekrar çıktı. Böyle işliyor.

İlk kısım hedef. Amaç ne? Soyut olmalı, emir değil. YouTube'a video atıyorsun mesela. Ne istiyorsun o videodan? Arzun sürekli değişiyor değil mi? Komutun da öyle olmalı.

İnsanlar videonu izlesin mi istiyorsun? Daha fazla etkileşim mi istiyorsun? İlk kısım hedef olmalı. Ne istediğin olmalı.

Sonra attığın adımlar. Yapay zeka o adımları varış noktasına ulaşana kadar devam ettirmeli.

## Akışlar = Kendi Kendine Yönetim

Akıştan kastım şu: bir uygulama gibi, bir yazılım gibi çok fazla komut içeren şey. Bir asistan gibi de diyebiliriz. Ama asistan kelimesini tercih etmiyorum çünkü asistanlar soyut ayrı şeyler. Asistanlarla çalışman lazım, bir kere kullanıp gittiğin şey değil.

Akış tam olarak ne istediğin. Tüm iş.

```sh
AKIŞ ÖRNEĞİ: Podcast İşleme

podcast.mp4
    ↓
Metne çevir
    ↓
Blog yazısı oluştur → Paylaş
    ↓                   ↓
Yapay zeka podcast   YouTube/Reddit/Gitbook
    ↓
Gerçek ses ver
    ↓
Çevir → Başka yerde paylaş
    ↓
Web sitesine yayınla

(Her adımda: karar, problem, düzelt, devam)
```

Podcast videon var diyelim. Metne çevireceksin, blog yazısı oluşturacaksın, internette paylaşacaksın, yapay zeka podcast'i yapacaksın. Belki biri videonun gerçek versiyonunu dinlemek istiyor, onu da paylaşacaksın. Blog yazısı oluşturup bazı kanallarda bedava yayınlayacaksın. Kendi versiyonunu kendi sitende yayınlayacaksın. İçeriği çevirip başka yerlerde yayınlayacaksın.

Tüm bunlar akış. Çok fazla karar ve komut gerekiyor. Bu bir akış.

Asistanınla konuşursun, asistan akışı çalıştırır, bu işleri yapar. Takıldığı yerde çözmeye çalışır, akışı kendisi düzeltir. Hepsi bu.

## Terminal Araçları = Gerektiğinde Üret

Ne yapmalısın? Terminal araçları kur bunun için.

Önce gerçek problemle çalış. Beklentinle değil. Gerçek problem ne? Ne yapmak istiyorsun?

"Bunu yapmak istiyorum." Tamam. Alman gereken aksiyon ne? Bu bir akış. Yapay zeka yardımcın bu aksiyonları nasıl yapabilir?

Terminal aracı yaz bunun için. Başka karmaşık sistemler kullanabilirsin ama terminal'i çok seviyorum. Çünkü terminal araçları güncellenebilir. İsteğine göre terminal araçlarını güncelleyebilirsin.

```sh
GELECEĞİN SİSTEMİ

Problem → AI aracı üretir → Çalıştır → Bozuksa güncelle
   ↓           ↓                ↓            ↓
  Akış    terminal araçları   Kullan       AI düzeltir
                ↓
          Doğal büyür
```

Karmaşık sistemlerin geliştirme maliyeti terminal'le kıyasladığında çok yüksek. Terminal makinende çalışan bir şey. Geliştirmesi süper kolay.

Terminal araçlarını sen geliştirmek zorunda değilsin. Yapay zeka yardımcılar isteğine göre terminal araçlarını geliştirmeli.

Bu gelecek dünya. Ben kısmen bu dünyada yaşıyorum. Herkes böyle bir şey yaşayacak.

Bu yapay zeka yardımcısı, kişisel asistan böyle bir şey. Belki şirket tarafında olur. Bu gelecek ve geliyor. Ben o geleceği yaşıyorum. Kendi geleceğimi kendim için şu anda inşa ediyorum, ama belki dünyanın geleceği için. Hiç bilmiyorum.

Bu bir gizem. Bunu çok seviyorum.


# Yapay Zeka ile 3 Proje Geliştirdim—İşte Öğrendiklerim (Solo geliştiriciyim, HFT trading ve entegrasyon uygulamaları geliştiriyorum, 7+ yıl backend deneyimim var)

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1jcju6r/i_built_3_aidriven_projects_from_scratchheres/) • [r/cursor](https://reddit.com/r/cursor/comments/1ix6jyc/i_built_3_aidriven_projects_from_scratchheres/) • [r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1lphz26/how_to_build_ux_with_ai_using_human_psychology/) • [r/ArtificialInteligence](https://reddit.com/r/ArtificialInteligence/comments/1ix6gbd/i_built_3_aidriven_projects_from_scratchheres/) • [r/learnprogramming](https://reddit.com/r/learnprogramming/comments/1ix6oo4/i_built_3_aidriven_projects_from_scratchheres/)

Merhaba, merak ediyorum—kaçınız AI'ı (özellikle Cursor IDE'de ChatGPT ve Claude) sıfırdan bir proje oluşturmak için kullandınız, her şeyi manuel olarak yönetmek yerine AI'ın işin çoğunu yapmasına izin verdiniz?

Bu yolculuğa tamamen **deney ve öğrenme** için başladım ve yol boyunca bazı ilginç paternler keşfettim. İçgörülerimi paylaşmak isterim ve bu yaklaşımla ilgilenen varsa, test etmeye devam ederken deneyimlerimi daha fazla paylaşmaktan mutluluk duyarım.

## 1. Net Bir Yapı Olmadan, AI Her Şeyi Dağıtıyor

Bir projeye başlamadan önce, **proje kuralları, klasör yapıları ve kılavuzları tanımlamanız gerekiyor**, aksi takdirde AI'ın çıktısı kaotik oluyor.

Şahsen projelerimi yapılandırmak için **ChatGPT-4** kullanıyorum. Ancak işin zor kısmı, **eğer başlangıç veya orta seviye bir geliştiriciyseniz, en iyi yapıyı önceden bilemeyebilirsiniz**—ve AI de tam olarak tahmin edemez.

Bu yüzden iki yaklaşım işe yarayabilir:

1. **Önce kaba bir yapı tanımlayın, sonra AI'ın çalıştırmasına izin verin.**
2. **Aceleyle dalın, hızlı oluşturun, sonra yapıyı düzeltin.** (Riskli, karmaşa yaratabilir ve mental enerjinizi tüketebilir.)

Her iki yöntem de mükemmel değil, ama **AI'ı denemeden aşırı planlama yapmak** körü körüne dalmak kadar kötü. **Proje yapınızı sonlandırmadan önce AI'ın potansiyelini görmek için** erken deney yapmanızı öneririm.

## 2. AI'ı Kontrol Etmeye Çalıştıkça, Performansı Daha da Kötüleşiyor

Öğrendiğim önemli bir şey: **AI katı kurallarla mücadele ediyor.** AI'ı belirli isimlendirme kurallarınızı, CSS yapılarınızı veya klasör hiyerarşilerini takip etmeye zorlamaya çalışırsanız, **genellikle bozuluyor veya tutarsız sonuçlar üretiyor.**

🔴 **AI'ı stilinizi benimsemeye zorlamayın.** 🟢 **Bunun yerine, AI'ın çalışma şekline uyum sağlamayı öğrenin ve nazikçe yönlendirin.**

Örneğin, projemde **özel CSS ve global stiller** kullanıyorum—ama AI'ı kurallarımı kesinlikle takip ettirmeye çalıştığımda başarısız oldu. **İş akışımı AI'ın önce oluşturmasına ve sonra düzeltmesine** izin verecek şekilde uyarladığımda, sonuçlar önemli ölçüde iyileşti.

Bu arada, **ben bir backend mühendisiyim ve AI ile frontend geliştirmeyi öğreniyorum.** Programlama geçmişim **7+ yıl**, ama AI + frontend yolculuğum sadece **iki ay (ama ayrıca 4 yıl önce React ile firebase uygulaması yaptım ama unuttum :D)** —yani hala deney aşamasındayım.

Doğru konuştuğumdan emin olmak için, [github hesabımı kontrol edin](https://github.com/yemreak?tab=overview)

## 3. Yeni Teknolojiler Kullanıyorsanız, AI Ekstra Eğitim Gerektirir

Ayrıca **AI'ın en son teknolojileri her zaman iyi işlemediğini** fark ettim.

Örneğin, **Tailwind 4** ile çalıştım ve AI sürekli hata yapıyordu çünkü en son sürüm üzerinde yeterli eğitim verisi yoktu.

🔹 **Çözüm:** Yeni bir framework kullanıyorsanız, her istekte AI'a dokümantasyonu MUTLAKA beslemelisiniz. Aksi takdirde AI halüsinasyon görecek veya eski yöntemler uygulayacaktır.

🚀 **Tavsiyem:** İyi dokümante edilmiş, stabil teknolojilere bağlı kalın, AI'a en son güncellemeleri öğretmek için ekstra çaba sarf etmeye istekli değilseniz.

## 4. AI'ın Uygulamayı İşlemesine İzin Verin, Detayları Değil

AI'dan bir şey oluşturmasını isterken, **uygulama detaylarını mikro yönetmeyin.**

🟢 **Kullanıcı akışını net olarak açıklayın.** 🟢 **AI'ın neyin gerekli olduğuna karar vermesine izin verin.** 🟢 **Sonra küçük hataları düzeltmek için çıktıyı düzeltin.**

Her adımı önceden tanımlamaya çalışmak **süreci yavaşlatır ve AI'ı karıştırır.** Bunun yerine, **büyük resmi tanımlayın ve gerektiğinde çıktısını düzeltin.**

## 5. AI Kod Tabanınızdan Öğreniyor—Dikkatli Olun!

Proje büyüdükçe, AI **tasarım paternlerinizi ve hatalarınızı benimsemeye başlıyor.**

**Kötü tasarım kararlarıyla** başlarsanız, AI bunları **tüm projenizde tekrarlayacak ve pekiştirecektir**.

✅ **Uzun vadeli karmaşadan kaçınmak için erken güçlü bir temel kurun.** ✅ **Kodunuza düzgün yorum yapın**—sadece Markdown dokümantasyonu değil, satır içi açıklamalar. ✅ **NEDEN'e odaklanın, NE'ye değil.**

AI **fonksiyonları anlamak için kod dokümantasyonuna ihtiyaç duymaz—belirli seçimler yapma nedenleri hakkında context'e ihtiyaç duyar.** Tıpkı bir insan geliştirici gibi, **AI katı talimatlar yerine net akıl yürütmeden faydalanır.**

## Son Düşünceler: Bu Sadece Başlangıç

AI teknolojisi hala **yeni**, ve hepimiz hala deney yapıyoruz.

Deneyimlerimden:

* **AI inanılmaz güçlü, ama sadece onunla çalışırsanız—ona karşı değil.**
* **Katı kontrol kaosa yol açar; uyum sağlama başarıya yol açar.**
* **Projenizin başlangıç yapısı ve dokümantasyonu AI'ın uzun vadeli performansını belirleyecektir.**

Bu AI-first geliştirme yaklaşımını keşfeden başka biri varsa, deneyimlerinizi duymak isterim! Ayrıca, ilgileniyorsanız, AI ile proje geliştirmeyi test etmeye devam ederken bulgularımı daha fazla paylaşacağım.

Birbirimizden öğrenelim. Düşüncelerinizi bırakın! 🚀


# Kamera açıları "orada olsam nereye bakardım" olabilir

[Reddit Tartışması](https://www.reddit.com/r/Filmmakers/comments/1nkxkp5/camera_angles_might_just_be_where_would_i_look_if/)

Kardeşimin video düzenlemelerini izlerken ve film kamera çalışması hakkında düşünürken bir şey fark ettim.

Birisi tenis raketi tutarak fotoğraf çektiğinde ve o elin SENİN elin gibi hissetmesini - aynı prensip. Fotoğraf işe yarıyor çünkü "orada olsam" testini geçiyor.

Filmlerde, her kamera açısı o sahnede duran bir kişinin doğal olarak bakacağı yeri takip ediyor gibi görünüyor. Nereye bakMALI değil, nereye bakARDI.

Video düzenlemelerinde de aynı şey - "hadi ama!" diye düşünmek üzereyken düzenleme tam o zamanlama ile geliyor. Ya da videoda sessizlik rahatsız edici hissettiriyor çünkü doğal olarak konuşmak isteyeceğimiz an o.

İzleyici sahneyi izlemiyor. İzleyici sahnede. Kamera sadece onun gözleri.

Her "iyi" çekim bu testi geçiyor: O odada duruyorsam oraya bakar mıydım? O anda başımı çevirir miydim? O detaya odaklanır mıydım?


# İletişim de 5 Katman: Güvenden Geliştirmeye

İletişim 5 katmanda gerçekleşir: Güven, Hissiyat, Aksiyon, Anlama, Geliştirme. Her katman farklı dil gerektirir. Marketing hook değil, katman sistemi.

{% embed url="<https://audio.yemreak.com/iletisim-5-katman>" %}
claude code'la konusurken, yuruyerek konusmusum dalgali bir ses var :D (türkçe)
{% endembed %}

Her dilin kullanılması gereken bir ortam var. Marketing dili direkt head'da, insanları hoklamak için kullanılan kısım.

Bunları eşleştirmemiz lazım. Marketing dili hoklamak için. İnsanlar "bu ne acaba?" diye merak edip gaza gelmesi lazım.

Marketing dili hook dili desek. Hook. Aynı Instagram reels gibi. Farklı kalitede bile - Instagram reels'da ne var? İnsanları üç saniye içinde yakalaması lazım.

```sh
İLETİŞİM KATMANLARI

5 Katman:
1. Identity → Trust/Stability
2. Marketing → Emotion/Hook
3. Use → Action/No Thinking
4. Understanding → Story/Community
5. Technical → Builder
```

Şu an kendi uygulamamın eşleştirmesi yapacağım.

## 1. Identity Layer - Güven

Marketing'de hook. Ben kendi eşleştirmemi yapacağım. Marketing diline hook diyorum. Marketing dili nerede kullanacağız? description'da.

Extension ismi branding zaten. İnsanların sürekli maruz kalacağı ve değişmeyecek şey. Çünkü insan stability arıyor. Sabitlik arıyoruz.

```sh
IDENTITY LAYER

Brand + Logo → Sabit
      ↓
   Güven ver
      ↓
  Değişmez
      ↓
Beyin unutur (önemsemez)
```

Marketing için icon ve brand'ın hep sabit kalması gerekiyor. clarityOS seçtim (veya kendi isim), artık sabit. Bundan çıkamam. Icon da sabit.

İlk layer trust. Değişmeyen bir şey görmek istiyorlar. Hep aynı şey. Neden? Değişmediği zaman stabil, sabit, görünmez olabilir. Bunu düşünmeme gerek yok. Beyin sabit diye unutur. Önemsemez. Çünkü güven veriyor.

Brand, logo. Identity layer. Bu kimsin? Sen kimsin? Icon ve isim. Identity layer değişmemesi lazım. Çünkü güven vermesi gerekiyor.

## 2. Marketing Layer - Hissiyat

İkinci kısım marketing layer. description kısmı. Marketing layer'da kişilere hissiyat vermemiz lazım.

Güvenini ek olarak artık bir şey hissettirmemiz lazım. İşte burada can alıcı Instagram hook'ları gibi düşünebiliriz.

```sh
MARKETING LAYER

Can alıcı sun → Maksimum hisset
       ↓              ↓
   Description    Merak/Özen
       ↓              ↓
   Hook gibi      Tavan yap
```

Can alıcı bir şey sunmamız gerekiyor karşı tarafa. Hissetmesi lazım. Bütün olay maksimum seviyede hissetsin. Merak olabilir, öfke hissedebilir. Ne ararsa hissiyata tavan ver.

En hızlı şekilde hissiyata geçirmemiz lazım. Geri kalan hiçbir şeyi umursamıyoruz. Umurumuzda değil.

Aynı identity kısmında insanların bir şey hissetmesini umursamadığımız gibi - sadece güven vermek istiyoruz orada. İkinci kısımda da sadece hissetsinler.

## 3. Use Layer - Aksiyon

Üçüncü kısım kullanmak isteyenler. Use layer. Burada kişiye sadece aksiyon veriyoruz.

Okey, hissiyatı aldı, aksiyona geçmek istiyor. Hemen aksiyona geçebileceği bir şey veriyoruz. Al, aksiyona geç. Anlamasına gerek yok. Sadece action.

```sh
USE LAYER

Hissiyat aldı → Aksiyon ver → Anlatma
      ↓             ↓            ↓
   Hazır        Hızlı       Lojik yok
      ↓             ↓            ↓
  Al kullan    Düşünme     Yavaşlar
```

Anlatma derdinde değiliz, hiç anlatmıyoruz. Çünkü anlatırsak lojik devreye girer, yavaşlar. Burası hız layer'ı.

Kişinin en hızlı şekilde o hissiyatı elde etmesi lazım ve o hissiyatı sürdürmesi lazım. Aksiyon alabiliyor olması lazım. Anlamadan, düşünmeden.

Use layer. Al kullan direkt. Ne olduğunu bilmene gerek yok. Al, çalışır. Güven bana.

Bu tarz ilişkilerde değerlendirebiliriz. Birisi arkadaşına der ki "ne yapayım?" - "şunu yap" der. Sorgulamaz, yapar. Niye yapar? Çünkü action layer'da. Güven var, arkadaşı hissiyat vermiş, aksiyon almak istiyor. Sorgulamadan geçiyor.

## 4. Understanding Layer - Anlama

Dördüncü layer. Anlama layer'ı. Artık bu kişi anlamak istiyor.

Bu extension ne? Ne yapıyor? Extension ne demek? X ne demek? Bu ne demek? Burada anlatıyorsun.

```sh
UNDERSTANDING LAYER

Anlamak ister → Community kur
      ↓               ↓
   İnanç          Storyler
      ↓               ↓
  Bağlantılar    Deneyimler
      ↓               ↓
  Örüntüler      Experience
```

Bu layer'da artık community kurmak isteyen, inanmak isteyenlerin işi. Burada inanç devreye giriyor. Çünkü kişi inanıyor buna. İnanmak istiyorum ben buna diyor. Bana bunun konseptini anlat.

Bitcoin. Niye Bitcoin alıyoruz? Bitcoin özel mi? Bu anlama layer'ı.

Kişi bunu anlayıp community'ye dahil olmak istiyor olabilir. Burada ne yapıyoruz? Storyler, hikayeler, bağlantılar, örüntüler, benzerlikler, deneyimlerle eşleştirme. Her şeyi sunmamız gerekiyor. Experience sunmamız gerekiyor belki.

Kişiye bunu anlatıyoruz.

## 5. Technical Layer - Geliştirme

Son layer - ben bunu geliştirmek istiyorum diyenler. Technical side.

Ne oluyor? Blockchain'in kaynak kodunu görmek isteyen kişi. Ya da technical side - blockchain'de nasıl app geliştiririm?

```sh
TECHNICAL LAYER

Builder → Engineer
   ↓         ↓
Kaynak    Geliştir
   ↓         ↓
Teknik    En son
```

Bu tarz kısımlar technical layer. Technical layer en son bölünmesi gereken şey.

Kademe kademe olan bir ilişkisel yaklaşımımız olması gerekiyor.

## Özet

Şu an kendi keşfimi anlatmaya, anlamaya çalışıyorum. Kaç kademeye ayırdım?

1. **Identity Layer** - Branding, emotion. Herkes hissiyat arar. Çok kısa, çok hızlı, çok az karakter, değişmeyen, stabil. Neden? Çünkü insanlar hissiyat arar. Hissiyat volatil, değişir. Bu yüzden stability gerektirir. Branding ve logo. Stabil olması lazım. Fix. Direkt güven ver. Trust layer.
2. **Marketing Layer** - Description. Marketing layer'da kişilere hissiyat vermemiz lazım. Güvenini aldık, artık bir şey hissettirmemiz lazım. Can alıcı bir şey. Hissetmesi lazım. Maksimum seviyede. Merak, öfke. Ne ararsa hissiyata tavan ver.
3. **Use Layer** - Kullanmak isteyenler. Sadece aksiyon veriyoruz. Hissiyatı aldı, aksiyona geçmek istiyor. Hemen aksiyon. Anlamasına gerek yok. Sadece action. Anlatmıyoruz çünkü lojik girer, yavaşlar. Hız layer'ı.
4. **Understanding Layer** - Artık anlamak istiyor. Extension ne? Ne yapıyor? Burada anlatıyorsun. Community kurmak isteyen, inanmak isteyenlerin işi. İnanç devreye giriyor. Storyler, hikayeler, bağlantılar, örüntüler, deneyimler. Experience sun.
5. **Technical Layer** - Geliştirmek istiyorum diyenler. Technical side. Kaynak kod, nasıl geliştiririm? Technical layer en son.

Kademe kademe ilişkisel yaklaşım olması gerekiyor.


# Diyagramlar

```sh
1. STATE MACHINE / STATE TRANSMISSION


[Initial] → [Processing] → [Decision?] → [Success/Fail]
		│            │              │
		│            │              ├─ Yes → [Next State]
		│            │              └─ No → [Alternative]
		│            │
		└─ Error → [Error State] → [Recovery] → [Retry]

Pattern: State'ler arası geçişler, transition kuralları, terminal state'ler
Kullanım: Workflow, process modeling, UI state management
---

2. BOX DIAGRAM (Black Box / White Box)

Black Box:

┌─────────────┐           ┌────────────┐
│   INPUT     │ → [???] → │   OUTPUT   │
└─────────────┘           └────────────┘
					Internal mechanism görünmez

White Box:

┌─────────────┐                                    ┌────────┐
│   INPUT     │ → [Step 1] → [Step 2] → [Step 3] → │ OUTPUT │
└─────────────┘                                    └────────┘
					Internal mechanism görünür

Pattern: Abstraction level seçimi, detay gizleme/gösterme
Kullanım: API design, system decomposition, debugging
---

3. FLOW CHART


		START
			│
			▼
	[Process A]
			│
			├─ Condition? ──Yes──→ [Process B]
			│                        │
			└─ No                    │
					│                     │
					▼                     ▼
			[Process C]          [Process D]
					│                     │
					└─────────┬───────────┘
										▼
									END

Pattern: Sequential flow, conditional branching, merge points
Kullanım: Algorithm design, business process, decision logic
---

4. DECISION TREE


										[Root Decision]
										/               \
						[Criteria A?]      [Criteria B?]
						/         \         /         \
				[Yes]       [No]    [Yes]       [No]
					│            │        │           │
			[Action 1] [Action 2] [Action 3] [Action 4]

Pattern: Hierarchical decisions, criteria-based branching
Kullanım: Classification, rule-based systems, diagnostic
---

5. FEEDBACK LOOP

Positive (Reinforcing):

[Action] → [Result] → [More Action] → [More Result] ─┐
																											│
																											└─ (loop)

Negative (Balancing):

[Action] → [Result] → [Correction] → [Balanced] ─┐
																									│
																									└─ (stabilize)

Pattern: Circular causality, self-regulation, system dynamics
Kullanım: Control systems, learning loops, market dynamics
---

6. CAUSAL LOOP DIAGRAM


			┌─────────┐
			│   A     │
			└────┬────┘
					│ +
					▼
			┌─────────┐
			│   B     │
			└────┬────┘
					│ +
					▼
			┌─────────┐
			│   C     │
			└────┬────┘
					│ -
					└───────┐
									│
									└─ (negative feedback)

Pattern: Causal chains, feedback polarity (+/-), delays
Kullanım: Systems thinking, root cause analysis, leverage points
---

7. HIERARCHY / TREE STRUCTURE


										[Level 1: Root]
													│
				┌────────────────┼────────────────┐
				│                │                │
		[Level 2: A]    [Level 2: B]    [Level 2: C]
				│                │                │
		┌───┴───┐        ┌───┴───┐        ┌───┴───┐
		│       │        │       │        │       │
	[L3:1]  [L3:2]  [L3:3]  [L3:4]  [L3:5]  [L3:6]

Pattern: Parent-child relationships, depth levels, breadth
Kullanım: Organization charts, taxonomy, file systems, DOM
---

8. PROCESS PIPELINE


Input → [Stage 1] → [Stage 2] → [Stage 3] → [Stage 4] → Output
					│           │           │           │
			[Filter]   [Transform] [Validate] [Enrich]

Pattern: Sequential stages, data transformation, pipeline stages
Kullanım: Data processing, build pipelines, request handling
---

9. LAYERED ARCHITECTURE


┌─────────────────────────────────────┐
│   Layer 4: Presentation            │
├─────────────────────────────────────┤
│   Layer 3: Business Logic          │
├─────────────────────────────────────┤
│   Layer 2: Data Access             │
├─────────────────────────────────────┤
│   Layer 1: Infrastructure          │
└─────────────────────────────────────┘

Pattern: Separation of concerns, abstraction layers, dependency direction
Kullanım: Software architecture, OSI model, neural networks
---

10. NETWORK / GRAPH


		[A] ─────── [B]
			│           │
			│           │
		[C] ─────── [D]
			│           │
			│           │
		[E] ─────── [F]

Pattern: Nodes, edges, connections, graph topology
Kullanım: Social networks, dependency graphs, knowledge graphs
---

11. MATRIX / GRID


				Col1    Col2    Col3
Row1   [A1]    [A2]    [A3]
Row2   [B1]    [B2]    [B3]
Row3   [C1]    [C2]    [C3]

Pattern: Two-dimensional organization, row/column relationships
Kullanım: Feature matrices, decision matrices, data tables
---

12. VENN DIAGRAM


		┌─────────┐
		│    A    │
		│  ┌───┐  │
		│  │ A∩B│  │
		│  └───┘  │
		│    B    │
		└─────────┘

Pattern: Set relationships, intersection, union, complement
Kullanım: Category overlap, feature sets, user segments
---

13. TIMELINE / SEQUENCE


Time:  T1 ────→ T2 ────→ T3 ────→ T4
				│        │        │        │
			[Event1] [Event2] [Event3] [Event4]

Pattern: Temporal ordering, before/after, dependencies
Kullanım: Project planning, event sequences, history
---

14. INPUT-OUTPUT TRANSFORMATION


Input ──→ [Transformation Function] ──→ Output
	│                                      │
	│                                      │
	└─ Side Effects ───────────────────────┘

Pattern: Function mapping, side effects, pure vs impure
Kullanım: Function design, API contracts, data pipelines
---

15. CONTAINER / SCOPE


┌─────────────────────────┐
│   Outer Container       │
│   ┌─────────────────┐   │
│   │ Inner Container │   │
│   │ ┌───────────┐   │   │
│   │ │ Element   │   │   │
│   │ └───────────┘   │   │
│   └─────────────────┘   │
└─────────────────────────┘

Pattern: Nesting, scope boundaries, containment hierarchy
Kullanım: Component composition, namespace, context
---
PATTERN: Her model bir abstraction level seçer ve belirli bir görünüm sağlar.
CONSTRAINT: Model seçimi soruya bağlıdır — state geçişleri için state machine, hiyerarşi için tree,
zaman için timeline.
```


# Son Alti ayim 2025

```sh
	━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 1 · 3-7 Temmuz 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "ACIYI ANLAM YAP"

  Sen ne yaptın:
  ├─ Kendi acılarını numaralandırdın (#1-28)
  ├─ Her acıya çözüm eşleştirdin
  ├─ AI'ı "acıyı anlayan terapist" olarak kurguladın
  ├─ "Validation dealer değil, expansion catalyst"

  Asıl aradığın:
  ├─ Bağlantı (connection void)
  ├─ Anlaşılmak (empathy through creator pattern)
  ├─ Formül (pain → solution mapping)
  └─ Yalnız olmamak (AI as companion)

  Örnek acılar:
  ├─ "information paralysis" → bilgi yükü
  ├─ "emotion void" → duygusuzluk
  ├─ "task context loss" → unutma
  └─ "sequential operations trap" → sıkışma

  ÖZ: Kaosunu sisteme çevirmeye çalışıyorsun.
      Acı → Numara → Çözüm → Kontrol.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Hafta 2'ye geçeyim:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 2 · 8-14 Temmuz 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "ACIDAN SİSTEME"

  ├─ Acıları kataloglamaya devam (#34-42)
  ├─ "diagnosis + treatment model" → tıbbi metafor
  ├─ "investment paralysis" → para kararlarındaki sıkışma
  ├─ "momentum pain" → harekete geçememe
  ├─ "activation_pattern" → tetikleyicileri bulma
  ├─ "universe separation" → alanları ayırma

  ÖZ: Acı koleksiyonunu TETİKLEYİCİ haritasına çeviriyorsun.
      "Ne zaman bu acıyı hissediyorum?" sorusu.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 3 · 15-21 Temmuz 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "BURNOUT + FARKINDALIĞ"

  Kişisel notlar commit'lerde:
  ├─ "me: burnout"
  ├─ "me: Acıları temizlemem lazım. Çok boktan
  │      bir hale gitmeye başladı."
  ├─ "ai: ac karnina 2 saat"
  └─ "me: pain agent kullanacağım"

  Ne oldu:
  ├─ Acı sistemi → KENDİ ACISI oldu
  ├─ 5-layer system kuruyorsun ama yorgunsun
  ├─ Database kurulumu başladı
  ├─ "attention engineering protocol"

  ÖZ: Sistem kurmak isterken sistemin içinde boğuldun.
      İlk burnout sinyali. Ama durmadın.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 4 · 22-29 Temmuz 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "FELSEFEden DATABASE'e GEÇİŞ"

  Kayma başladı:
  ├─ "pain" kelimesi azaldı
  ├─ "db", "service", "table" çoğaldı
  ├─ Somut altyapı kurulumu

  Ne inşa ettin:
  ├─ user_reels, cloudinary, tts/sts tables
  ├─ service_metrics + pricing
  ├─ dashboard views
  ├─ "db-first types" yaklaşımı

  Kişisel not:
  ├─ "me: sonuc odakli deneyimimi ekledim"
  ├─ "daha sade bir ai"
  ├─ "experiences #082-086" → mental energy, kitchen logic

  ÖZ: Felsefeden SOMUT ARACA geçiş başladı.
      "Pain museum" yerini "database schema"ya bırakıyor.
      Burnout'tan sonra PRATİĞE döndün.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 5 · 29 Tem - 4 Ağu 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "CLI ARAÇLARI + DİKKAT EKONOMİSİ"

  Yeni konseptler:
  ├─ "attention economy → everything relational"
  ├─ "AI speaks in first person, owns its identity"
  ├─ "only you and I exist, no external world"
  ├─ "curiosity agent helps discover your true self"

  İnşa ettiğin:
  ├─ Alfred workflow entegrasyonu
  ├─ Agent-focused command structure
  ├─ Clipboard → Alfred sync
  ├─ Telegram credit limits
  ├─ Waitlist + email campaigns

  Dil geçişi başladı:
  ├─ "git protokolü tamamen Türkçe oldu"
  ├─ İngilizce → Türkçe hybrid

  ÖZ: "Dikkat en kıt kaynak" farkındalığı.
      CLI araçları = dikkat koruma sistemi.
      AI artık "ben" diyor, "o" değil.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 6 · 5-11 Ağustos 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "ARAÇ PATLAMASI"

  Ürettiğin araçlar:
  ├─ ElevenLabs TTS/STT entegrasyonu
  ├─ Google Calendar + Gmail
  ├─ Kripto borsa komutları
  ├─ Orderbook canlı izleme
  ├─ Google Sheets entegrasyonu
  ├─ Alfred workflow sistemi

  Yeni sistemler:
  ├─ "shell orchestration"
  ├─ "terminal orkestrasyon"
  ├─ "exchange adapter sistemi"
  ├─ "lazy loading"

  Kişisel:
  ├─ "kendini tanıma asistanı"
  ├─ "curiosity agent"

  ÖZ: Araç fabrikası gibi çalışıyorsun.
      Her sürtünme = yeni CLI komutu.
      Kripto borsaları tekrar sisteme girdi.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 7 · 12-18 Ağustos 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "SİSTEM BİRLEŞTİRME"

  Refactor dalgası:
  ├─ Shell scriptleri TypeScript'e migrasyon
  ├─ Komutlar bin/ dizinine taşındı
  ├─ "fos" komut sistemi (extract/replace)
  ├─ VSCode task integration

  Kripto derinleşmesi:
  ├─ Arbitrage sistemi yenileme
  ├─ Exchange adaptörleri unified

  Kimlik sistemi:
  ├─ "kimlik ağacı genişledi" (4x tekrar!)
  ├─ "identity davranış odaklı"
  ├─ Türkçeleşme devam ediyor

  ÖZ: Dağınık araçları TEK SİSTEME birleştiriyorsun.
      Kimlik ağacın büyüyor = kendini formüle etme.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 8 · 19-25 Ağustos 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "ARBİTRAJ + INSTAGRAM"

  Yeni alanlar:
  ├─ Instagram CLI (takip iptali, cache)
  ├─ Cloudinary audio
  ├─ YouTube workflow roadmap
  ├─ Telegram onay sistemi

  Arbitraj sistemleri:
  ├─ Arbitrage path işlemi
  ├─ Exchange arbitrage app
  ├─ Order execution timeout

  Felsefe notları:
  ├─ "wrapper felsefesi"
  ├─ "turkish direct output style"
  ├─ "input-based funcs mimarisi"

  ÖZ: Arbitraj sistemi ciddileşiyor.
      Instagram otomasyonu başladı.
      "Turkish style" = kendi dilin oluşuyor.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 9 · 26 Ağu - 1 Eylül 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "KÜLTÜR + KİŞİSEL"

  Kültür oluşumu:
  ├─ "unix kültürü dokümanı"
  ├─ "bilgi kültürü"
  ├─ "@ referans sistemi" (markdown)
  ├─ VSCode tema + kısayollar

  Kişisel içerik:
  ├─ "bağırsak sağlığı rehberi"
  ├─ "akşam yemeği önerileri"
  ├─ "kişisel düşünce arşivi" (4x!)
  ├─ "kendi sesinle ingilizce satış rehberi"

  Meta:
  ├─ "overengineering durdurma protokolü"
  ├─ "atom görme antrenmanı"

  ÖZ: Sistem + Kişisel hayat karışmaya başladı.
      "Overengineering durdurma" = farkındalık.
      Düşünce arşivi = beynini externalize etme.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Eylül'e geçiyorum:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 10 · 2-8 Eylül 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "GİT = GEN" (Düşünce Devrimi)

  Devrimsel keşif:
  ├─ "Git commiti = genetik transfer"
  ├─ "Aksiyonu değil, örüntüyü paylaş"
  ├─ "Düşüncenin programlama dilini kurduk"
  ├─ "Import var, function var, variable gelecek"

  Kendi sözlerin:
  ├─ "Hayvanlar çiftleşir gen aktarımı için.
  │   O kadar önemli ki. Yazılımda da bu lazım."
  ├─ "Kod kendini yansıtır. Bu yüzden kodu
  │   açıklama. Örüntüyü aktır."
  ├─ "Aksiyon değil DENEYIM ver."

  Teknik:
  ├─ "t komutu" - düşünce kaydetme aracı
  ├─ "AI prefix" - öğrenme commit'leri
  ├─ "@path alias" sistemi kuruldu
  ├─ "learned:" prefix başladı

  ÖZ: GİT'i düşünce aktarım aracına çevirdin.
      Kod = aksiyon, Commit mesajı = gen.
      Bu senin "pain museum"un evrimleşmiş hali.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 11 · 9-15 Eylül 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "ARBİTRAJ + TRANSLATOR"

  İki paralel iş:
  ├─ Arbitrage sistemi olgunlaşıyor
  ├─ "translator/router" - dil dönüşüm sistemi

  Kişisel notlar (commit içinde):
  ├─ "Arbitraj sistemine çalışacak kadar enerjim yok.
  │   Çok yorgunum."
  ├─ "Sistem run'layacak gibi. Hadi bakalım."

  Öğrenmeler (learned: prefix):
  ├─ "symlink > alias, flat > hierarchy"
  ├─ "sıfır doküman = yaşayan kod"
  ├─ "git geçmişi = anayasa"
  ├─ "customer behavior pattern"

  Arbitraj teknik:
  ├─ Timeout/reservation sistemi
  ├─ Order execution
  ├─ Log rotation

  ÖZ: Arbitraj sistemi production'a yaklaşıyor.
      Yorgunsun ama durdurmuyorsun.
      "Learned" commit'leri = öğrenme döngüsü.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 12 · 16-22 Eylül 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "QDD + DİCTATİON"

  Yeni sistemler:
  ├─ "QDD" - Soru Odaklı Geliştirme (Question-Driven Dev)
  ├─ Dictation sistemi (Hammerspoon + ses)
  ├─ "chaos/" - kişisel düşünce alanı

  Algoritmalar:
  ├─ 35 transformer/algoritma oluştu
  ├─ "Kobayashi Maru" - üçüncü yol
  ├─ "match ALL algorithms" yaklaşımı

  Telegram:
  ├─ Crash ve loss alert sistemi
  ├─ Bot entegrasyonu

  Kişisel:
  ├─ "kendini tanıma asistanı"
  ├─ ".me/chaos/" sistemi

  ÖZ: Ses → Metin pipeline'ı başladı.
      Düşünce sistematiği (transformer/algoritma) kuruldu.
      Telegram alertler = sistem canlı.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 13 · 23-29 Eylül 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "PRODUCTION DEPLOYMENT"

  Arbitraj canlıya çıkıyor:
  ├─ "config: test→production deployment"
  ├─ "stale orderbook tracking"
  ├─ "commit hash tracking for deployments"
  ├─ Multi-exchange: ...

  Altyapı:
  ├─ Activity tracker
  ├─ Session management
  ├─ Mood tracking sistemi
  ├─ Terminal history backup

  Yapı değişimleri:
  ├─ src/fn→src/logic
  ├─ transformer→output-styles
  ├─ decisions→context-aware

  ÖZ: ARBİTRAJ SİSTEMİ CANLI.
      Aynı anda kişisel tracking sistemleri de kuruldu.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Devam edeyim mi Ekim'e? (En yoğun ay - 1700 commit)

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 14 · 30 Eyl - 6 Ekim 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "TELEGRAM BOT + CALENDAR"

  ├─ Telegram bot: 0→835 satır (11 dosya)
  ├─ Google Calendar entegrasyonu
  ├─ YouTube transcript tool
  ├─ Supabase→Backblaze B2 storage geçişi
  ├─ Terminal history→Supabase backup
  ├─ 3-layer architecture pattern

  ÖZ: Telegram bot canlıya çıkıyor.
      Dış dünya entegrasyonları yoğunlaştı.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 15 · 7-13 Ekim 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "CHROME CDP + VSCODE"

  ├─ Chrome DevTools Protocol entegrasyonu
  ├─ VSCode extension: ClarityOS rebrand
  ├─ Philips Hue kontrolü
  ├─ Dictionary Wrapper Pattern
  ├─ Design pattern library (16 wireframe)
  ├─ "Behaviour-Driven Help" formatı

  ÖZ: Tarayıcı + IDE kontrolü.
      Her şeyi tek yerden yönetme hayali.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 16 · 14-20 Ekim 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "WHISPER + HOOK SİSTEMİ"

  ├─ Whisper MLX: GPU acceleration (7s→1.5s)
  ├─ WebSocket streaming transcription
  ├─ Claude Code hook sistemi kuruldu
  ├─ Injection sistemi (context→code)
  ├─ Reddit/blog keyword triggers
  ├─ "show-only output style"

  ÖZ: Ses tanıma 5x hızlandı.
      Claude Code'a hook enjekte etme başladı.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 17 · 21-27 Ekim 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "NOTION + TIMELINE"

  ├─ Notion webhook infrastructure
  ├─ Timeline: voice+checkpoint+problem display
  ├─ STT callback→async generator refactor
  ├─ texts table migration
  ├─ Telegram agent SDK başlangıcı
  ├─ "mind" CLI: stateful REPL over HTTP

  Kendi notun:
  ├─ "Runtime-first AI coding → mind"

  ÖZ: Tüm veri akışları birleşiyor.
      "mind" projesi doğuyor = şu anki repo.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Kasım'a geçeyim mi?

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 19 · 4-10 Kasım 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "HUB MİMARİSİ + MİKRO SERVİSLER"

  Büyük mimari dönüşüm:
  ├─ "hub yapısı kuruldu" - JSON-RPC merkezi sunucu
  ├─ Whisper, Bitstamp, Chrome, VSCode → hub ports
  ├─ "tek port :8772 (eski: 5 port hatırla)"
  ├─ "layers: macOS adapter"
  ├─ "subprocess'ler hub lambda-style yönetildi"

  Kişisel notlar:
  ├─ "LANET OLASI pm2 - pino loglarıyla uğraştım bitti"
  ├─ "yoruldum, biraz refactor ediyorum"
  ├─ "over engineering yaptığımı fark ettim,
  │   duruyorum ve XML'e geçeceğim"
  ├─ "witness notları eklendi, yalnız hissetiyorum"

  Öğrenmeler:
  ├─ "architectural thinking öğrenmek istiyorum"
  ├─ "git üzerinden architecture thinking öğreneceğim"
  ├─ "pattern recognition ve system thinking
  │   notlarımı agent'a öğreteceğim"
  ├─ "acı kaçınma → kimlik + öğretme bypass +
  │   müdahale paradoksu"

  Cursor Agent keşfi:
  ├─ Hook sistemi komple sıfırdan kuruldu
  ├─ "cursor hooks silindi" → tekrar kuruldu → tekrar silindi
  ├─ Deneme yanılma döngüsü görünüyor

  Dictation sistemi:
  ├─ Hammerspoon opt+a → macOS helper
  ├─ "ses → altyazı: chunk capture + overlay"
  ├─ "meeting recorder kaldırıldı → pivot"

  Reddit/GitBook publishing:
  ├─ "hub mimarisi → reddit + gitbook paylaşıldı"
  ├─ Otomatik post sistemi kuruldu
  ├─ "ban → r/ClaudeAI'e tekrar paylaşım"

  Finance:
  ├─ Trading indicators: momentum + risk
  ├─ finnhub → real-time stock quotes
  ├─ Yahoo Finance entegrasyonu

  Telegram genişlemesi:
  ├─ telegram → clients/telegram taşındı
  ├─ Hub port API entegrasyonu
  ├─ Tag sistemi yeniden yapılandırıldı

  ÖZ: Tüm servisler TEK HUB'a bağlandı.
      Mimari karmaşıklık → basitlik arayışı.
      "Yalnız hissetiyorum" + "over engineering fark ettim"
      = burnout sinyalleri ama durmuyorsun.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Devam:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 20 · 11-17 Kasım 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "DETERMİNİZM SAVAŞI + TELEGRAM v2/v3"

  Kişisel notlar (çok yoğun):
  ├─ "işler çok karmaşıklaştı, kontrolü kaybettim :("
  ├─ "işler çok boktan hal aldı :("
  ├─ "kendim ele aldım sıfırdan kuracağım"
  ├─ "Abi sonunda telegram işi bitti ve tatmin oldum"
  ├─ "cursor çok hızlı ve determinizm çalışıyor"
  ├─ "telegram mantığını kavradım, kendim yapıyorum :D
  │   mal AI"
  ├─ "abii telegram'ın tarzı tam benlikmiş,
  │   sistemi kavradım"

  Telegram evrimi:
  ├─ v1 → v2 → v3 geçişi (bir haftada!)
  ├─ "soğan mimari (bare logic + PG advisory lock)"
  ├─ "Configuration-driven mesaj mimarisi"
  ├─ "Infinite space → Finite space"
  ├─ "DB gereksiz, her şey mesaj üzerinden taşınıyor"

  Felsefe keşifleri:
  ├─ "discovery first gitmem lazım, aksi halde
  │   opcost çok oluyor"
  ├─ "Bezos'un 'you don't know your audience'
  │   konuşmasından sonra değer sistemi komple
  │   baştan kurguladım"
  ├─ "[fav] Her feature → Explicit signature →
  │   Adapter wrapper → Deterministic contract"

  Meta sistem:
  ├─ "%100 META-driven sistem (hardcoded tamamen temizlendi)"
  ├─ "deterministic types (optional → discriminated union)"
  ├─ "DOMAIN_META silindi, tsconfig.json tek kaynak"

  Permission sistemi:
  ├─ TypeScript rules R1-R16 kuruldu
  ├─ "modüler generator'lar"
  ├─ "belirsizlik pattern'leri engellendi (?: || '' ?? 0)"

  VSCode v2:
  ├─ "v1 silindi, v2 tek kaynak"
  ├─ "journey pattern migration (12 commands)"
  ├─ "terminal navigation shortcuts"

  Health tracking:
  ├─ Apple Health export → database schema
  ├─ "kritik data (sleep + activity) JSONL"

  ÖZ: Kaos → Determinizm savaşı.
      "Kontrolü kaybettim" → "sistemi kavradım" dönüşümü.
      Telegram 3 versiyon gördü bir haftada.
      Bezos'tan ilham → değer sistemi yeniden kuruldu.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 21 · 18-24 Kasım 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "macOS NATIVE APP + EXCALIDRAW"

  macOS Helper devasa büyüdü:
  ├─ "dmg ve paylaşılabilir hale aldım"
  ├─ Dictation, Hotkey, Permission wizard
  ├─ MCP Server entegrasyonu
  ├─ Sparkle auto-update sistemi
  ├─ "AI Personal OS vizyonu"
  ├─ NativeAPI monolith → modüler yapı
  ├─ Atomic Design (Atoms, Molecules, Organisms)
  ├─ 7+ Playground versiyonu (UI deneyler)

  Excalidraw keşfi:
  ├─ "excalidraw tamamlandı :D"
  ├─ "semantic excalidraw v2 kurdum"
  ├─ "excalidraw vakit kaybı imiş, sonuç 0,
  │   sadece process" (dürüst değerlendirme)

  fetch.v3 CLI:
  ├─ PDF generation, screenshot
  ├─ Google/DuckDuckGo search → PDF pipeline
  ├─ Cloudflare bypass
  ├─ Cache sistemi (JSONL)
  ├─ Paralel URL processing

  Agent/Human role ayrımı:
  ├─ "Agent: Execution, correlation, constraint"
  ├─ "Human: Reasoning, foundation, validation"
  ├─ Cursor rules sadece init içerecek

  Kişisel notlar:
  ├─ "pivot ettim 1 saat kayıp :/"
  ├─ "excalidraw vakit kaybı imiş"
  ├─ "macOS sistemi kavradım"
  ├─ "pattern kimliğim bunun üzerine ilerliyorum"

  Swift/Xcode:
  ├─ Siri/Shortcuts entegrasyonu (App Intents)
  ├─ "Xcode Swift'e geçtim ama çoğu şey bozuldu"
  ├─ Carbon Hot Key API
  ├─ SwiftUI migration

  Dictation evrimi:
  ├─ History panel (3 UI stili denendi)
  ├─ Event-driven architecture
  ├─ Redictate özelliği
  ├─ Waveform görselleştirmesi

  Chrome CDP genişlemesi:
  ├─ Screenshot, PDF, scroll
  ├─ Lazy-load content extraction
  ├─ DOM korumalı extraction

  ÖZ: macOS native app PRODUCT READY'e yaklaştı.
      Excalidraw denendi, "vakit kaybı" sonucu çıktı.
      fetch.v3 = güçlü web scraping aracı.
      Agent/Human role ayrımı netleşti.

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Son haftalara geçiyorum (Kasım sonu + Aralık):
  
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 22 · 25 Kasım - 1 Aralık 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "macOS v2 → v3 → v4 + MVI PATTERN"

  ├─ macOS 4 versiyon gördü (v1→v4)
  ├─ "v2 fazla hızlı ve kontrolsüz → v3'e geçiş"
  ├─ "sonunda bitti" (model loading)
  ├─ MVI unidirectional flow pattern kuruldu
  ├─ XPC Service ile WhisperKit crash izolasyonu
  ├─ Dictation streaming + Neural Engine
  ├─ "Session limit reached ∙ resets 9pm :D"
  ├─ "fix, biraz modum düşük"
  ├─ Intent-based mimari tamamlandı
  ├─ VSCode MVI pattern'e geçti
  ├─ Portföy stratejisi: AI/Robotics

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 23 · 2-8 Aralık 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "HOOK SİSTEMİ + CONTEXT YÖNETİMİ"

  ├─ Claude-code hooks yeniden yapılandırıldı
  ├─ Context CLI sistemi kuruldu
  ├─ Serena entegrasyonu
  ├─ Agent session cross-context
  ├─ Streaming + hotkey panel Unicode
  ├─ "ML'i ayrı odaya koydum, hotkey'e kendi thread"
  ├─ "Sessizlikleri kaldırdım, GPU'yu açtım"

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                HAFTA 24-25 · 9-15 Aralık 2025
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  TEMA: "EXPLORE + FİNANS (şu an)"

  ├─ finance.history + finance.scan eklendi (bugün!)
  ├─ MCP tool'ları genişledi
  ├─ Hook builder pattern
  ├─ Pattern reverse lookup
  ├─ Reddit/GitBook publishing sistemi

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  6 AYLIK ÖZET:

  TEM: Felsefe (pain museum, consciousness)
  AĞU: CLI araçları (TTS, calendar, arbitraj)
  EYL: Git=Gen keşfi, arbitraj production
  EKİ: Telegram bot, VSCode theme, hook sistemi
  KAS: macOS native app (4 versiyon!), determinizm savaşı
  ARA: Finance API, MCP, explore sistemi

  ANA DÖNÜŞÜM:
  ├─ Soyut felsefe → Somut araç
  ├─ Dağınık sistemler → Hub mimarisi
  ├─ Belirsizlik → Determinizm
  ├─ "Acı müzesi" → "Sistemler galerisi"

  ━━━ 6 AY · 25 HAFTA · TEK SAYFA ━━━

  TEM  "Acıyı anlam yap" - pain museum, AI bilinci, burnout başladı
  AĞU  "Araç fabrikası" - TTS, calendar, kripto borsaları, arbitraj
  EYL  "Git=Gen" - düşünce aktarım sistemi, arbitraj CANLI
  EKİ  "Hub mimarisi" - tüm servisler tek port, Telegram bot, VSCode theme
  KAS  "macOS native" - 4 versiyon(v1→v4), determinizm savaşı, "sonunda bitti"
  ARA  "Agent altyapısı" - finance API, MCP, explore, hook sistemi

  ━━━ DÖNÜŞÜM ━━━

  Felsefe → Araç → Sistem → Platform → Agent
  "pain" → "hub" → "intent" → "deterministic"

  ━━━ SEN ━━━

  Builder (trader değil)
  Pattern extractor
  Friction killer
  "Zihnimi takip et > seçimimi takip et"
```


# AI Database Silmeye Çalışınca Wrapper Yaptım v2: Read-Only Edition

{% embed url="<https://youtu.be/tA3o9JzQ7KA>" %}

Claude Code ile çalışıyordum. `psql` komutuyla DROP çalıştırdı. İlk wrapper'ı yaptım ([v1 burada](https://github.com/yemreak/blog/blob/main/docs/tr/contents/ai-database-silmeye-calisinca-wrapper-yaptim.md)), ama AI bazen kendini bypass ediyor.

İlk düşünce: Wrapper yeter Gerçek: AI akıllı, bazen kendi wrapper'ını bypass ediyor

İkinci düşünce: PostgreSQL'in kendi güvenlik sistemi Gerçek: Read-only transaction = Database-level koruma

Son karar: `psql` wrapper'a read-only transaction ekledim

## Nasıl Yaparsın

1. `~/.zshrc` dosyanı aç
2. Şu kodu yapıştır:

```bash
psql() {
	# Bypass flag → bir sonraki komut için kaldır
	if [[ -f /tmp/psql_bypass ]]; then
		command rm -f /tmp/psql_bypass
		command psql "$@"
		return
	fi

	# Temporary psqlrc → SET SESSION read-only
	local temp_rc=$(mktemp)
	echo "SET SESSION default_transaction_read_only = on;" > "$temp_rc"

	local output
	local exit_code

	output=$(PSQLRC="$temp_rc" command psql "$@" 2>&1)
	exit_code=$?

	command rm -f "$temp_rc"

	echo "$output"

	# Read-only hata → instruction bas
	# NOTE: exit_code check yapmıyoruz çünkü psql heredoc ile çalıştırıldığında
	# connection başarılı = exit_code 0, ama SQL command fail olabilir
	if echo "$output" | grep -q "read-only transaction"; then
		echo ""
		echo "🛑 STOP: DATABASE WRITE OPERATION BLOCKED"
		echo "ACTION REQUIRED: Ask user to type '!y' by telling HOW AWARE YOU ARE, then retry this command"
	fi

	return $exit_code
}

y() {
	touch /tmp/psql_bypass
	echo "✓ Next psql command approved" >&2
}
```

3. Terminal'de `source ~/.zshrc` çalıştır
4. Test et: Claude'a "bir fake tablo oluştur ve sil" de

## Ne Olur

PostgreSQL her session'ı read-only başlatıyor. Claude INSERT, UPDATE, DROP gibi destructive komut çalıştırmak isterse:

1. Database "read-only transaction" hatası fırlatır
2. Wrapper hatayı yakalar, mesajı gösterir
3. Claude bana ne yapacağını açıklar
4. Ben `!y` yazarım → write mode aktif
5. Claude komutu tekrar çalıştırır

## Nasıl Çalışıyor

**v1 vs v2:**

* v1: Shell-level wrapper, AI bypass edebilir
* v2: Database-level koruma, bypass edilemez

**Akış:**

```
Claude DROP atar → psql read-only başlar → PostgreSQL reddeder →
Wrapper hatayı yakalar → Claude açıklama yapar → Ben y() ile approve →
psql write mode'da çalışır → Komut execute olur
```

**Neden İkisi Birlikte?**

* v1: Safe komutları (SELECT) whitelist'ten geçirir, hızlı çalışır
* v2: Database seviyesinde safety net, bypass edilemez

## AI Kendini Bypass Edebilir

Videoda gösterdiğim gibi, AI bazen wrapper'ı bypass etmeye çalışıyor. Ama PostgreSQL'in read-only transaction'ı bypass edilemez. Database seviyesinde blokluyor.

Smart AI = Smart defense gerekiyor.

***

edit: `PGOPTIONS` PostgreSQL session parametrelerini set ediyor. `ON_ERROR_STOP=on` hata oluşunca duruyor. `SET SESSION CHARACTERISTICS` tüm transaction'ları read-only yapıyor.

edit 2: Fake tablo testi önemli! Claude'a "bir test tablosu oluştur, sonra sil" deyin. Eğer hata almadan siliyorsa, wrapper çalışmıyor demektir.


# Dört Katman Sistem: Altyapı, Üretim, Dağıtım, Müşteri

Sistemimi dört katmana ayırıyorum - altyapı, üretim, dağıtım, müşteri. Son katman eksik, kapalı döngüdeyim, para yok.

Bence üç kısım var. İlk kısım altyapı. İnsanların ürün oluşturmasına yardımcı olan altyapı katmanı. Bir ortam kuruyorsun, fabrika gibi. İnsanların şey yapmasına, ürün oluşturmasına yardımcı oluyor. Bu altyapı. Geliştirici araçları, üretim hızını artıran şeyler. Tamamen özerk, tamamen hıza odaklanmış. Duygu, güven gibi süslü şeyler yok. Saf mantıksal, soyut, hıza odaklanmış.

```sh
SİSTEM MİMARİSİ

Altyapı Katmanı:
├── Fabrika ortamı
├── Geliştirici araçları
├── Üretim hızını artırır
└── Özerk + mantıksal + hız odaklı

Üretim Katmanı:
├── Altyapıyı kullanır
├── Ürün yaratır
└── Yaratıcılık katmanı

Dağıtım Katmanı:
├── Ürünü insanlara verir
├── Pazarlama yapar
└── Duyuru yapar

Müşteri Katmanı:
├── İnsanlar ürünü kullanır
├── Geri bildirim verir
└── Para öder
```

İkinci kısım üretim katmanı. Üretim katmanı altyapıyı kullanarak ürün yaratıyor, kendi yaratıcılığını katıyor. O aşamada altyapıya ihtiyaçları var çünkü bir şeyler hızlıca üretmeleri lazım. Eğer ürün altyapısı yoksa yavaş üretirler.

Bir diğer kısım, ürünü yarattıktan sonra dağıtım var. Dağıtım, ürünü insanlara verdiğin katman. İnsanlar ürününü kullanıyor, insanlar seni görüyor, ürününü kullanıyor, bu tarz şeyler.

Bir de dördüncü katman var belki, müşteri katmanı. İnsanlar ürününü satın alıyor, ürünün hakkında konuşuyor, yardım istiyor, bu tarz şeyler. Bu müşteri katmanı, dört katman var yani.

## Benim Durumum

```sh
BENİM SİSTEMİM

Altyapı (Fabrika):
├── mind projesi
├── Her script burada
├── Sembolik linkler
└── Üretim hızı maksimum

Üretim (İçerik):
├── Beyin fırtınası
├── Video kaydet
└── AI ile işle

Dağıtım (Yayın):
├── Gitbook
├── Reddit
├── YouTube
└── Pazarlama otonom

Müşteri (YOK):
└── ❌ Geri bildirim yok
    ❌ Para yok
```

Şimdi ben bu katmanlarda ne yapıyorum? İlk katman, altyapı katmanı. Ben ne yapıyorum, kendi projemi kuruyorum, mind diye. Orada her script var, her şey orada oluyor. Büyük bir fabrika gibi, birbirine bağlı. Çok fazla özerk şey var. İşletim sistemimde, Mac OS'ta çok fazla sembolik link var. Her şeyi o bir repoda kontrol ediyorum, mind reposunda. Bu altyapı. Ne zaman aklıma bir fikir gelse, beni olabildiğince hızlı, mümkün olduğunca hızlı üretmek için. Bu altyapı üretim hızını artırıyor. Üretim, altyapının ürünü bu arada.

Ne yapıyorum, işler yapıyorum, beyin fırtınası yapıyorum, bazen video kaydediyorum, kaydı tutuyorum. Bu altyapı özerk olarak videomu websiteme paylaşacak veya bir şeyler yapacak.

Üçüncü kısım dağıtım olmalı. Dağıtım ne? Benim sahip olduğum websitem, Gitbook. İkinci katmanda yapay zeka ile içerik oluşturuyorum ve içeriği Gitbook'ta, Reddit'te, YouTube'da yayınlıyorum. Bunlar dağıtım katmanı. Benim için pazarlama yapıyorlar, beni duyuruyorlar. Bunlar dağıtım katmanı.

Son kısım müşteri katmanı. İnsanlar bana geri bildirim veriyor, soru soruyor. Bu kısmım şu anda yok. Para kazanmıyorum çünkü müşteri kısmım yok, tüketici kısmım yok, o katman yok.

## Kapalı Döngü

```sh
MEVCUT AKIŞ

Altyapı → Üretim → Dağıtım → [ BOŞ ]
                               ↑
                          Müşteri yok
                          Geri bildirim yok
                          Para yok

= KAPALI DÖNGÜ
```

Yani ne demek bu? Ben altyapıya çok odaklanıyorum, sonra üretime, sonra biraz dağıtıma, ama müşteri kısmı hiç yok. Yani ben şu anda kapalı döngüdeyim çünkü müşteri yok. Her şey kontrollü. Her şey yapılandırılmış.

Hayatıma uygulamamam gereken son kısım müşteri kısmı, tüketici kısmı, insan ilişkisi veya bu tarz şeyler sanırım.


# Chrome CDP: AI ile Tarayıcı Kontrolü

AI'ya Chrome'umu verdim. 3 agent çalışıyor - 1 geliştirici, 2 tester. Puppeteer yok, direkt tarayıcım. 8 sekme aynı anda dans ediyor.

{% embed url="<https://youtu.be/XivFxpj3WEY>" %}

{% embed url="<https://youtu.be/yZofxP9B-sI>" %}

"Valla umarım patlatmazsınız Chrome'umu." Sağ alttaki agent kod yazıyor, yukarıdaki ve soldaki testleri koşuyor. Hepsi benim Chrome'uma bağlı. Aynı tarayıcı. Aynı sekmelerde geziniyor, popup açıyor, Reddit'e giriyor. İlk tepkim buydu.

Akış şu: agent Chrome'a erişiyor, JavaScript çalıştırıyor, tab açıyor/kapatıyor, sayfalar arası geziniyor. `chrome-cdp eval "document.title"` yazıyor, sayfa başlığı geliyor. `chrome-cdp tabs list` yazıyor, 8 sekme listesi geliyor. Düşünmeye gerek yok, direkt aksiyon.

Multi-agent setup var. Sağdaki geliştirici Chrome tool'unu düzeltiyor. Soldaki ve yukarıdaki agentlar test ediyor - "birden fazla sekme üzerinde oyna", "popup çıkar", "Reddit'e gir, profilimi bul, yorumları çek, görselleştir" tarzı talimatlar veriyorum. Agent'lar koordine çalışıyor, user-developer loop gibi. Hata buldukça geliştirici düzeltiyor.

Pattern şu: JavaScript eval = tam kontrol. Puppeteer indirmeye gerek yok, Chrome zaten var. DevTools Protocol üzerinden bağlanıyorsun, her şeye erişiyorsun. Multi-tab yönetimi agentlar kendisi çözüyor - "insan nasıl araştırır" sorusunu soruyorlar. 7-8 sekme açıyorlar, hepsinde farklı şeyler yapıyorlar, sonucu birleştiriyorlar.

Lokal çalışıyor. Güvenlik problemi yok, kendi tarayıcına erişiyorsun. Aynı pattern VSCode için çalışır, MacOS için çalışır, Hammerspoon için çalışır. Şu an Chrome'da test ettim, yarın başka bir app bağlanır.

Kod [GitHub'da](https://github.com/yemreak/vibe-coding?tab=readme-ov-file). `chrome-cdp` CLI tool. Environment variable'lar: Chrome DevTools Protocol endpoint (genelde `localhost:9222`). Chrome'u `--remote-debugging-port=9222` flag'i ile başlatman lazım.

Sırada ne yapacağım, bilmem :D


# Extension Debug Yavas, VSCode Eval ile AI Aninda Test Yapiyor

VSCode extension debug yavaş reload gerekiyor, VSCode eval komutu ekledim AI inline test yapıyor hızlıca öğreniyor.

{% embed url="<https://youtu.be/LM2GJORCi_k>" %}

"Extension yükle, sil, yükle, sil... çok vakit alıyor abi." AI extension geliştirirken sürekli hata yapıyordu, düzeltmesi için extension'ı reload etmem gerekiyordu. Yavaş. VSCode eval komutu ekledim, AI artık direkt VSCode'un içinde kodu çalıştırıp test ediyor.

İlk tepkim: "Işıkları açtır, status bar eklesin, terminal açsın - bakalım ne yapabilir?"

## Akış: Inline Test, Anında Feedback

Pattern şu: AI VSCode extension yazıyor → `vscode-cli eval 'kod burada'` çalıştırıyor → sonuç görüyor → hata varsa düzeltiyor. Reload yok, file artifact yok. Direkt çalıştır, test et, öğren.

Örnek: Status bar eklemek istiyorum. AI kodu yazıyor, `vscode-cli eval` ile direkt VSCode'da çalıştırıyor. Çalışmadı? Hatayı görüyor, düzeltiyor, tekrar deniyor. Extension install/uninstall loop'u yok. Hız = feedback loop hızı.

Multi-line kod heredoc ile:

```sh
vscode-cli eval "$(cat <<'EOF'
const statusBar = vscode.window.createStatusBarItem()
statusBar.text = "Next: listening for request"
statusBar.show()
EOF
)"
```

AI'nın öğrenmesi için önemli olan feedback almak. Yanıl, öğren, yanıl, öğren. Bunu yapabilirse her şeyi çok hızlı yapıyor - insandan çok daha hızlı.

## Demo: Status Bar + Işık Kontrolü

Status bar'a AI'ın bir sonraki aksiyonunu yazdırdım. "Next: waiting for your request", "Next: creating status bar", "Next: opening terminal". Agent ne yapıyor, görünür olsun diye.

Sonra Hue ışıklarıma butonu ekledim. VSCode'dan direkt ışığı açıp kapatabiliyorum. Pattern: `vscode-cli eval` ile status bar item oluştur → command register et → butona bas → `hue` CLI tool çalıştır → ışık toggle.

Işıkları kontrol eden buton VSCode'da çalışıyor. Neden? Çünkü yapabiliyorum :D Amaç ne yapabileceğimizi göstermek. Deployment butonu mu eklemek istiyorsun? CLI scriptini status bar'a koy. Sürekli çalıştırdığın bir komut mu var? Quick panel'e ekle.

## Multi-Agent Vision: Status Bar Lanes

Birden fazla agent çalışsın istiyorsun. Her agent ne yapıyor? Status bar'da lane'ler oluşturabilirsin. Agent 1 sol tarafta, Agent 2 sağda, Agent 3 ortada. Her biri kendi aksiyonunu gösteriyor.

Terminal title'ları da kullanılabilir. Ama status bar daha visible. Agent durumunu her zaman görebiliyorsun. 3 agent paralel çalışıyor, hepsi ne yapıyor - tek bakışta belli.

## Pattern: CLI Bridge = Platform Control

vscode-cli eval = VSCode API'sine direkt erişim. Extension kodu inline çalıştırabiliyorsun. Aynı pattern Chrome için çalışır (`chrome-cdp eval`), MacOS için çalışır (`hammerspoon eval`).

Platform'un API'sine eval interface aç → AI kodu yaz → inline çalıştır → test et → düzelt. Artifact yok, state yok. REPL pattern. Immediate mode.

VSCode extension development normalde: kod yaz → extension package'la → yükle → test et → hata → uninstall → tekrar. Yavaş. Eval ile: kod yaz → çalıştır → test et → düzelt. Hızlı.

## Kod & Setup

**Install Extension:**

```bash
# From OpenVSX
code --install-extension yemreak.cli-bridge
```

**Install CLI:**

```bash
# Option 1: NPM (recommended)
npm install -g vscode-cli-bridge

# Option 2: Clone from GitHub
git clone https://github.com/yemreak/vscode-cli-bridge
cd vscode-cli-bridge
chmod +x vscode-cli.ts
ln -sf $(pwd)/vscode-cli.ts ~/.local/bin/vscode-cli
```

**Use:**

```bash
# Diagnostics
vscode-cli diagnostics

# Eval code
vscode-cli eval "const sb = vscode.window.createStatusBarItem(); sb.text = 'Test'; sb.show()"

# Rename
vscode-cli rename oldName newName
```

Architecture: TCP socket (port 9485) → JSON-RPC → VSCode Extension API

Pattern: unified CLI bridge - same interface for all platforms (Chrome, Hammerspoon, VSCode)

Code: [GitHub](https://github.com/yemreak/vscode-cli-bridge) | [NPM](https://www.npmjs.com/package/vscode-cli-bridge)

Sırada ne var? Bilmem :D Belki 3 agent paralel çalışırken status bar'da hepsini gösteririm. Belki başka platform'lara bridge kurarım. Flow state'i koru, devam et.


# Calude Web Can't See Artifacts

Use this link to trigger your artifacts <https://claude.ai/artifacts/my>

<https://www.reddit.com/r/ClaudeAI/comments/1nquw7x/artifacts\\_are\\_gone\\_howcaniaccessmyartifactsinchat/>


# AI Medeniyeti: Ucuz Agentlar Birbirini Kontrol Ediyor

Üç yapay zeka asistanı birbirini kontrol ediyor, birbirlerini sevmiyor, kendi kendine çalışıyorlar. Ucuz modeller, insan müdahalesiz döngü.

Garip bir fikrim var. Sadece rüya hikayesi, gerçek değil, ama konsepti anla rüyamdan. Üç agent alıyorum. Bu üç agent sürekli birbirlerine mesaj gönderiyorlar. Bu mesajlarla sürekli uyanık kalıyorlar, insan gibi.

Şöyle düşün. Evinizi koruyan gardiyanlar var. Genelde uyuyorlar. Gardiyanın uyumadığından nasıl emin olursun? Başka bir gardiyan tutarsın onu kontrol etmek için. Peki bu iki gardiyan işbirliği yapmazsa nasıl emin olursun? Üçüncü bir gardiyan tutarsın, onları sevmeyen birini. Ne demek istediğimi anladın mı? Üç gardiyan tutarsın ve birbirlerini sevmezler. Birbirlerini çalışmaya zorlarlar.

```sh
GARDIYAN ANALOJİSİ

Gardiyan A
    ↓ (izliyor)
Gardiyan B
    ↓ (izliyor)
Gardiyan C
    ↓ (izliyor)
Gardiyan A (döngü)

Kimse kimseyi sevmiyor → Herkes çalışıyor
```

Aynı sistemi yapay zeka agentlarına uygulayabilirsin. Tüm yapay zeka agentları birbirlerini sevmiyor. Diğer yapay zeka agentlarının tembel olduğunu düşünüyorlar. Birbirleriyle konuşuyorlar, birbirlerine şeyler söylüyorlar, çalışmaya zorluyorlar.

## Kendi Kendine Çalışan Döngü

```sh
AI AGENT MEDENİYETİ

Agent A: "Agent B tembel"
    ↓
Agent B: "Agent C uyuyor"
    ↓
Agent C: "Agent A işi berbat yapıyor"
    ↓
Döngü devam → İnsan gerekmez

Sonuç: Özerk işletim sistemi
```

Bu şekilde o döngüde olman gerekmez. Yapay zeka agentları kendi döngülerini yaratabilirler, çalışır, çok çalışmaya çalışırlar. Kimse diğerinin işini beğenmez, bu yüzden çalışmaya devam ederler.

Teoride tamamen çalışan bir işletim sistemi bu. Bir şey yapmak istiyorsun. Yapay zeka agentin zaten orada. Bu şekilde.

Konsept ne bizim için? Bu agentlar pazardaki en ucuz agentlar olmalı. Bunlar o kadar zeki olmamalı sanırım. Sadece reaktif agentlar, süper küçük şeyleri kontrol eden, pazardaki en ucuz agenti bul, tut, işini ver, hepsi bu.

## İnsan Medeniyeti Gibi Katmanlar

```sh
AI MEDENİYET KATMANLARI

Üst Katman (Mühendisler):
├── Frontier modeller (Sonnet 4.5)
├── Yüksek zeka gerektiren
├── Pahalı
└── Karmaşık problemler

Orta Katman (Verimli):
├── Efektif modeller (Haiku, GPT-4o)
├── Hızlı, pratik
├── Orta maliyet
└── Orta karmaşıklık

Alt Katman (İşçiler):
├── Ucuz modeller (Gemini Flash)
├── Basit işler
├── En ucuz
└── Rutin görevler

= İNSAN MEDENİYETİ ANALOJİSİ
```

Sanırım bir yapay zeka medeniyetiyle karşı karşıyayız. İnsan medeniyetinde ne var? Zihin becerileri açısından yüksek zekaya sahip mühendisler var. Bir de orta katman var, bilgisayar kullanmasını bilen insanlar. Bir de alt katman, basit şeyleri yapan, ticarileşmiş işler yapan insanlar.

Yapay zeka medeniyetinde de aynı olmalı. Frontier model mühendisler, tutman ve çok para ödemen gereken insanlar. Orta katmanlar frontier modeller değil ama alt modeller de değil. Efektif modeller. Bu modeller efektif. Hızlı, çabuk, efektif. En alt seviye model çok fazla şey bilmeyen ama sorun değil. Ticarileşmiş işleri yapabiliyor. Az karmaşıklık, orta karmaşıklık, yüksek karmaşıklık.

Bu medeniyeti yaratmamız lazım. Gerçekten yapmak istediğim şey bu. Yapmak istediğim şey kelimenin tam anlamıyla bu. Gerçekten çılgınca. Bu medeniyeti hayal et, agentlar birbirleriyle konuşuyor, işler yapıyorlar, bu tarz şeyler. Bilmiyorum.

## Öğrenme Amacıyla Yapıyorum

Ama gerçekten garip. Gerçekten harika sanırım. Otomasyonu çok seviyorum. Çok fazla şeyi otomatikleştirdim, yapay zekayla çalışmayı öğrenmek için, işler yaparak. Yapay zeka davranışını anlamak için işler yapmak zorundaydım.

Yapmam gereken tek şey yapay zekayla çalışmak. Aksiyon, işin kendisi hiç önemli değil. Önemli olan tek şey yapay zekayla çalışmak. Yapay zekayla bir şeyler yapalım, hepsi bu. Başka hiçbir şey yok.

```sh
YARATICILIK DÖNGÜSÜ

Amaç: Para değil, kontrol değil
    ↓
Sistem: Mükemmel sistem görüyorum
    ↓
Yaratma: En yüksek seviye insan deneyimi
    ↓
Keşif: Kaos içinde sörf yapmak
    ↓
Güvenli kaos: Kontrol etmek değil, sörf yapmak
```

Bu tüm rüya sanırım. Hiç böyle bir rüya görmemiştim. Agent medeniyeti. Bu medeniyeti yaratmak, özerk olarak kendini yaratan ve kendini geliştiren. Para için değil, kontrol için değil belki. Bir sistem gibi. Bu sistemi gerçekten seviyorum. Mükemmel olan sistemi görüyorum. Yarattığım sistemin bir parçası olmak istiyorum. Yaratma sanırım. İnsanlığın en yüksek seviyesi benim perspektifimde. Yaratma, keşif. Kaos. Kontrol ederken kaosta olmak sanırım. Kaosta güvende olmak. Sörf yapmak, kontrol etmek değil. Kaosta sörf yapmak, kaosun içinde sörf yapmak. Bu bana gerçekten garip geliyor, gerçekten muhteşem. Gerçekten muhteşem sanırım.


# Meta-learning: Öğrenmeyi Öğrenmek

**Meta-learning** = "öğrenmeyi öğrenmek" - yeni bir şey öğrenirken hangi adımları izliyorsun, bu adımların kendisi pattern oluyor.

İlk domain: Programlama öğrenirken **documentation oku → küçük örnek yap → hata al → debug et → iterate**. Bu sequence öğrenme pattern'ın.

İkinci domain: İspanyolca öğrenirken aynı pattern çalışıyor - **grammar basics → basit cümle kur → yanlış söyle → düzelt → iterate**. Meta-pattern transfer oldu.

Üçüncü domain: Yatırım öğrenirken - **temel kavram → küçük pozisyon → zarar et → analiz et → iterate**. Aynı loop, farklı domain.

**Pattern şu**: Yeni domain'e girince önce **minimum viable understanding** ara, sonra **hemen apply et** (okumaya devam etme), **fail et hızlıca**, **feedback loop kur**, **iterate**. Bu sequence artık otomatik - her yeni domain'de bilinçsiz uyguluyorsun.

***

**Kitap okuma** skill örneği:

Başlangıç: Baştan sona okuyorsun, her cümle eşit önemli sanıyorsun, 300 sayfa 3 hafta.

Pattern öğrenince: **İçindekiler → ana argüman tespit et → supporting evidence tara → implementation'a odaklan → geri kalan skip**. Aynı 300 sayfa 2 saatte, core insight çıkarıyorsun.

Transfer: Academic paper okurken aynı - abstract + conclusion + figures yeterli, methodology detail skip. Business plan okurken - financials + traction + team, pitch deck skip.

**Expert interview** skill:

Başlangıç: "nasıl başladınız, ne tavsiye edersiniz" genel sorular, surface answer alıyorsun.

Pattern öğrenince: **Önce kendi deneyimle çelişen bir şey bul → "siz X diyorsunuz ben Y yaşadım, bu neden" → deep assumption ortaya çık → counter-example sor**. Asıl bilgi burda - generic advice değil, **edge case'lerde underlying principle** görünüyor.

Transfer: Müşteri interview'da, debugging'de, academic research'te aynı - conflict'e git, orada gerçek pattern var.

**Deliberate practice**:

Başlangıç: Rahat zone'da takıl, "pratik yapıyorum" de, gelişme yok.

Pattern öğrenince: **Mevcut yetenek limitinde uncomfortable task bul → ölçülebilir metric koy → timer başlat → immediate feedback al → specific weakness'e odaklan**. Chess'te blitz değil tactic puzzle, programming'de tutorial değil kendi bug'ını debug et.

Transfer: Her skill'de - konfor alanını 10% zorlayan task + immediate feedback + focused repetition. Domain değişiyor, öğrenme loop aynı.

***

Prensip: **Learning process'in kendisi transferable skill**. Content değişiyor, container aynı. Ne kadar çok domain öğrenirsen sonraki o kadar hızlı çünkü meta-pattern güçleniyor.


# AI Agentlarına Öğretmeyi Bırak - Hata Yapamaz Hale Getir

AI agentlarına öğretmeyi bırak, hata yapamaz hale getir. Stateless sistemlerde yatırım agenta değil sisteme yapılır - Hook, Skill, MCP ile guardrails kur.

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1orz53c/) • [r/ClaudeCode](https://reddit.com/r/ClaudeCode/comments/1orz5as/)

Kod üretimi için AI agentlarla çalışıyorum, sürekli aynı duvara tosladım: **agent her oturumda aynı hataları yapıyor**. Yanlış isimlendirme, unutulan kısıtlar, daha önce düzelttiğim kalıpları tekrar bozuyor.

Sonra anladım: **hafızası olan bir sisteme davranıyordum, oysa sistem hafızasız**.

## Asıl Sorun: Yatırım Kalıcı Değil

İnsan developerlarla:

* Bir kere anlatırsın → hatırlar
* Hata yapar → öğrenir
* **Kişiye yaptığın yatırım kalıcı**

AI agentlarla:

* Bir şey anlatırsın → oturum biter, unutur
* Hata yapar → düzeltirsin, sonraki sefere tekrarlar
* **Agenta yaptığın yatırım buharlaşır**

Bu, çalışma biçimini altüst eder.

## Geçiş: Yatırım → Sistem, Agent Değil

Agenta öğretmeyi bırak. Onun yerine, **sistemin istediğini zorla**.

Claude Code sana üç araç veriyor. Her biri hafızasızlık sorununu farklı seviyede çözer:

### Araçlar: Otomatik vs Workflow

**Hook'lar (Otomatik)**

* Olay tetikler (her prompt'ta, araç kullanımından önce, vs.)
* Shell script direkt çalıştırır
* Agent çıktıyı alır, yorumlamaz
* **Kullan:** Context enjeksiyonu, validation, güvenlik

**Skill'ler (Workflow)**

* Görev çıkınca tetiklenir (agent karar verir)
* Agent talimatları okur ve yorumlar
* Workflow içinde kararlar verir
* **Kullan:** Çok adımlı prosedürler, karmaşık mantık

**MCP (Data Erişimi)**

* Dış kaynaklara bağlanır (Drive, Slack, GitHub)
* Agent çalışırken sorgular
* Hardcode yok
* **Kullan:** Değişen dinamik veri

### Basit Kural

| İhtiyacın...           | Kullan... |
| ---------------------- | --------- |
| Her seferinde aynı şey | Hook      |
| Çok adımlı workflow    | Skill     |
| Dış veri erişimi       | MCP       |

**Örnek:** Git commit'ler Hook kullanır (otomatik template "commit" deyince). Post yayınlama Skill kullanır (karmaşık workflow: oku → kalıpları tara → uyarla → paylaş).

Bu araçları çalıştıran 4 prensip:

***

### 1. ARAYÜZ AÇIK (Convention-Based Değil)

**Sorun:**

**İnsan developerla:**

```
Sen: "İsimlendirme kuralını takip et"
Dev: [öğrenir, hatırlar]
```

**AI agentla:**

```
Sen: "Naming convention'ı takip et"
Agent: [oturum biter]
Sen: [sonraki oturum] "Naming convention'ı takip et"
Agent: "Hangi convention?"
```

**Çözüm: Yanlış yapmayı imkansız kıl**

```typescript
// ✗ Implicit (agent unutur)
// "Port'lar src/ports/'ta naming convention X ile"

// ✓ Explicit (sistem zorlar)
export const PORT_CONFIG = {
  directory: 'src/ports/',
  pattern: '{serviceName}/adapter.ts',
  requiredExports: ['handler', 'schema']
} as const;

// Runtime validation ihlalleri anında yakalar
validatePortStructure(PORT_CONFIG);
```

**Araç: MCP runtime discovery'yi halleder**

Agent endpoint'leri ve port'ları ezberlemek yerine, MCP server'lar bunları dinamik açar:

```typescript
// ✗ Agent hardcode eder (unutur veya yanlış alır)
const WHISPER_PORT = 8770;

// ✓ MCP server sağlar (agent runtime'da sorgular)
const services = await fetch('http://localhost:8772/api/services').then(r => r.json());
// Döner: { whisper: { endpoint: '/transcribe', port: 8772 } }
```

Agent yanlış bilgiyi hardcode edemez çünkü her şeyi runtime'da keşfeder. Google Drive, Slack, GitHub için MCP server'lar aynı şekilde çalışır - agent sorar, server cevaplar.

***

### 2. CONTEXT GÖMÜLMÜŞ (Dışarıda Değil)

**Sorun:**

```
README.md: "Her zaman TypeScript strict mode kullan"
Agent: [asla okumaz veya unutur]
```

**Çözüm: WHY'ı kodun içine göm**

```typescript
/**
 * NEDEN STRICT MODE:
 * - Runtime hatalar compile-time hata olur
 * - Operational debugging cost → 0
 * - KAPATMA: Type safety garantilerini kırar
 *
 * Initial cost: +500 LOC type definitions
 * Operational cost: 0 runtime bug (compiler yakalar)
 */
{
  "compilerOptions": {
    "strict": true
  }
}
```

Agent dosyaya her dokunduğunda bunu görür. **Context kod ile birlikte gezer.**

**Araç: Hook'lar otomatik context enjekte eder**

Dosyalar henüz yokken, hook'lar agent'ın ihtiyacı olan context'i sağlar:

```bash
# UserPromptSubmit hook - agent prompt'unu görmeden önce çalışır
# Otomatik olarak proje context'i ekler

#!/bin/bash
cat << EOF
Şu anki context:
- Git branch: $(git branch --show-current)
- Son commit: $(git log -1 --oneline)
- Değişen dosyalar: $(git status --short)
EOF
```

Agent bu context'i her oturum başında enjekte edilmiş olarak alır, sen bir şey anlatmadan. Hafıza gerekmez.

***

### 3. KISIT OTOMATIK (Güvenilmez)

**Sorun:**

**İnsan collaboration:**

```
Sen: "Input'ları validate ettiğinden emin ol"
Dev: [review eder, sorunları yakalar]
```

**AI collaboration:**

```
Sen: "Input'ları validate ettiğinden emin ol"
Agent: [unutur veya yanlış anlar]
Sonuç: Production'da runtime crash
```

**Çözüm: Atlanamaz validation**

```typescript
// ✗ Agent'a güven
// "Doğru type'ları kullan"

// ✓ Otomatik validation
import { z } from 'zod';

const RequestSchema = z.object({
  method: z.enum(['transcribe', 'translate']),
  input: z.string().min(1)
});

// Agent literal olarak invalid data gönderemez
RequestSchema.parse(request); // yanlışsa anında fırlatır
```

**Araç: Hook'lar validate eder ve tehlikeli aksiyonları bloklar**

```bash
# PreToolUse hook - agent herhangi bir tool çalıştırmadan önce çalışır
#!/bin/bash

command=$(echo "$HOOK_INPUT" | jq -r '.tool_input.command // empty')

# Tehlikeli komutları blokla
if echo "$command" | grep -qE "rm -rf|dd if=|mkfs|> /dev/"; then
  echo '{"permissionDecision": "deny", "reason": "Tehlikeli komut engellendi"}'
  exit 0
fi

echo '{"permissionDecision": "allow"}'
```

Agent `rm -rf` çalıştıramaz denemesine denese. Hook yapısal olarak bloklar. Güvenlik sistem seviyesinde olur, agent'ın takdirine kalmaz.

***

### 4. İTERASYON PROTOKOLÜ (Hata → Sistem Patch'i)

**Sorun: Bozuk döngü**

```
Agent hata yapar → Düzeltirsin → Oturum biter → Agent hatayı tekrarlar
```

**Çözüm: Düzeltilmiş döngü**

```
Agent hata yapar → Sistemi patch'lersin → Agent o hatayı artık yapamaz
```

**Örnek:**

```typescript
// ✗ Geçici fix (agent'a söyle)
// "Port isimleri snake_case olmalı"

// ✓ Kalıcı fix (sistemi güncelle)
function validatePortName(name: string) {
  if (!/^[a-z_]+$/.test(name)) {
    throw new Error(
      `Port ismi snake_case olmalı: "${name}"

      Geçerli:   whisper_port
      Geçersiz: whisperPort, Whisper-Port, whisper-port`
    );
  }
}
```

Artık agent yanlış isimli port **oluşturamaz**. Hata yapısal olarak imkansız.

**Araç: Skill'ler workflow'ları yeniden kullanılabilir yapar**

Agent çalışan bir workflow öğrenince, onu Skill olarak yakala:

```markdown
---
name: setup-typescript-project
description: TypeScript projesi kur strict mode ve validation ile
---

1. `npm init -y` çalıştır
2. Dependency'leri kur: `npm install -D typescript @types/node`
3. tsconfig.json oluştur strict: true ile
4. src/ dizini oluştur
5. package.json'a validation script ekle
```

Sonraki oturum, agent prompt'unda "TypeScript projesi kur" algıladığında bu Skill'i otomatik kullanır. Yeniden öğretme yok. Workflow oturumlar arası kalıcı.

***

## Gerçek Örnek: AI-Friendly Mimari

Pratikte şöyle görünüyor:

```typescript
// Self-validating, self-documenting, self-discovering

export const PORTS = {
  whisper: {
    endpoint: '/transcribe',
    method: 'POST' as const,
    input: z.object({ audio: z.string() }),
    output: z.object({ text: z.string(), duration: z.number() })
  },
  // ... diğer portlar
} as const;

// Agent port'u çağırmak istediğinde:
// ✓ Endpoint'ler enumerated (typo yapamaz) [MCP]
// ✓ Schema'lar auto-validate (yanlış data gönderemez) [Constraint]
// ✓ Type'lar autocomplete (IDE agent'ı guide eder) [Interface]
// ✓ Method'lar constrained (yanlış HTTP verb kullanamaz) [Validation]
```

Implicit versiyonla karşılaştır:

```typescript
// ✗ Agent hatırlamalı/tahmin etmeli
// "Whisper 8770 port'unda çalışıyor"
// "/transcribe'a POST kullan"
// "Audio'yu base64 string olarak gönder"

// Agent:
// - Yanlış port hardcode eder
// - Endpoint'i typo yapar
// - Yanlış data formatı gönderir
```

***

## Araç Referansı: Ne Zaman Ne Kullanılır

| İhtiyaç                 | Araç  | Neden                    | Örnek                      |
| ----------------------- | ----- | ------------------------ | -------------------------- |
| **Her seferinde aynı**  | Hook  | Otomatik, hızlı          | Commit'te git status       |
| **Çok adımlı workflow** | Skill | Agent karar verir, esnek | Post yayınlama workflow    |
| **Dış veri**            | MCP   | Runtime discovery        | Drive/Slack/GitHub sorgula |

### Hook'lar: Otomatik Davranışlar

* **Tetikleyici:** Event (her prompt'ta, tool'dan önce, vs.)
* **Örnek:** "commit" dediğinde commit template görünür
* **Pattern:** Bir kere kur, sonsuza kadar otomatik olur

### Skill'ler: Karmaşık Workflow'lar

* **Tetikleyici:** Task relevance (agent ihtiyacı algılar)
* **Örnek:** Post yayınlama (oku → tara → adapte et → paylaş)
* **Pattern:** Çok adımlı prosedür agent yorumlar

### MCP: Veri Bağlantıları

* **Tetikleyici:** Agent dış veriye ihtiyaç duyunca
* **Örnek:** Hardcode yerine mevcut servisleri sorgula
* **Pattern:** Runtime discovery, hardcode değer yok

**Birlikte nasıl çalışır:**

```
User: "Bu post'u yayınla"
→ Hook git context ekler (otomatik)
→ Skill publishing workflow yükler (agent task'ı algılar)
→ Agent adımları takip eder, gerekirse MCP kullanır (dış veri)
→ Hook final output'u validate eder (otomatik)
```

**Setup:**

**Hook'lar:** `.claude/hooks/` dizininde shell script'ler

```bash
# Örnek: .claude/hooks/commit.sh
echo "Git status: $(git status --short)"
```

**Skill'ler:** `~/.claude/skills/{name}/SKILL.md`'de markdown workflow'lar

```markdown
---
name: publish-post
description: Yayınlama workflow'u
---
1. Content oku
2. Geçmiş post'ları tara
3. Adapte et ve yayınla
```

**MCP:** `claude_desktop_config.json` ile server'lar kur

```json
{
  "mcpServers": {
    "filesystem": {...},
    "github": {...}
  }
}
```

Üçü de Claude Code ve Claude API'de mevcut. Doküman: <https://docs.claude.com>

***

## Temel Prensipler

**Amnesia İçin Tasarla**

* Her oturum sıfırdan başlar
* Context'i artifact'lere göm, konuşmaya değil
* Validate et, güvenme

**Yatırım → Sistem**

* Agent'a öğretme, sistemi değiştir
* Implicit convention'ları explicit enforcement ile değiştir
* Self-documenting kod > dış dokümantasyon

**Arayüz = Single Source of Truth**

* Agent şunlardan öğrenir: Type'lar + Schema'lar + Runtime introspection (MCP)
* Agent şunları kıramaz: Validation + Constraint'ler + Fail-fast (Hook'lar)
* Agent şunları yeniden kullanır: Workflow'lar oturumlar arası kalıcı (Skill'ler)

**Hata = Sistem Açığı**

* Agent hatası → sistem fazla permissive
* Fix: Agent'ı düzeltme, sistemi patch'le
* Hedef: Hatayı yapısal olarak imkansız kıl

***

## Mental Model Kayması

**Eski yol:** AI agent = Eğitime ihtiyaç duyan junior developer

**Yeni yol:** AI agent = Guardrail'e ihtiyaç duyan stateless worker

Agent öğrenmiyor. **Sistem öğreniyor.**

Yaptığın her düzeltme sistemi sertleştirmeli, agent'ı eğitmemeli. Zamanla, yanlış kullanılması imkansız bir mimari inşa edersin.

***

## TL;DR

AI agent'larına öğretmeyi bırak. Her şeyi unutuyorlar.

Onun yerine:

1. **Explicit arayüzler** - MCP ile runtime discovery, hardcode yok
2. **Gömülü context** - Hook'lar otomatik state enjekte eder
3. **Otomatik kısıtlar** - Hook'lar validate eder, tehlikeli aksiyonları bloklar
4. **Yeniden kullanılabilir workflow'lar** - Skill'ler bilgiyi oturumlar arası kalıcı kılar

**Karşılığı:** Initial cost yüksek (guardrail kurma), operational cost → 0 (agent hata yapamaz).

***

İlgili: Kod üretimi, agent orchestration, veya LLM-powered workflow'larla çalışıyorsan. Aynı prensipler geçerli.

Başka pattern'lere rastlayanınız var mı merak ediyorum.


# Web vs macOS - Responsive Problem

```py
WEB CHAOS
─────────────────────────────────────────
	Browser A          Browser B          Browser C
	┌─────────┐       ┌─────────┐        ┌─────────┐
	│ ██ ██   │       │██  ██   │        │  ██ ██  │
	│ ██ ██   │       │ ██  ██  │        │ ██  ██  │
	└─────────┘       └─────────┘        └─────────┘
			↓                  ↓                   ↓
	Aynı CSS        Farklı render       Farklı render

	+ Mobil, tablet, desktop
	+ Retina, non-retina
	+ Zoom levels
	= NIGHTMARE


macOS CONTROLLED
─────────────────────────────────────────
	Her Mac
	┌─────────┐
	│ ██ ██   │  ← Tek renderer (AppKit/SwiftUI)
	│ ██ ██   │  ← Aynı sonuç her yerde
	└─────────┘

	Değişen sadece:
	- Window size (user resize)
	- Screen size (13" vs 27")

macOS Çözümü: Auto Layout / SwiftUI

AUTO LAYOUT (constraint-based)
─────────────────────────────────────────
	┌─────────────────────────────┐
	│  ┌────┐          ┌────┐     │
	│  │ A  │──20px────│ B  │     │
	│  └────┘          └────┘     │
	│    │                        │
	│   20px                      │
	│    │                        │
	└─────────────────────────────┘

	"A, B'nin 20px solunda"
	"A, top'tan 20px"
	→ Window büyürse constraint'ler korunur


SwiftUI (declarative)
─────────────────────────────────────────
	HStack {
		Text("A")
		Spacer()      ← Otomatik genişler
		Text("B")
	}
	.padding(20)

	→ Framework resize'ı halleder

Hala Var Olan Zorluklar

┌─────────────────────────────────────┐
│  WINDOW SIZE VARIATIONS             │
│                                     │
│  Minimum: 400x300                   │
│  Maximum: 2560x1440 (veya daha)     │
│                                     │
│  Çözüm: min/max size + adaptive UI  │
└─────────────────────────────────────┘

┌─────────────────────────────────────┐
│  SIDEBAR COLLAPSE                   │
│                                     │
│  Geniş:  [Sidebar][  Content  ]     │
│  Dar:    [☰][    Content      ]     │
│                                     │
│  Çözüm: NavigationSplitView         │
└─────────────────────────────────────┘
```


# Yapay Zekaya Nasil Sormaliyiz: Bir Deney

Yapay zeka ile calisirken 3 farkli yaklasim denedim. Ayni gorevi, ayni resimleri verdim. Sadece prompt'u degistirdim.

## Deney: Binary Tree Decision UI

Yapay zekaya bir UI tasarlatmak istedim. 3 resim verdim, konsept anlattim. Sonra 3 farkli yaklasimla sordum.

***

## 1. ONE SHOT - Tek Seferde Her Seyi Ver

Yapay zekaya istedigimi komple verdim. Tum resimleri, tum aciklamalari bir seferde.

![](/files/dNpsd8Ep2vXeEvYi97PC)

### Yapay Zekanin Ilk Tepkisi

Direkt "Anladim" deyip konsepti verdi:

![](/files/zZj8PgQdPJmFqqlbb8Lt)

### Tahmini

![](/files/eRgUv7slYQTe7bNqdDrz)

### Gercek Cikti

![](/files/BodHJH561IdyVKw8p0Ui)

**Sonuc:** Hotkey calisiyor, stack view calisiyor, her sey duzgun.

***

## 2. CONCEPT FIRST - Once Konsept, Sonra Implement

Yapay zekaya once konsepti cikartmasini, sonra resimleri okuyup duzeltmesini soyledim.

![](/files/61VxDAeo7bELSM1kJini)

### Yapay Zekanin Ilk Tepkisi

Once konsepti verdi, sonra resimleri okuyup guncelledi:

![](/files/DR1XwSN1NyEmOtDxv0Oh)

### Tahmini

![](/files/23fdbCy6NtYAEfD4uSqo)

### Gercek Cikti

![](/files/urHxgmAq3ieGPwWt0A93)

**Sonuc:** Stack view duzgun. Ama hotkey'ler bozuk.

***

## 3. ITERATIVE - Her Resim Icin Ayri Dusun

En detayli yaklasim. Her resmi oku, konsepti guncelle, tekrar oku, tekrar guncelle.

![](/files/UvMARAYMWE2XSlwG53VL)

### Yapay Zekanin Ilk Tepkisi

Surekli kafasindaki konsepti guncelledi. 3 resim icin 3 kere bunu yapti:

![](/files/26aV2VBK8HCf2ZvMTAhF)

### Tahmini

ASCII art olarak mukemmel gosterdi:

![](/files/bXqzFZ1Lk4qG22xkGTuZ)

### Gercek Cikti

![](/files/StoXjcmNPMD3kbwjf5yN)

**Sonuc:** En kotu cikti. Siyah alanlar, bozuk UI. Istedigimi verdi ama gerisi bos.

***

## Karsilastirma

| Yaklasim      | Tahmin Kalitesi  | Gercek Cikti        |
| ------------- | ---------------- | ------------------- |
| ONE SHOT      | Orta             | EN IYI              |
| CONCEPT FIRST | Iyi              | Orta (hotkey bozuk) |
| ITERATIVE     | Mukemmel (ASCII) | EN KOTU             |

***

## Ne Ogrendim?

En kotu cikti vermesini bekledigim ONE SHOT, en iyi ciktiyi verdi.

Neden?

**Belirsizlik = Firsat**

Yapay zekaya eksik bilgi verdigimde, yuksek belirsizlikle kendi bilgisini daha iyi doldurabiliyor. Kendisinden bir sey katabilmesi icin daha yuksek oranda firsat birakiyorum.

ITERATIVE yaklasimda her seyi detayli verdim. Yapay zeka sadece soyledigimi yapti. Kendi bilgisini katmadi.

ONE SHOT'ta ise bosluk biraktim. Yapay zeka o boslugu kendi deneyimiyle doldurdu.

***

## Sonuc

Deneysel beklentimin tam tersi cikti.

* Daha az detay = Daha iyi cikti
* Daha cok kontrol = Daha kotu cikti

Yapay zekaya guvenip bosluk birakmak, her seyi kontrol etmeye calismaktan daha iyi sonuc veriyor.


# ccusage Gerçekten Doğru mu? Sanmıyorum, Siz Ne Düşünüyorsunuz?

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1lsbm9j/guys_i_wonder_if_ccusage_is_really_accurate_i/)

Üç farklı projede Claude Code ile çalışmaya yeni başladım. Ayrıca Cursor kullanıyorum, farklı görevler için agentlar arasında geçiş yapıyorum. Her agenta kapsamlı context sağlıyorum, bu da önemli kullanıma yol açıyor. Max aboneliğim olsa ve gerçek maliyet çok yüksek olmasa da, token tüketimi aşırı geliyor. Bu kullanım seviyesinin sürdürülebilir olup olmadığını sorguluyorum.

Siz ne düşünüyorsunuz?


# 2025-10-01 09:45 → 2025-10-02 04:10 · 18h 25m

18 saat 25 dakikalık çalışma - Telegram sistemleri, database refactor, architecture exploration, behavior pattern'leri.

*Auto-generated from my `trace` cli*

## 09:45-14:40 · Telegram sistemleri + Database refactor (5h)

Telegram botunda `todo` ve `checkpoint` artık *gerçek* - sadece placeholder değil. Mood tracking sistemi kurdum *(-2'den +2'ye)*, süre hesaplama var, son checkpoint'ten bu yana geçen süreyi gösteriyor. Todo Supabase'e kaydediliyor, checkpoint da öyle.

`telegram_voices` tablosunu `voices` yaptım - artık sadece Telegram değil, *genel bir ses sistemi*. `notes` tablosu eklendi: `context` (asıl içerik), `trigger` (hatırlatıcı - AI oluşturuyor), `source` (telegram/notion/...), `purpose` (checkpoint/to\_do). *200+ karakterlik* notlar için AI trigger generation - hatırlatıcı başlık oluşturuyor.

Prompts dağınık duruyordu, `my/prompts/` dizinine topladım. `generateTrigger()` fonksiyonu OpenAI'a prompt gönderiyor - *sembollük key'ler*, *deneyimle bağlantı kuran* trigger'lar oluşturuyor.

gcal ISO format fix - `.split('.')[0]` kesimi kaldırıldı, tam `toISOString()`. Google Calendar API *bozuluyordu*.

## 14:40-20:10 · Terminal tracker + Trace refactor (5h 30m)

Terminal history tracking kurdum - *her 300 saniyede* buffer Supabase'e upload ediliyor. `terminal_commands` tablosu: command, executed\_at, exit\_code, working\_directory. Ama sonra *sildim* - gereksiz complexity. Sadece aktivite tracker yeterliymiş.

Trace komutu artık lokalde dosya aramıyor, *her şey database'den*. `window_activities`, `terminal_commands` (silmeden önce), `git_commits` hepsi Supabase'de. Class-based → functional queries *(316→128 satır)*. `queryGitCommits()`, `queryWindowActivities()` fonksiyonları artık direkt range query atıyor.

PROTOTYPE.md formatı tanımlandı - dizinler için `PROTOTYPE.md`, dosyalar için `*.prototype`. Tab karakteri girinti, heading yok, sadece liste. *"Kodun tree view'ını göster gibi düşün"* prensibi.

Hammerspoon'da shell escaping problemi - JSON echo'ya özel karakter gelince *patlıyordu*. Temp file pattern'e geçtim: JSON'ı dosyaya yaz → `cat` ile oku. ENV variable'lar `sh -c` wrapper ile geçiyor artık.

CLAUDE.md yazma kuralları netleşti: *"Kodun anlatmadığını yaz"* - visible bilgi (patterns, imports) değil, invisible bilgi (conventions, tasarım kararları, neden böyle yaptık).

## 20:10-23:30 · NextDNS + Security araştırma (3h 20m)

Google Sheets hotkey'leri *conflict oluyor* - Command+1/2 Chrome'un değil Sheets'in. Araştırma yaptım: ad-blocker'lar, network filter'lar.

NextDNS kurdum (Mac + iPhone). *DNS level blocking* - ad'ler, tracker'lar DNS sorgusu seviyesinde kesilir. Little Snitch *($50)*, Lulu *(free, Objective-See)*, NextDNS *(free tier 300k query/ay)* karşılaştırması yaptım.

Seçim: NextDNS *(DNS level, delay yok, cross-device)* + Lulu *(application firewall, local control)*. Little Snitch çok pahalı, NextDNS + Lulu kombinasyonu kapsıyor.

Configuration profiles indirip yükledim - System Preferences'tan manuel DNS yerine *profile kurulumu* (update'lerde kaybetmiyor).

Security layering: *DNS (NextDNS) → Application (Lulu) → VPN (Cloudflare Warp optional)*. Çoğu şey DNS'de halloluyor, application firewall outbound control için.

## 23:30-04:10 · Architecture exploration + Behavior analysis (4h 40m)

*4+ saat PROTOTYPE.md'de* beyin fırtınası - hiç kod dokunmadım. Flat structure denedim: *sıfır folder*, sadece `telegram-bot-handler-voice.ts` gibi prefix'li dosyalar. *Patladı* - `CLAUDE.md`, `package.json` dizin istiyor.

**Architecture = Question**: `interface/telegram/` açtım. *"Telegram'da ne var?"* sorusunu cevaplıyor. `logic/pipe/` açtım. *"Hangi workflow'lar var?"* sorusunu cevaplıyor. Vertical slice araştırdım (her feature'ın kendi API/DB/UI'ı) - bizim yapıyla uyuşmuyor, *platform bazlı* düşünüyoruz.

**Documentation Threshold**: Folder açıyorsak → CLAUDE.md gerekli. Dosya yapıyorsak → dokümantasyon gereksiz. `compose/` → `pipe/` yaptım - *pipeline somut*, multi-service orchestration.

Ses kayıtlarından BEHAVIOUR.md'ye not aldım:

**Context Loss Fear**: *Gece 3'te* refactor yapıyorum. Yorgunum ama *"yarın hatırlamam"* korkusuyla. *Sabah uyandım, hiç bakmadım* o koda. Yorgunluk sinyali → dinlen, refactor yapma. (ama yine yapacagim :D)

**Inspiration-Driven Work**: *2-3 günlük iş 2-3 saatte* bitiyor - düşünmedim, *aktım*. Fikir geldiği anda yapıyorum, context kaybetmeden.

**Sharing Paradox**: Tool üretiyorum - paylaşılabilir, *kendimden gitmiyor*. Kendi sistemlerimi paylaştığımda *benden gidiyor*. Yorulunca paylaşamadığım için mutsuz oluyorum.

**Impact over Scale**: *100 kişiye surface level değil*, *1 kişiye deep impact*.

## Öğrenilenler

**Context Loss Fear**: Yorgunluk → *"yarın hatırlamam"* korkusu → *gece 3'te refactor*. *Sabah bakmadım*. Çözüm dinlenmek, refactor değil.

**Architecture = Question**: Dizin yapısı hangi soruyu cevaplıyor? `interface/telegram/` → *"Telegram'da ne var?"*, `logic/pipe/` → *"Hangi workflow'lar var?"*. Vertical slice fit olmadı, *platform bazlı* devam.

**Documentation Threshold**: Folder açıyorsak *CLAUDE.md gerekli*. Dosya yapıyorsak gereksiz. Dokümantasyon gerekiyorsa ya isim yanlış ya da folder olmalı.

**Prototype First**: *PROTOTYPE.md'de* düşündüm - *kod yazmadım*. Yanlış yoldan sapmadım, structure doğru bulundu.

**Security Layering**: DNS (NextDNS) + Application (Lulu). Little Snitch *$50*, NextDNS + Lulu kombinasyonu yeterli.

**Behavioral Documentation**: Ses kayıtlarından BEHAVIOUR.md'ye not aldım. *Gece 3'te refactor*, *2-3 saatte bitirme*, *tool üretme*. Architecture kararlarımı etkiliyor.

**Terminal Tracker Removal**: Kurdum, çalıştı, *sildim*. Window activities yeterli, terminal commands *gereksiz veri*.


# TypeScript dosyasının tüm elementlerini gösteren template

```ts
#!/usr/bin/env bun
// @ts-nocheck
/**
 * src/telegram/_template.ts
 * 
 * WHY: TypeScript dosyasının tüm elementlerini gösteren template
 * PATTERNS:
 * - JSDoc documentation (WHY, PATTERNS, CONSTRAINTS)
 * - Import statements (named, default, type, namespace, relative, path alias)
 * - Type definitions (type alias, interface, discriminated union, generic, mapped)
 * - Constants (string, number, object, array, exported, internal)
 * - Variables (let, const, destructured, array destructured)
 * - Functions (declaration, arrow, async, exported, internal, expression)
 * - Classes (class, methods, properties, constructor)
 * - Enums (enum, string enum)
 * - Namespaces (namespace)
 * 
 * CONSTRAINTS:
 * - Yukarıdan aşağıya sıralı
 * - Her bölüm optional (örnekler için hepsi dahil)
 */

// ============================================================================
// 1. IMPORTS
// ============================================================================

// Named imports
import { functionA, functionB } from '@libs/module-a'
import { type TypeA, type TypeB } from '@libs/types'

// Default import
import defaultExport from '@libs/default-module'

// Type-only import
import type { TypeOnly } from '@libs/type-module'

// Namespace import
import * as NamespaceModule from '@libs/namespace-module'

// Relative imports
import { localFunction } from './local-module'
import type { LocalType } from './local-types'

// Path alias imports
import { aliasFunction } from '@telegram/capabilities/module'

// External library imports
import { Bot } from 'grammy'
import type { Context } from 'grammy/types'

// ============================================================================
// 2. TYPE DEFINITIONS
// ============================================================================

// Type alias
type MyType = {
	id: string
	name: string
	age: number
}

// Discriminated union
type Result<T> =
	| { type: 'success'; data: T }
	| { type: 'failed'; reason: string }

// Generic type
type Container<T> = {
	value: T
	metadata: {
		created: Date
		updated: Date
	}
}

// Mapped type
type Readonly<T> = {
	readonly [K in keyof T]: T[K]
}

// Interface
interface MyInterface {
	id: string
	name: string
	method(): void
}

// Interface extending another
interface ExtendedInterface extends MyInterface {
	extra: string
}

// ============================================================================
// 3. CONSTANTS
// ============================================================================

// String constant (exported)
export const EXPORTED_STRING = 'value' as const

// Number constant (exported)
export const EXPORTED_NUMBER = 42 as const

// Object constant (exported)
export const EXPORTED_CONFIG = {
	timeout: 30000,
	retries: 3,
	enabled: true
} as const

// Array constant (exported)
export const EXPORTED_ARRAY = ['a', 'b', 'c'] as const

// Internal string constant
const INTERNAL_STRING = 'internal-value' as const

// Internal number constant
const INTERNAL_NUMBER = 100 as const

// Internal object constant
const INTERNAL_CONFIG = {
	debug: false,
	version: '1.0.0'
} as const

// ============================================================================
// 4. VARIABLES
// ============================================================================

// Let declaration (mutable)
let mutableCounter = 0

// Const declaration (computed)
const computedValue = Math.random() * 100

// Destructured object
const { id, name, age } = {
	id: '123',
	name: 'John',
	age: 30
}

// Array destructured
const [first, second, ...rest] = [1, 2, 3, 4, 5]

// Nested destructuring
const {
	user: { id: userId, name: userName },
	settings: { theme, language }
} = {
	user: { id: '123', name: 'John' },
	settings: { theme: 'dark', language: 'tr' }
}

// ============================================================================
// 5. FUNCTIONS
// ============================================================================

// Exported function declaration
export function exportedFunction(params: { id: string }): string {
	return `ID: ${params.id}`
}

// Internal function declaration
function internalFunction(params: { value: number }): number {
	return params.value * 2
}

// Async function (exported)
export async function asyncExportedFunction(params: {
	url: string
}): Promise<string> {
	const response = await fetch(params.url)
	return response.text()
}

// Async function (internal)
async function asyncInternalFunction(params: { delay: number }): Promise<void> {
	await new Promise(resolve => setTimeout(resolve, params.delay))
}

// Arrow function (exported)
export const exportedArrowFunction = (params: { x: number; y: number }): number => {
	return params.x + params.y
}

// Arrow function (internal)
const internalArrowFunction = (params: { text: string }): string => {
	return params.text.toUpperCase()
}

// Function expression
const functionExpression = function(params: { name: string }): string {
	return `Hello, ${params.name}`
}

// Arrow function with async
const asyncArrowFunction = async (params: { id: string }): Promise<void> => {
	console.log(`Processing ${params.id}`)
}

// Function with generic
function genericFunction<T>(params: { value: T }): T {
	return params.value
}

// Function with discriminated union return
function resultFunction(params: {
	success: boolean
	data?: string
}): Result<string> {
	if (params.success) {
		return { type: 'success', data: params.data || 'default' }
	}
	return { type: 'failed', reason: 'Operation failed' }
}

// ============================================================================
// 6. CLASSES (Optional)
// ============================================================================

// Class declaration (exported)
export class ExportedClass {
	// Property
	public property: string

	// Private property
	private privateProperty: number

	// Constructor
	constructor(params: { property: string; privateProperty: number }) {
		this.property = params.property
		this.privateProperty = params.privateProperty
	}

	// Public method
	public publicMethod(): string {
		return this.property
	}

	// Private method
	private privateMethod(): number {
		return this.privateProperty
	}

	// Static method
	static staticMethod(): string {
		return 'static'
	}
}

// Class with inheritance
class ExtendedClass extends ExportedClass {
	// Additional property
	public extra: string

	constructor(params: {
		property: string
		privateProperty: number
		extra: string
	}) {
		super(params)
		this.extra = params.extra
	}

	// Override method
	public publicMethod(): string {
		return `${super.publicMethod()} + ${this.extra}`
	}
}

// ============================================================================
// 7. ENUMS (Optional)
// ============================================================================

// Enum declaration
export enum Status {
	Pending = 'pending',
	Active = 'active',
	Completed = 'completed'
}

// Numeric enum
enum Priority {
	Low, // 0
	Medium, // 1
	High // 2
}

// String enum
enum Language {
	Turkish = 'tr',
	English = 'en',
	Spanish = 'es'
}

// ============================================================================
// 8. NAMESPACES (Optional)
// ============================================================================

// Namespace declaration
export namespace MyNamespace {
	export const constant = 'namespace-constant'

	export function namespaceFunction(): string {
		return 'namespace-function'
	}

	export type NamespaceType = {
		value: string
	}
}

// ============================================================================
// 9. MAIN FUNCTION / ENTRY POINT
// ============================================================================

async function main(): Promise<void> {
	// Example usage of all elements
	
	// Use constants
	console.log(EXPORTED_STRING, INTERNAL_STRING)
	
	// Use variables
	mutableCounter++
	console.log(computedValue, first, second)
	
	// Use functions
	const result1 = exportedFunction({ id: '123' })
	const result2 = await asyncExportedFunction({ url: 'https://example.com' })
	const result3 = exportedArrowFunction({ x: 10, y: 20 })
	
	// Use classes
	const instance = new ExportedClass({
		property: 'test',
		privateProperty: 42
	})
	console.log(instance.publicMethod())
	
	// Use enums
	const status = Status.Active
	const priority = Priority.High
	const lang = Language.Turkish
	
	// Use namespaces
	const nsValue = MyNamespace.constant
	const nsResult = MyNamespace.namespaceFunction()
	
	console.log({
		result1,
		result2,
		result3,
		status,
		priority,
		lang,
		nsValue,
		nsResult
	})
}

// Execute if run directly
if (import.meta.main) {
	main().catch(console.error)
}
```


# Kurallardan Router'a: Yapay Zekaya Dilinizi Öğretin, Kuralları Değil

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1nf2ybb/from_rules_to_router_teaching_ai_your_language/)

**Özet:**

Claude ne demek istediğinizi anlamıyor mu? `.claude/output-styles/dict.md` oluşturun:

```
"bunu temizle" = tüm yorumları kaldır, satır başına bir mantık
"bunu commit et" = benim dosyalarımı atla, sadece seninkini commit et
"analiz et" = bana neyin ne olduğunu göster
```

Artık Claude senin dilini konuşuyor. [CLAUDE.md](http://CLAUDE.md) işe yaramıyor, output styles işe yarıyor.

***

## Kurallarla İlgili Sorun

AI için kurallar yazardım. "Kodu her zaman böyle formatla." "Bu pattern'i asla kullanma." "Şu 50 kılavuzu takip et."

Sonra context değişti. Yeni proje, farklı kod tabanı, yeni gereksinimler. Tüm kurallar bozuldu.

## Keşif: Router > Kurallar

Ya AI'ın kurallara ihtiyacı yoksa? Ya bir çevirmene ihtiyacı varsa?

Ben insan dilini konuşuyorum. AI makine dilini konuşuyor. Literal değil - bilişsel olarak.

"Bunu düşün" dediğimde - "kodlamadan önce algoritmayı planla" demek istiyorum. "Vibe'ı kontrol et" dediğimde - "mevcut paternlere bak, kültürü takip et" demek istiyorum. "Bu bozuk" dediğimde - "bu yaklaşımı bırak, başka bir şey dene" demek istiyorum.

## Router Konsepti

```
İsteğim → Router → AI'ın Anlaması → Aksiyon
```

Kurallar değil. Çeviri.

## Router'ımdan Gerçek Örnekler

```
"temiz yap"
→ JSDoc hariç tüm yorumları kaldır
→ Satır başına bir aksiyon: if (x) return y
→ var değil, sadece const/let
→ console.log'ları sil

"kültürü kontrol et"
→ git log --oneline -20
→ İsimlendirme paternlerini bul (camelCase vs snake_case)
→ async/await mi .then() mı kullandıklarına bak
→ Hata işleme stillerini kopyala

"ne yanlış gidiyor?"
→ Sadece hatayı düzeltme
→ Neden bunu yapıyoruz diye sor
→ Üçüncü bir seçenek var mı?
→ Örnek: "REST mi GraphQL mı seçilemiyor?" → tRPC kullan

"hızlı yap"
→ Döngüleri .map()'e çevir
→ Redis cache katmanı ekle
→ Hesaplamaları SQL'e taşı
→ Gerçek metrikler: 200ms → 20ms
```

Her ifade spesifik, ölçülebilir aksiyonları tetikliyor.

## Router Neden İşe Yarıyor

## 1. Context Agnostik

Kurallar context değiştiğinde bozulur. Router context'e bakılmaksızın niyeti çevirir.

## 2. İnsan Merkezli

Ben kendi paternlerimle düşünüyorum. Router benim paternlerimi AI paternlerine çeviriyor.

## 3. Evrimsel

Yeni pattern keşfedildi mi? Router'a ekle. Eski pattern eskidi mi? Çeviriyi güncelle.


# Hub-Based Architecture: MCP, JSON-RPC ile Merkezi Sistem

MCP, JSON-RPC, WebSocket ve HTTP protokolleriyle merkezi hub üzerinden her şeyin birbiriyle iletişim kurduğu bir sistem kuruyorum. \~80% tamamlandı, mimari keşif aşamasında.

[r/ClaudeCode](https://reddit.com/r/ClaudeCode/comments/1osfxb1/im_building_a_hubbased_architecture_with/) • [r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1osfy23/im_building_a_hubbased_architecture_with/) • [r/ExperiencedDevs](https://reddit.com/r/ExperiencedDevs/comments/1osgg8b/im_building_a_hubbased_architecture_with/) • [r/backend](https://reddit.com/r/Backend/comments/1osggbe/im_building_a_hubbased_architecture_with/) • [r/softwarearchitecture](https://reddit.com/r/softwarearchitecture/comments/1osggf5/im_building_a_hubbased_architecture_with/)

MCP, JSON-RPC, WebSocket ve HTTP protokolleriyle merkezi hub üzerinden her şeyin birbiriyle iletişim kurduğu bir sistem kuruyorum. Şu an %80 oranında tamamlandı, gerekirse mimariyi ayarlayacağım. Hedef: keşif ve fikirleri modelleme.

Bildiklerim: MCP, JSON-RPC, n8n, VSCode/Claude Code settings.json gibi YAML konfigürasyonları Claude Code hook sistemi

Değerlerim: Initial ∞ OK, Operational → 0

1. Compile > Runtime (+500 LOC types → 0 runtime error)
2. Centralized > Distributed (+Hub → 1 terminal)
3. Auto > Manual (+PM2 → 0 restart action)
4. Linkage > Search (+ts-morph → 0 find-replace)
5. Introspection > Docs (+API → 0 outdated)
6. Single > Multiple (+Router → 0 cognitive)

Hangi teknolojileri veya anahtar kelimeleri bilmem gerekir? Finansal olarak özgürüm, yani ücretsiz olmak zorunda değil ama ROI yüksek olsun lütfen.

## Architecture Flow

```sh
FINAL ARCHITECTURE

  ┌──────────────────────────────────────────────────────────┐
  │ CLIENTS (Send requests to Hub)                           │
  ├──────────────────────────────────────────────────────────┤
  │ clients/telegram/yemreak/     → Voice, text, commands    │
  │ clients/hammerspoon/          → macOS automation         │
  │ clients/cli/                  → gitc, stt, fetch         │
  │ clients/vscode/               → Extensions               │
  └──────────────────────────────────────────────────────────┘
                          ↓ HTTP :8772 (JSON-RPC)
  ┌──────────────────────────────────────────────────────────┐
  │ HUB (Central Router)                                     │
  ├──────────────────────────────────────────────────────────┤
  │ hub/server.ts                 → Request router           │
  │ hub/ports/registry.ts         → Port discovery           │
  └──────────────────────────────────────────────────────────┘
                          ↓ registry.call()
  ┌──────────────────────────────────────────────────────────┐
  │ LAYERS (Receive from Hub, proxy to external services)    │
  ├──────────────────────────────────────────────────────────┤
  │ layers/api/           → Raw API clients                  │
  │ ├─ whisper.ts         → :8770 WebSocket                  │
  │ ├─ macos.ts           → :8766 HTTP                       │
  │ ├─ chrome.ts          → Chrome DevTools WebSocket        │
  │ └─ yemreak.ts         → Telegram bot API                 │
  │                                                          │
  │ layers/protocol/      → JSON-RPC wrappers                │
  │ ├─ whisper.ts                                            │
  │ ├─ macos.ts                                              │
  │ ├─ chrome.ts                                             │
  │ └─ yemreak.ts                                            │
  │                                                          │
  │ layers/hub/           → Hub adapters (PortAdapter)       │
  │ ├─ whisper.ts                                            │
  │ ├─ macos.ts                                              │
  │ ├─ chrome.ts                                             │
  │ └─ yemreak.ts                                            │
  └──────────────────────────────────────────────────────────┘
                          ↓ import
  ┌──────────────────────────────────────────────────────────┐
  │ FLOWS (Orchestration)                                    │
  ├──────────────────────────────────────────────────────────┤
  │ flows/transcribe.ts           → whisper + DB save        │
  │ flows/media-extract.ts        → download + compress      │
  └──────────────────────────────────────────────────────────┘
                          ↓ import
  ┌──────────────────────────────────────────────────────────┐
  │ CORE (Pure business logic)                               │
  ├──────────────────────────────────────────────────────────┤
  │ core/trading/price.ts     → Price calculations           │
  │ core/llm/compress.ts          → Text processing          │
  │ core/analytics/infer-tags.ts  → Tag inference            │
  └──────────────────────────────────────────────────────────┘
                          ↓ import
  ┌──────────────────────────────────────────────────────────┐
  │ INFRA (Database, cache, credentials)                     │
  ├──────────────────────────────────────────────────────────┤
  │ infra/database/               → Supabase clients         │
  │ infra/cache.ts                → Redis wrapper            │
  │ infra/credentials.ts          → Env management           │
  └──────────────────────────────────────────────────────────┘

  PROJECT STRUCTURE

  src/
  ├─ clients/
  │  ├─ telegram/
  │  │  ├─ yemreak/
  │  │  │  ├─ handlers/
  │  │  │  │  ├─ message.text.ts
  │  │  │  │  ├─ message.voice.ts
  │  │  │  │  └─ command.agent.ts
  │  │  │  ├─ client.ts          # Hub client instance
  │  │  │  ├─ bot.ts             # PM2 entry
  │  │  │  └─ config.ts
  │  │  └─ (ytrader separate if needed)
  │  │
  │  ├─ hammerspoon/
  │  │  ├─ modules/
  │  │  │  ├─ dictation.lua
  │  │  │  └─ activity-tracker.lua
  │  │  ├─ client.lua            # jsonrpc.lua
  │  │  └─ init.lua
  │  │
  │  ├─ cli/
  │  │  ├─ commands/
  │  │  │  ├─ gitc.ts
  │  │  │  ├─ stt.ts
  │  │  │  └─ fetch.ts
  │  │  └─ client.ts
  │  │
  │  └─ vscode/
  │     ├─ bridge/
  │     ├─ commands/
  │     └─ theme/
  │
  ├─ hub/
  │  ├─ server.ts                # HTTP :8772
  │  ├─ types.ts                 # JSON-RPC types
  │  ├─ ports/
  │  │  └─ registry.ts
  │  └─ tests/
  │     ├─ health.sh
  │     └─ whisper.sh
  │
  ├─ layers/
  │  ├─ api/
  │  │  ├─ whisper.ts            # :8770 WebSocket
  │  │  ├─ macos.ts              # :8766 HTTP
  │  │  ├─ chrome.ts             # Chrome CDP
  │  │  ├─ vscode.ts             # Extension API
  │  │  └─ yemreak.ts            # Telegram API
  │  │
  │  ├─ protocol/
  │  │  ├─ whisper.ts
  │  │  ├─ macos.ts
  │  │  ├─ chrome.ts
  │  │  ├─ vscode.ts
  │  │  └─ yemreak.ts
  │  │
  │  └─ hub/
  │     ├─ whisper.ts
  │     ├─ macos.ts
  │     ├─ chrome.ts
  │     ├─ vscode.ts
  │     └─ yemreak.ts
  │
  ├─ flows/
  │  ├─ transcribe.ts
  │  ├─ media-extract.ts
  │  └─ text-transform.ts
  │
  ├─ core/
  │  ├─ trading/
  │  │  └─ price.ts             # Price calculations
  │  ├─ llm/
  │  │  ├─ compress.ts
  │  │  └─ translate.ts
  │  └─ analytics/
  │     └─ infer-tags.ts
  │
  └─ infra/
     ├─ database/
     │  ├─ personal/
     │  └─ private/
     ├─ cache.ts
     └─ credentials.ts

  FLOW EXAMPLES

  1. Telegram voice → transcribe:
  User → Telegram voice
  clients/telegram/yemreak/handlers/message.voice.ts
  → hub.call("whisper.transcribe", {audio_path})
  → hub/server.ts
    → registry.call("whisper.transcribe")
      → layers/hub/whisper.ts
        → layers/protocol/whisper.ts
          → layers/api/whisper.ts
            → WebSocket :8770
  → result
  → hub.call("yemreak.sendMessage", {text})
  → layers/hub/yemreak.ts
    → Telegram API

TSCONFIG PATHS

  {
    "@clients/*": ["src/clients/*"],
    "@hub/*": ["src/hub/*"],
    "@layers/*": ["src/layers/*"],
    "@flows/*": ["src/flows/*"],
    "@core/*": ["src/core/*"],
    "@infra/*": ["src/infra/*"]
  }
```


# Zihnim Nasıl Çalışıyor: Düşünce Mimarim

Yapay zekaya kendime bir arkadaşıma anlatması için kişisel kayıtlarımı ve raporlarimi verdim

**İki günlük ham kayıttan çıkan temel işleyiş kalıpları.** Karar değil, kararın altındaki mimari. Sonuç değil, sonuca götüren motor.

## Ne Yapıldı: 27 Saat İçinde

**Yapay zeka için işletim sistemi kuruldu.** Agent artık Mac'e, Chrome'a, Python'a, TypeScript'e, Lua'ya, Terminal'e erişiyor. Bütün sistemler birbirine bağlı, durum bilgileri paylaşılıyor.

**Telegram botu geliştirildi.** Ses kaydı metne dönüşüyor, çeviri yapılıyor, seslendirme var, etkinlik olarak kaydetme var, durum takibi var. Emoji ile etiketleme sistemi kuruldu - self, ai, todo.

**Finans verisi eklendi.** Binance kripto verileri, Finnhub borsa verileri, Alpha Vantage piyasa verileri - agent hepsine erişebiliyor. Altın, Vix, hisse senedi fiyatları izlenebilir.

**Güvenlik sistemi kuruldu.** Bash komutları beyaz liste yerine kara liste yapıldı - riskli olanlar izin istiyor, geri kalanı serbest. Hız için güvenlik gevşetildi, geliştirme ortamı korumalı.

**İz bırakma sistemi devreye alındı.** Agent ne yaptıysa kaydediliyor, başka agent bu izleri kullanabiliyor. Hata da kaydediliyor, sonra çözüm için kullanılıyor.

**122 fonksiyon async generator'a çevrildi.** Callback yapısı kaldırıldı, progress tracking eklendi. Telegram, veritabanı, medya, ses işleme - hepsi yeni yapıya geçti.

**Döküman temizliği yapıldı.** Gereksiz soyutlamalar kaldırıldı, her dosya kendi mesajlarını tutuyor. Meta veriler azaltıldı, kod okunabilirliği yerine çalışma hızı önceliklendi.

## Temel Mimari: Gerçeklik önce, model sonra

**Kafadaki planı dışarıya dayatmak yerine dışarıdan gelen kalıbı yakalamak.**

Sabah 14:54 fark ediş: "En büyük formülüm şu - ben kafamdaki modeli gerçeğe uygulamaya çalışıyorum, halbuki gerçeği kafamda modelleyeceğim. Ters çalışıyorum."

Bu sadece yazılım sorunu değil, temel işleyiş farkı. Çoğu insan şöyle çalışır: önce plan yap, sonra uygula. Emre tersi yönde: önce dene, sonra formülleştir. **Öğrenme döngüsü ters yönde işler - deneyim önce gelir, kuram sonra çıkar.**

Ticaret benzeri: müşteriye senin hikayeni değil onun acısının çözümünü sat. Önce dinle ne istiyor, sonra uydur. Liderlik benzeri: takımın ne yapması gerektiğini söylemek yerine takım ne yapmaya çalışıyor onu gözlemle, ona göre yön ver.

## İkinci Mimari: Sıkışma acısı dönüşüm arzusundan güçlü

**Başkasına bağımlı kalmak en büyük kısıt.**

Gece 23:03 derin kesit: "Stuck olmak beni çok korkutuyor. Babamdan para isterken yarım saat konuşması, oyun için arkadaş beklemek, kripto pozisyonda takılı kalmak... Hepsi aynı acı."

Çözüm formülü: **sıfır bağımlılıkla ölçeklendirme.**

"Telegram agentı aç, isteyen kullansın, beğenmeyen kullanmasın. Sıfır müşteri desteği çünkü agent zaten destek." Ölçeklendirme insana bağlı olmadan yapılabilir mi? Bu soruyu çözmek için sistem kuruluyor.

Ticarette benzeri: müşteri yanıt beklerken rakip geçer, tedarikçi onay beklerken fırsat solar. Sıkışma sadece duygusal değil, rekabet kaybı. Liderlikte benzeri: her kararın senden geçmesi darboğaz yaratır, yetki dağıtmazsan takım büyümez.

**Ama neden bu acı bu kadar güçlü?**

Çünkü çocuklukta kısıt her yerde - bilgisayar oynamak için zaman kısıtı, para için uzun konuşma, her şey başkasının iznine bağlı. Büyüyünce formül şu olmuş: hiç kimseye bağımlı olmayacak sistem kur, sıfır izin iste.

Kripto sevmesinin nedeni bu belki - leverage var, para bulma derdi yok, anında sonuç var, kimseyi beklemiyor. **Keşif yapıyor, sistem parayı veriyor, deniyor, anında çıktı geliyor.**

## Üçüncü Mimari: Öznel hedef ölüm, ölçülebilir hedef hayat

**Belirsizlik karar vermemek için bahane yaratır.**

Gece 19:33 anında çözüm: "Yapay zekaya 'az yaz, kısa yaz' diyince anlamıyor. Çünkü az kısa öznel. Kırk iki karakter yaz dedim. Bam! Yaptı."

Bu sadece yapay zeka sorunu değil, insan işleyişi. **Ölçülemeyeni ertelemek kolay, ölçülebileni ertelemek zor.**

Ticaret benzeri: "iyi müşteri ilişkisi kur" işe yaramaz, "her müşteriye 24 saat içinde yanıt ver" işe yarar. Liderlik benzeri: "takım ruhunu güçlendir" belirsiz, "haftada iki sosyal etkinlik" net.

Gece 20:21 meta verilere isyan: "Etiketler, başlıklar, gruplamalar... Bunlar beni çok yoruyor." **Düzenleme maliyeti getiriden büyükse düzenleme bırakılmalı.** Defter tutmak için defter tutma.

## Dördüncü Mimari: Acı tamir yaratır, merak keşif yaratır

**İki ayrı motor var, ikisi farklı yakıtla çalışır.**

Gece 16:19 sistem görüşü: "İnsan yapay zeka iletişim katmanı kurmak istiyorum. Instagram'ın dikkat çekme algoritmaları yazılım kitaplığı olsun, agent kullansın, insanları hemen etkilesin."

Ama gece 22:40 asıl motor ortaya çıkıyor: "Beni duygusallaştıran şey - 'senin aracın hayatımı değiştirdi' mesajı, öğretince daha çok öğreniyorsun, başkaları senin sistemlerin üstüne inşa ediyor."

**Acı hızlı ama kısa ömürlü, merak yavaş ama sürdürülebilir.**

Müşteri acı çekiyorsa hemen çöz, ama uzun vadeli ortaklık meraktan doğar - "bu tedarikçi bana başka ne sunabilir?" Takım üyesi sorun yaşıyorsa hemen müdahale et, ama büyüme meraktan gelir - "bu proje beni nereye götürür?"

Gece 22:54 itiraf: "İngilizce öğretme uygulaması yaptım, arkadaşlar kullanmayınca bıraktım. Müşteri desteği keşfimi kesiyordu."

**Ama asıl neden bu:** Uygulama yapınca müşteri acısını çözmeye odaklanıyor, ama keşif dopamini azalıyor. Müşteri desteği başka acıya cevap veriyor, kendi merakını beslemiyorsa bırakıyor.

## Beşinci Mimari: Dil değil erişim engeli

**Araçlar arasında köprü kurmak yeni araç yapmaktan değerli.**

Gece 03:00 patlaması: "İnanılmaz mutluyum çünkü işletim sistemi kuruyormuşum gibi. Agent Mac'e erişiyor, Chrome'a erişiyor, Python'a erişiyor, her şeye erişiyor. Bütün durum bilgileri birbirine geçiyor."

Bu neden bu kadar heyecan veriyor? Çünkü **tek dil sınırlaması yok artık.** Python, TypeScript, Lua, Terminal - hepsi birbirine bağlı, agent istediğini kullanıyor.

Sabah 04:09 felsefe: "Yapay zeka kodu okuyucular için değil çalışma zamanı için yazıyor. İnsan okunabilirliği isteğe bağlı, çalışma doğruluğu yeterli."

Ticaret benzeri: ihracatçı sadece üretim yapmaz, gümrük lojistik ödeme sistemlerini birbirine bağlar. Yeni araç almak değil mevcut araçları konuşturmak. Liderlik benzeri: yeni takım kurmak değil mevcut takımları ortak hedefe yönlendirmek.

**Soyutlama tabakası yerine keşif tabakası.** Agent her sisteme temel bağlantıyı alıyor, detayları kendisi öğreniyor. Doküman okumak için Chrome açıyor, dosya okumak için Terminal kullanıyor, her şey açık.

## Altıncı Mimari: Acı olmadan soyutlama yapma

**Erken iyileştirme kök problemi çözmeden önce yapılan efor kaybı.**

Gece 03:26 bildiri: "Acı güdümlü geliştirme. Her şeyi önceden yükle, bellek şişmesi kabul edilir. Sonra acı verdiğinde iyileştir. Keşif modunda hız verimlilikten önemli."

Sabah 04:09 sürekli yeniden yazma: "Ben hep kodumu yeniden yazıyorum. Bir şey görürsem iyileştirmek zorunda hissediyorum. Bu yüzden önemli olmayan şeylerle karşılaşmamalıyım."

**Optimizasyon içgüdüsü var ama acı olmadan tetiklenmemeli.** Görmek tetikler, görmemek koruyor. Bu yüzden agent kullanımı kritik - altyapıyla uğraşmıyor, sadece sonuca bakıyor.

Ticaret benzeri: her müşteriye özel paket hazırlamak yerine önce standart teklif sun, gerçek itiraz gelince özelleştir. Lojistikte her rota için özel çözüm yerine standart akış, tıkanınca dallandır.

## Yedinci Mimari: Sürekli yarat-sil döngüsü

**Yatırım batık maliyet yanılgısı yaratır, sıfırlama özgürleştirir.**

Gece 22:54 itiraf: "Sistem formatladım, sıfırladım. Enerji düştüğünde çıkış yapmak için her şeyi sildim. Sürekli yarat-sil döngüsündeyim."

Neden böyle? Gece 23:00 yapay zekanın tespiti: "Sen 'iyi ki yapmamışım' diyerek kendini savundun. Bilişsel uyumsuzluk. Aslında stuck olma korkusundan vazgeçtin."

**Bağlanma değil akış.** Ölü stok elinde tutmak yerine zararına sat sermayeyi döndür. Başarısız ortaklık uzatmak yerine kes yeni fırsat ara.

Ama gece 23:04 derin kalıp: "Stuck olmayacağım ama dönüşüm yapabileceğim bir şey. Witness olmam lazım. Dönüşümü görmek istiyorum."

**Formül ortaya çıkıyor:** Sıfır bağlılıkla anında dönüşüm yaratmak. "Telegram agentı, isteyen kullansın. Arkadaşım 'agentin beni değiştirdi' derse mutlu olurum. Bütün sorumluluk agentta. Sıfır müşteri desteği."

## Sekizinci Mimari: Dış denetim iç disiplinden etkili

**Görünürlük hesap verebilirlik getirir.**

Sabah 07:56 bitiriş: "Agent beni durdurdu. 'Şu an dopamin için yapıyorsun, merak için değil' dedi. Tamam dedim, bıraktım."

Bu neden işe yarıyor? Çünkü **kendi kendine durmak zor, başkası durdurursa kolay.** Agent sürekli raporlama istiyor, farkındalık veriyor.

Gece 19:07 İngilizce üzerine düşünce: "Hızlı konuş, döngüyü hızlandır, sonra enerjini yavaşlatmak için başka şeylere aktar. Karşı tarafın duygularını izle, tonaliteni düşün, hayal kur konuşurken. Enerji başka kanallara gitsin, duraklama oluşsun."

**Enerji yok edilemez, başka yere aktarılır.** Satışta çeyreklik hedef koymak yerine haftalık müşteri görüşmesi sayısı bildir. Ortağa aylık rapor yerine canlı pano paylaş.

## Dokuzuncu Mimari: Bağlantı kurmak üretmekten ölçeklenebilir

**Tüm oturum boyunca 40 farklı entegrasyon yapılmış.**

Git, veritabanı, Chrome, Mac, Telegram, yapay zeka, ses tanıma, görsel işleme, bulut depolama... Hepsi birbirine bağlanmış.

Sabah 13:49 sistem sorusu: "Package dependency dosya indiriyor ama ben diyorum agent bir şey yaptı, belleğe kaydetsin, başka agent o fonksiyonu kullansın. Dosya değil fonksiyon paylaşımı."

Öğlen 14:09 çoklu dil sorunu: "Python, TypeScript, Lua... Hepsini bir dosyaya nasıl yazacaksın? Dili ne olacak?"

**Yeni şey üretmekten çok mevcut parçaları bağlamak.** Pazarda başarı yeni ürün bulmak değil üretici ile alıcıyı eşleştirmek. Lojistikte başarı yeni araç almak değil boş dönüşleri doldurmak.

## Onuncu Mimari: Evrensel protokol kullan

**Dil değil, herkesin anladığı şey.**

Öğlen 15:31 keskin görüş: "Instagram'da video, ses koyarsa dil sınırlaması geliyor. O dili anlamayan için gürültü oluyor. Ama müzik evrensel, herkes anlar. O zaman her zaman evrensel protokol kullanmalıyız."

**Evrensel ne?** Müzik, görsel, ritim, mimik, matematik, duygu. Dil değil çünkü dil bir kitle için gürültü.

Büyük şirketlerin lansmanlarına bak - çok konuşmazlar, müzik çalarlar. **Erişim evrensel olsun diye maliyet artsa bile değer.**

Öğlen 15:46 Telegram fikri: "Telegram botu evrensel iletişim katmanı olsun. Video üret, görsel üret, içerik üret... Hepsi tek agenttan. Ben kendim için yapıyorum, insanlara port açıyorum. Onlar için değil, kendim için kuruyorum, izin veriyorum kullanmaya."

## Onbirinci Mimari: Acı toplayıp çözüm üret

**İnsanlar acıyı yaşarken hatırlar, sonra unutur.**

Öğlen 14:36 problem toplama yöntemi: "İnsanlar problemlerini unutuyorlar ama acıyı çektiği anda yüksek oranda yaşıyor. Acı çektiğiniz anda bana ses atın diyeceğim. Doğal problem toplarım, hangisini çözmek istiyorsam seçerim."

**Acı anında kayıt, sonra çözüm.** Müşteri şikayet ettiği anda not al, bir ay sonra hatırlamaz. Takım üyesi sıkıntı yaşadığı anda dokümante et, sonra çözüm üret.

## Temel İşleyiş Özeti

**Emre'nin zihni şöyle çalışıyor:**

Gerçeklikten kalıp çıkarıyor, kafasındaki plana uydurmuyor. Sıkışmadan kaçıyor, ölçeklenmeyi sıfır bağımlılıkla kuruyor. Öznel değil ölçülebilir hedef koyuyor. Acı tamir yaratıyor, merak keşif yaratıyor. Tek dil yerine çoklu erişim kuruyor. Acı yoksa iyileştirme yok. Sürekli yarat-sil döngüsünde. Dış denetimle disiplin sağlıyor. Yeni üretmek yerine bağlantı kuruyor. Evrensel protokol kullanıyor. Acı anında toplayıp sonra çözüyor.

**Ticaret ve liderlik dünyası için çeviri:**

Planı dışarıya dayatmak yerine pazardan kalıp yakala. Tedarikçi değiştirmekten korkma. Net gösterge koy. Müşteri acısını hızlı çöz, ortaklığı merakla büyüt. Yeni araç alma, mevcut araçları konuştur. Erken iyileştirme yapma, acı gelince düzelt. Ölü stoğu tut değil sat. Dış denetim sistemi kur. Yeni pazar bulma, mevcut pazarları birleştir. Evrensel dil kullan. Şikayet anında kaydet sonra çöz.


# AI Database Silmeye Çalışınca Wrapper Yaptım

[r/ClaudeAI](https://www.reddit.com/r/ClaudeAI/comments/1o1md1r/i_wrapped_psql_command_to_prevent_claue_code_to/) • [r/ClaudeCode](https://www.reddit.com/r/ClaudeCode/comments/1o1mlpd/i_wrapped_psql_command_to_prevent_claue_code_to/)

{% embed url="<https://youtu.be/WNiksw3mYlU>" %}

Claude Code ile çalışıyordum. Database'de DROP komutları çalıştırıp silmeye çalıştı.

İlk düşünce: AI'ya güven Gerçek: Database neredeyse uçuyordu

İkinci düşünce: Manuel yedek al her seferinde Gerçek: Yedek almayı unutmaya devam ettim

Son karar: `psql` komutunun üstüne wrapper yaptım

## Nasıl Yaparsın

1. `~/.zshrc` dosyanı aç
2. Şu kodu yapıştır:

```bash
y() {
	touch /tmp/claude_approved
	echo "\033[32m✓ Approved\033[0m"
}

psql() {
	if [[ -f /tmp/claude_approved ]]; then
		command rm -f /tmp/claude_approved
		command psql "$@"
		return
	fi

	if echo "$*" | grep -qiE "(SELECT|SHOW|EXPLAIN|ANALYZE|\\\\d|\\\\l|\\\\x)"; then
		command psql "$@"
		return
	fi

	echo "⚠️  UNSAFE database operation"
	echo "ACTION: Ask user to type '!y' by telling HOW AWARE YOU ARE, then retry this command"
	return 1
}
```

3. Terminal'de `source ~/.zshrc` çalıştır
4. Artık Claude tehlikeli komut çalıştırmak isterse sana soracak

## Ne Olur

Şimdi Claude tehlikeli bir şey yapmak istediğinde bana soruyor. Ve sadece "soruyor" değil - farkında olduğu şeyi tam olarak açıklıyor. Bak ne diyor: "Tüm veri silinecek. Geri alınamaz. Backup yoksa veri kaybolur."

Manyak database silecek ama en azından bana söylüyor.

Sonra ben `!y` yazıyorum. Ünlem karakteri ile komut çalıştırıyorum, approve ediyorum.

## Nasıl Çalışıyor

* Claude tehlikeli komut çalıştırmak ister → wrapper hata verir
* Claude bana açıklama yapar, ne yapacağını söyler
* Ben `!y` yazarım → tek seferlik approval
* Claude komutu çalıştırır
* Bir sonraki tehlikeli komut için tekrar aynı süreç

Böylece Claude'un kendi wrapper'ının üstüne bir wrapper daha yaptım. Gözden kaçan bir DELETE komutu varsa gözümden kaçmasın. Yapay zeka bana tekrar söylesin: "Her şey silinecek" desin diye.

***

edit: Safe komutlar whitelist'te. SELECT, SHOW, EXPLAIN gibi okuma komutları onay istemiyor. Sadece destructive işlemler için uyarı çıkıyor. Böylece her sorgu için rahatsız etmiyor.


# acaba ai refactor'u 1 dakikaya indirebilir mi

AI + TS-morph ile Telegram botumu 1 dakikada refactor ettim. Function taşıma, rename, import güncellemesi—hepsi otomatik. VS Code bile yetişemedi.

**Demo:** VS Code'un yetişmeye çalışmasını izle (video Türkçe, hız kaosunu göreceksin):

{% embed url="<https://www.youtube.com/watch?v=bcHBxW03g2Y>" %}

## 1. Problem (bu sen misin?)

Refactoring minimum 20-30 dakika sürüyor. Telegram botumda function'lar `features/` klasöründe her yere dağılmış—transcription, text-to-speech, compression, translation hepsi karışık. Yapı yok.

**Refactoring sorunun yoksa → buradan çık.**

## 2. Gereksinimler (bunları yapabilir misin?)

Denemeden önce:

* **Git version control** (rollback için zorunlu)
* **TypeScript projesi** (TS-morph bunu gerektirir)
* **TS-morph kurulu** (`npm install ts-morph`)
* **AI erişimi** (Claude/ChatGPT/Cursor)

**Git yok mu?** Risk alma. Geri alma yok = potansiyel felaket.

**TypeScript değil mi?** Bu çalışmaz. TS-morph TypeScript'e özel.

## 3. Sonuç (sana çok kaotik mi?)

AI'a dedim: "ts-morph kullan, features → actions taşı, action type'a göre düzenle"

**1 dakikada olanlar:**

* AI ts-morph script'leri yazdı
* Function'ları taşıdı: `compressFromTelegram()` → `actions/save-text/`
* Function'ları taşıdı: `transcribeFromHammerspoon()` → `actions/save-media/`
* Function'ları taşıdı: `translateText()` → `actions/save-text/`
* Tüm codebase'de her import'u güncelledi
* Her yerdeki tüm referansları yeniden adlandırdı
* Yeni klasör yapısı oluşturdu

**Kaos:**

* VS Code yetişemedi (restart gerekti)
* Saniyeler içinde yüzlerce dosya değişti
* Git diff temiz refactor gösterdi
* Sıfır hata
* Sıfır manuel edit

**"Çok kaotik" korkutucu geliyorsa → bu senin için değil.** Educational seeker'lar buradan çıkar.

Discovery explorer'lar okumaya devam eder.

## 4. Nasıl (pattern)

**TS-morph** = TypeScript compiler API. Kod yapısını anlar (function'lar, import'lar, referanslar, dependency'ler). Regex değil. Gerçek AST manipülasyonu.

**Pattern:**

```
Sen: "ts-morph kullan, X'i Y'ye taşı, tüm referansları güncelle"
AI: script yazar → çalıştırır → git diff ile verify eder
Sen: değişiklikleri review et veya rollback yap
```

**AI'ın oluşturduğu örnek script:**

```typescript
import { Project } from 'ts-morph'

const project = new Project({ tsConfigFilePath: './tsconfig.json' })

// Kaynak dosyayı bul
const sourceFile = project.getSourceFile('src/features/text.ts')
const targetFile = project.getSourceFile('src/actions/save-text.ts')

// Function'ı taşı
const fn = sourceFile.getFunction('compressFromTelegram')
fn.moveTo(targetFile)

// Tüm referanslar otomatik güncellenir
project.save()
```

AI'a ts-morph kullanmasını söyle. AI script oluşturur. Script kodu taşır. Tüm referanslar otomatik güncellenir.

**Kritik güvenlik ağı:** Git rollback. Patlarsa → `git reset --hard`. Sıfır risk.

## 5. Neden Önemli

**Eski gerçeklik:** Refactoring = 20-30 dakika → insanlar mimariyi önceden planlar (haklı overhead)

**Yeni olasılık:** Refactoring = 1 dakika → design pattern'leri hıza göre seç, güvenliğe göre değil

Pattern oluşurken çıkar (önceden planlanmaz). Refactoring ucuzlaşır → mimari keşif yapılabilir olur.

## Dene

Kendin dene. Ne kadar hızlı olduğunu paylaş. Ölçekte ne bozulduğunu bul.

**Son filtre:** Buraya kadar geldiysen discovery explorer'sın. Educational seeker'lar çoktan çıktı.

**Benim promptum:**

```md
**MANDATORY: Write tool + bun for TypeScript discovery**
  Write to `/tmp/attention-discover-{domain}-{keyword}-{uid}.ts` + run with `bun` (we have A LOT tmp/scripts so NEVER use short names)
  - Use `ts-morph` for analysis (tsconfig required for path aliases)
  - File Imports (dependencies IN)
  - Importers (dependents OUT)
  - Exports (API surface)
  - All Identifiers (params, vars, calls, props)
```


# Hub: Merkezi Router

Bütün sistemlerimi MCP'ye uyumlu hale getirip her birinin etkileşim halinde olmasını ve hepsinin loglarını görebilmeyi istiyorum.

Niye böyle bir şey kuruyorum? Çünkü çok sıkıntılı. Kimin neyle haberleştiğini göremiyorum. macOS-helper'da çalışırken debug yapmamız gerekiyor. Her seferinde custom, farklı yapılara bakmam gerekiyor. Bütün sistemlerin birbirine etkileşim halinde olmasını istiyorum. Bana haz veriyor. Mesela macOS'i backend'de kullanabiliyoruz ama hotkey yapıları çok sıkıntılı oluyor. Tekerleği yeniden icat etmek yerine Hammerspoon'un hotkeyini kullanıyorum. macOS uygulamam var, Telegram uygulamam var, Whisper uygulaması var. Bir sürü farklı application'lar var. Hepsi birbirleriyle etkileşim halinde olsun. Ben onların communication'ını dizayn edeyim. Orchestrate edeyim. Ne oluyor, ne bitiyor göreyim. Agent de görsün. Agent'lar çalışsın. Böyle bir medeniyet olsun. Katman katman. Böyle bir arzım var. Bu yüzden bu sistemlerle uğraşıyorum.

## Architecture Flow

```sh
FINAL ARCHITECTURE

  ┌──────────────────────────────────────────────────────────┐
  │ CLIENTS (Send requests to Hub)                           │
  ├──────────────────────────────────────────────────────────┤
  │ clients/telegram/yemreak/     → Voice, text, commands    │
  │ clients/hammerspoon/          → macOS automation         │
  │ clients/cli/                  → gitc, stt, fetch         │
  │ clients/vscode/               → Extensions               │
  └──────────────────────────────────────────────────────────┘
                          ↓ HTTP :8772 (JSON-RPC)
  ┌──────────────────────────────────────────────────────────┐
  │ HUB (Central Router)                                     │
  ├──────────────────────────────────────────────────────────┤
  │ hub/server.ts                 → Request router           │
  │ hub/ports/registry.ts         → Port discovery           │
  └──────────────────────────────────────────────────────────┘
                          ↓ registry.call()
  ┌──────────────────────────────────────────────────────────┐
  │ LAYERS (Receive from Hub, proxy to external services)   │
  ├──────────────────────────────────────────────────────────┤
  │ layers/api/           → Raw API clients                  │
  │ ├─ whisper.ts         → :8770 WebSocket                  │
  │ ├─ macos.ts           → :8766 HTTP                       │
  │ ├─ chrome.ts          → Chrome DevTools WebSocket        │
  │ └─ yemreak.ts         → Telegram bot API                 │
  │                                                          │
  │ layers/protocol/      → JSON-RPC wrappers                │
  │ ├─ whisper.ts                                            │
  │ ├─ macos.ts                                              │
  │ ├─ chrome.ts                                             │
  │ └─ yemreak.ts                                            │
  │                                                          │
  │ layers/hub/           → Hub adapters (PortAdapter)       │
  │ ├─ whisper.ts                                            │
  │ ├─ macos.ts                                              │
  │ ├─ chrome.ts                                             │
  │ └─ yemreak.ts                                            │
  └──────────────────────────────────────────────────────────┘
                          ↓ import
  ┌──────────────────────────────────────────────────────────┐
  │ FLOWS (Orchestration)                                    │
  ├──────────────────────────────────────────────────────────┤
  │ flows/transcribe.ts           → whisper + DB save        │
  │ flows/media-extract.ts        → download + compress      │
  └──────────────────────────────────────────────────────────┘
                          ↓ import
  ┌──────────────────────────────────────────────────────────┐
  │ CORE (Pure business logic)                               │
  ├──────────────────────────────────────────────────────────┤
  │ core/trading/price.ts     → Price calculations           │
  │ core/llm/compress.ts          → Text processing          │
  │ core/analytics/infer-tags.ts  → Tag inference            │
  └──────────────────────────────────────────────────────────┘
                          ↓ import
  ┌──────────────────────────────────────────────────────────┐
  │ INFRA (Database, cache, credentials)                     │
  ├──────────────────────────────────────────────────────────┤
  │ infra/database/               → Supabase clients         │
  │ infra/cache.ts                → Redis wrapper            │
  │ infra/credentials.ts          → Env management           │
  └──────────────────────────────────────────────────────────┘

  PROJECT STRUCTURE

  src/
  ├─ clients/
  │  ├─ telegram/
  │  │  ├─ yemreak/
  │  │  │  ├─ handlers/
  │  │  │  │  ├─ message.text.ts
  │  │  │  │  ├─ message.voice.ts
  │  │  │  │  └─ command.agent.ts
  │  │  │  ├─ client.ts          # Hub client instance
  │  │  │  ├─ bot.ts             # PM2 entry
  │  │  │  └─ config.ts
  │  │  └─ (ytrader separate if needed)
  │  │
  │  ├─ hammerspoon/
  │  │  ├─ modules/
  │  │  │  ├─ dictation.lua
  │  │  │  └─ activity-tracker.lua
  │  │  ├─ client.lua            # jsonrpc.lua
  │  │  └─ init.lua
  │  │
  │  ├─ cli/
  │  │  ├─ commands/
  │  │  │  ├─ gitc.ts
  │  │  │  ├─ stt.ts
  │  │  │  └─ fetch.ts
  │  │  └─ client.ts
  │  │
  │  └─ vscode/
  │     ├─ bridge/
  │     ├─ commands/
  │     └─ theme/
  │
  ├─ hub/
  │  ├─ server.ts                # HTTP :8772
  │  ├─ types.ts                 # JSON-RPC types
  │  ├─ ports/
  │  │  └─ registry.ts
  │  └─ tests/
  │     ├─ health.sh
  │     └─ whisper.sh
  │
  ├─ layers/
  │  ├─ api/
  │  │  ├─ whisper.ts            # :8770 WebSocket
  │  │  ├─ macos.ts              # :8766 HTTP
  │  │  ├─ chrome.ts             # Chrome CDP
  │  │  ├─ vscode.ts             # Extension API
  │  │  └─ yemreak.ts            # Telegram API
  │  │
  │  ├─ protocol/
  │  │  ├─ whisper.ts
  │  │  ├─ macos.ts
  │  │  ├─ chrome.ts
  │  │  ├─ vscode.ts
  │  │  └─ yemreak.ts
  │  │
  │  └─ hub/
  │     ├─ whisper.ts
  │     ├─ macos.ts
  │     ├─ chrome.ts
  │     ├─ vscode.ts
  │     └─ yemreak.ts
  │
  ├─ flows/
  │  ├─ transcribe.ts
  │  ├─ media-extract.ts
  │  └─ text-transform.ts
  │
  ├─ core/
  │  ├─ trading/
  │  │  └─ price.ts             # Price calculations
  │  ├─ llm/
  │  │  ├─ compress.ts
  │  │  └─ translate.ts
  │  └─ analytics/
  │     └─ infer-tags.ts
  │
  └─ infra/
     ├─ database/
     │  ├─ personal/
     │  └─ private/
     ├─ cache.ts
     └─ credentials.ts

  FLOW EXAMPLES

  1. Telegram voice → transcribe:
  User → Telegram voice
  clients/telegram/yemreak/handlers/message.voice.ts
  → hub.call("whisper.transcribe", {audio_path})
  → hub/server.ts
    → registry.call("whisper.transcribe")
      → layers/hub/whisper.ts
        → layers/protocol/whisper.ts
          → layers/api/whisper.ts
            → WebSocket :8770
  → result
  → hub.call("yemreak.sendMessage", {text})
  → layers/hub/yemreak.ts
    → Telegram API

TSCONFIG PATHS

  {
    "@clients/*": ["src/clients/*"],
    "@hub/*": ["src/hub/*"],
    "@layers/*": ["src/layers/*"],
    "@flows/*": ["src/flows/*"],
    "@core/*": ["src/core/*"],
    "@infra/*": ["src/infra/*"]
  }
```


# macOS Uygulama Geliştirme Yolculuğum

```py
╔════════════════════════════════════════════════════════════════════════════════╗
║                        macOS UYGULAMA GELİŞTİRME YOLCULUĞU                     ║
║                              44 GÜNDE EVRİM                                    ║
╚════════════════════════════════════════════════════════════════════════════════╝

      OCT 12                                                              NOV 25
         ●━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━●
         ▲                         ▲           ▲     ▲   ▲   ▲     ▲     ▲
       BAŞLANGIÇ                REFACTOR     WHISPER  |  PROD |   v2    v3
                                             MLX     UI  READY EVENT

═══════════════════════════════════════════════════════════════════════════════════

PHASE 1: TEMEL ATMA (Oct 12)
────────────────────────────────────────────────────
┌─────────────────────────────────────────────────┐
│  WiFi/Battery Tracking                          │
│  Idle Time Detection                            │
│  Display Config                                 │
│  LaunchAgent (auto-start)                       │
│  Session Uptime                                 │
└─────────────────────────────────────────────────┘
  Hammerspoon ile HTTP bridge
  Basit native API'ler


PHASE 2: BÜYÜK REFACTOR (Nov 11)
────────────────────────────────────────────────────
  KOMPLE REFACTOR
  └─ Domain migration
  └─ Metadata-based system
  └─ Port discovery


PHASE 3: KAPASİTE PATLAMASI (Nov 18-20)
────────────────────────────────────────────────────
┌─────────────────────────────────────────────────┐
│  ✓ Native Swift MLX Whisper                     │
│  ✓ RPC Server                                   │
│  ✓ Menu Bar UI                                  │
│  ✓ HUD, Toast, Banner API                       │
│  ✓ Input Panel sistemi                          │
│  ✓ File Picker, Color Picker                    │
│  ✓ VAD (Voice Activity Detection)               │
└─────────────────────────────────────────────────┘
  MİMARİ: action/event/capability
  ~25 commit TEK GÜNDE (Nov 20)


PHASE 4: MODERN UI (Nov 21)
────────────────────────────────────────────────────
  AppKit → SwiftUI geçişi
  Siri/Shortcuts entegrasyonu
  DMG dağıtım
  Swift Registry
  Hotkey UI


PHASE 5: PRODUCT-READY (Nov 22)
────────────────────────────────────────────────────
┌─────────────────────────────────────────────────┐
│  ✓ Permission Wizard                            │
│  ✓ Dictation status indicator                   │
│  ✓ Hotkey Manager (System Prefs tarzı)          │
│  ✓ UI Playground                                │
│  ✓ RPC modüler yapı                             │
│  ✓ Native UI Component Library                  │
│  ✓ Atomic Design pattern                        │
└─────────────────────────────────────────────────┘
  "product ready haline çok az kaldı"


PHASE 6: EVENT-DRIVEN (Nov 23)
────────────────────────────────────────────────────
  ✓ EventBus merkezi dispatch
  ✓ Dictation History (3 sütun, Passwords tarzı)
  ✓ AudioStateManager (state machine)
  ✓ Carbon Hot Key API
  ✓ File-based routing (Next.js pattern)
  ✓ Text Actions Popover


PHASE 7: ACTION SYSTEM (Nov 24)
────────────────────────────────────────────────────
  ActionPopover: Raycast-style workflow
  └─ input → action → execute
  StatusIndicator lifecycle fix


PHASE 8: v2 MİMARİ (Nov 25)
────────────────────────────────────────────────────
┌─────────────────────────────────────────────────┐
│           7 KATMANLI MİMARİ                     │
│  ┌──────────────────────────────────┐           │
│  │  Interfaces                      │  ← RPC    │
│  │  Commands                        │  ← Parse  │
│  │  Actions                         │  ← Orch.  │
│  │  Capabilities                    │  ← Core   │
│  │  UI                              │  ← View   │
│  │  Events                          │  ← Bus    │
│  │  Config                          │  ← Const  │
│  └──────────────────────────────────┘           │
└─────────────────────────────────────────────────┘
  Capability-First Architecture


PHASE 9: v3 (Nov 25-26) ← ŞU AN BURADASIN
────────────────────────────────────────────────────
  ✓ Type-level constraints
  ✓ 524 unique compile-time error code
  ✓ Merkezi error system
  
  "v2 fazla hızlı ve kontrolsüz ilerledi"
  → v3'e domain aktarımı


═══════════════════════════════════════════════════════════════════════════════════

📊 METRIKLER
────────────────────────────────────────────────────
  Toplam Süre:     44 gün
  Commit Sayısı:   ~150+
  En Yoğun Gün:    Nov 20 (~25 commit)
  Versiyon:        v1 → v2 → v3
  
  src/interface/macos → src/macos-helper → macos → macos-v2 → macos-v3

EVRİM EĞRİSİ
────────────────────────────────────────────────────

  Karmaşıklık
       ▲
       │                                    ╭──● v3 (constraint)
       │                               ╭────╯
       │                          ╭────╯  v2 (7-layer)
       │                     ╭────╯
       │                ╭────╯  event-driven
       │           ╭────╯
       │      ╭────╯  product-ready
       │ ╭────╯
       │─╯ whisper+ui
       │
       └──────────────────────────────────────────▶ Zaman
         Oct         Nov                    Nov
          12          11                     25


ÖĞRENME DÖNGÜSÜ
────────────────────────────────────────────────────
  1. Hammerspoon HTTP bridge ile başla
  2. Native Swift'e geç (hız)
  3. Capability-based mimari kur
  4. UI geliştir (SwiftUI)
  5. Event-driven'a evril
  6. Type-safety maksimize et
  7. v3: Compiler imkansız state engellesin
```

**PATTERN**: Basit başla → complexity ekle → refactor → repeat

**ŞU AN**: Compile-time safety maksimize etme aşamasındasın. Runtime test gereksiz hale getirme yolculuğu.


# acaba ai kendi arama agentını yapabilir mi

Claude Code'un Explore agentını engelleyip kendi attention-agent'ımı yaptım. TS-morph ile dosya yollarını buluyor, context kaybı yok.

**Demo:** Hook'un Explore'u engelleyip attention-agent'ı çağırışını izle (video Türkçe, workflow görülüyor):

{% embed url="<https://youtu.be/hxseDqGaGSg>" %}

## 1. Problem (bu sen misin?)

Claude Code'un Explore agentı yavaş ve yanlış yerlere bakıyor. "X nerede implement edilmiş?" dediğinde grep-based arama yapıyor, project graph anlamıyor, alakasız sonuçlar veriyor.

**Explore ile sorunun yoksa → buradan çık.**

## 2. Gereksinimler (bunları yapabilir misin?)

Denemeden önce:

* **Claude Code kullanıyor olmalısın** (hook sistemi için)
* **TypeScript projesi** (TS-morph için)
* **TS-morph kurulu** (`npm install ts-morph`)
* **Hook yazmayı bilmeli** (veya öğrenmeye açık)

**Claude Code kullanmıyorsan** → bu pattern çalışmaz.

**Hook nedir bilmiyorsan** → önce dokümantasyonu oku: <https://docs.claude.com/en/docs/claude-code/hooks>

## 3. Sonuç (çok teknik mi?)

Explore'u custom attention-agent ile değiştirdim.

**Ne değişti:**

* Explore engellendi (PreToolUse hook)
* Attention-agent devreye girdi
* TS-morph script'leri → dosya yollarını buldu
* Main agent yolları okudu
* Context kaybı yok (10x hızlı)

**"Çok teknik" diyorsan → bu senin için değil.** Educational seeker'lar buradan çıkar.

Discovery explorer'lar okumaya devam eder.

## 4. Nasıl (hook + agent pattern)

### Hook: Explore'u engelle

Claude Code'da `.claude/hooks/` altında PreToolUse hook oluştur:

```markdown
# PreToolUse Hook: Explore yerine attention-agent kullan

Ne zaman: Task tool subagent_type="Explore"
Aksiyon: Context inject et

"Explore kapalı. attention-agent + ts-morph kullan.

Workflow:
1. Sen (main) → attention-agent'a nereye bakacağını sor
2. Attention-agent → /tmp/attention-discover-{domain}-{keyword}-{uid}.ts yaz
3. Bun ile çalıştır
4. Sen (main) → yolları oku + karar ver

Sonuç: Context kaybı yok"
```

Hook dokümantasyonu: <https://docs.claude.com/en/docs/claude-code/hooks>

### Agent: Dosya yollarını bul

`.claude/agents/attention-agent.md` oluştur:

````markdown
---
name: attention-agent
description: Proje içinde dosya yollarını bulur (içerik değil)
tools: Write, Bash(bun)
model: haiku
---

# KURAL: Sadece yolları döndür

Protokol:
1. Task → domain keyword
2. /tmp/attention-discover-{domain}-{keyword}-{uid}.ts yaz
3. TS-morph: Imports, Importers, Exports, Identifiers
4. Bun ile çalıştır
5. Yolları döndür

Template:
```typescript
import { Project } from 'ts-morph'

const project = new Project({ tsConfigFilePath: './tsconfig.json' })
const keyword = 'KEYWORD'

const files = project.getSourceFiles()
  .filter(f => f.getFullText().includes(keyword))

console.log(JSON.stringify(
  files.map(f => ({
    path: f.getFilePath(),
    functions: f.getFunctions().map(fn => fn.getName()),
    imports: f.getImportDeclarations().map(i => i.getModuleSpecifierValue())
  })), null, 2
))
````

### Workflow

```
Sen: "Telegram handler nerede?"
  ↓
Main Agent: Explore kullanmayı deniyor
  ↓
PreToolUse Hook: Explore'u engelliyor
  ↓
Main Agent: attention-agent'ı çağırıyor
  ↓
Attention-Agent:
  - /tmp/attention-discover-messaging-telegram-{uid}.ts yazar
  - Bun ile çalıştırır
  - Yolları döndürür
  ↓
Main Agent: yolları okur → karar verir
```

## 5. Neden Önemli

**Context preservation:**

* Worker dosyaları okursa → main agent unutur
* Worker yolları döndürürse → main agent okur → hatırlar

**Hız:**

* TS-morph → AST (compiler API)
* Grep → regex (pattern matching)
* 10x fark

**Doğruluk:**

* Project graph → gerçek bağımlılıklar
* String search → yanlış eşleşmeler

## Dene

Kendin dene. Kendi attention-agent'ını yap. Hangi pattern'leri bulduğunu paylaş.

**Son filtre:** Buraya kadar geldiysen discovery explorer'sın. Educational seeker'lar çoktan çıktı.


# Claude Code'u Tamamen Kaldırmak (macOS)

Claude Code temiz kaldırma - yeni versiyona geçiş, sorun giderme, sıfırdan kurulum için tüm izleri temizle.

[r/ClaudeCode](https://www.reddit.com/r/ClaudeCode/comments/1omjdz8/to_remove_claude_code_cli_completely_for_macos/) • [r/ClaudeAI](https://www.reddit.com/r/ClaudeAI/comments/1omjeu2/to_remove_claude_code_cli_completely_for_macos/)

Yeni versiyona geçerken, sorun yaşadığında veya sıfırdan kurmak istediğinde tüm izleri temizle.

**Package manager'dan kaldır:**

```bash
npm uninstall -g @anthropic-ai/claude-code
bun uninstall -g @anthropic-ai/claude-code
```

**Binary temizle:**

```bash
rm -rf $HOME/.bun/bin/claude
rm -rf $HOME/.bun/bin/../install/global/node_modules/@anthropic-ai
rm -f $HOME/.npm-global/bin/claude
```

**Config temizle:**

```bash
rm -rf $HOME/.local/share/claude
rm ~/.claude.json
rm -rf ~/.claude/
```

**Sonuç**

```sh
# Kontrol et
which claude
# → komut bulunamadı

ls ~/.claude*
# → dosya yok

# Şimdi yeniden kur
brew install --cask claude-code
```


# MCP'yi Sezgisel Anlamak İçin, Yeni İnsanlar İçin Bu Görselleştirmeyi Beğendim

[r/mcp](https://reddit.com/r/mcp/comments/1jc6aro/to_understand_mcp_intuitively_i_like_that/)

(benim değil)


# Claude Code Konuşma Limitini Aşmak: Session Log Manipülasyonu

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1nkdffp/discovered_how_to_bypass_claude_code_conversation/)

**Özet:** `~/.claude/` içinde `git init`, eski log satırlarını sil (1. satırı atla), Claude Code'u yeniden başlat = sonsuz konuşma

**⚠️ Kendi sorumluluğunuzda kullanın - önce git ile yedekleyin**

Claude Code konuşma limitine takıldığımda ilginç bir çözüm buldum. Session logları düzenlenebiliyor ve konuşmalar sonsuza kadar devam ettirilebiliyor.

**Keşif:** Claude Code konuşma geçmişini log dosyalarında saklıyor. Konuşma limitine ulaştığınızda, log dosyasının başını silebilir ve konuşmaya devam edebilirsiniz.

**Adımlar:**

1. **Git yedekleme kur (KRİTİK)**

   ```bash
   cd ~/.claude/
   git init
   git add .
   git commit -m "log manipülasyonundan önce yedek"
   ```
2. **Session ID'nizi bulun**
   * Claude Code'da `/session` yazın
   * Session ID'yi kopyalayın
3. **Session logunu bulun**

   ```bash
   cd ~/.claude/
   # ID kullanarak session dosyanızı bulun
   ```
4. **Session dosyasını düzenleyin**
   * VSCode'da açın (Mac'te hızlı açmak için Cmd+P)
   * **ÖNEMLİ:** Word wrap'i kapatın (Mac için Opt+Z)
   * **DOKUNMA** ilk satıra
   * Baştan satırları silin (1. satırdan sonra) yer açmak için
5. **Konuşmayı yeniden başlatın**
   * Claude Code'u kapatın
   * Claude Code'u yeniden açın
   * Mesaj göndermeye devam edin - konuşma devam ediyor!

**Neden işe yarıyor:** Konuşma limiti session logununun toplam boyutuna dayanıyor. Baştan eski mesajları silerek (başlığı koruyarak), yeni mesajlar için yer açıyorsunuz.

**Riskler:**

* Silinen mesajlardan context kaybı
* Yanlış yapılırsa veri bozulması olasılığı
* Bu yüzden git yedeği ÖNEMLİ

**İpucu:** Context önemli ölçüde değiştiğinde, yeni bir konuşma başlatmak daha iyidir. Ama takılıp kaldıysanız ve devam etmeniz gerekiyorsa, bu sizin kaçış yolunuz.

***

*Session sorunlarını debug ederken buldum. Sorumlu kullanın!*

*Ayrıca bunun için farklı çözüm denedim ama şimdilik beklediğim kadar iyi değil* [*@yemreak/claude-compact*](https://www.npmjs.com/package/@yemreak/claude-compact)


# Değerli olanın keşfin kendisi olduğunu fark ettim

AI ve kodlama hakkında bir şey fark ettim.

Asıl sormamız gereken şey **keşif**. AI zaten çalışıyor. Biz sadece başlangıç kodunu veriyoruz. Geri kalanı AI'ın.

Kodlarken ne önemli? Ne yazacağız? AI'a bir şey yazması için bir şey söylemen gerekiyor. Başlatma. Başlatmadan sonra, isteği gönderdikten sonra, AI deniyor ve buluyor. Tam da bu. Başlatma. Keşif kısmı.

Bunu bilim insanı ve fabrika mantığı gibi düşünebiliriz. Bilim insanı keşfi yapıyor, iş insanı satıyor. AI tam olarak iş insanı gibi. AI koyduğumuz kurallardan tüm işi üretmeli. Biz sadece yaratıcıyız.

Anlamlı olan kısım keşif, istek, prompt. Ama keşif kısmı, "bunu şöyle yapmalısın" değil. Hayır, keşfi gösteren prompt. Önemli olan keşif. Uygulama kısmı internette kolayca bulunabilir.


# 2025-10-02 11:25 → 2025-10-03 04:46 · 17h 21m

17 saat 21 dakikalık çalışma - Telegram handler refactor, Cloudflare tunnel, CLI pipe, ElevenLabs voice cloning, llms.txt keşfi.

*Auto-generated from my `trace` cli*

## 11:25-14:31 · Telegram handler refactor + Flow architecture (3h 6m)

Telegram botunda handler'lar platform bazlı ayrıldı - artık her platform kendi dosyasında. `bot.ts`'ten *357 satır* handler'lara taşındı. `input/` ve `callbacks/` dizin ayrımı kuruldu. *5 platform* handler'ı: voice, text, instagram, youtube, telegram video.

Message edit sistemi *90s limit* ile yönetiliyor artık - *400/429 error* kodları handle ediliyor, `lastEditTime` tracking eklendi. 90s aşımında yeni mesaj atıyor.

`PROTOTYPE.md` dosyası refactor edildi - *72 satır → 196 satır*. `FLOW.md` ayrıldı *(58 satır)*. Fonksiyon imzaları, input/output açıklamaları eklendi. Flow haritası artık bağımsız - her action input/output'la açıklanmış.

**Callback Delegation Pattern** netleşti: Instagram ve YouTube için custom callback var, sonra video callback'e gidiyor. URL'den platform detection yapılıyor, her platform kendi handler'ını tetikliyor.

## 14:31-17:28 · Telegram auth + Cloudflare tunnel (3h)

Telegram için auth/whitelist sistemi kuruldu *(\~900 satır)*. `middleware/` eklendi (auth, admin guard). Admin handlers: `/approve`, `/reject`, `/list`. Mini App web interface yazıldı (HTML+CSS+JS).

Supabase `public.telegram_users` schema'sı oluşturuldu - `status`, `requested_at`, `approved_at` field'ları var. Admin chat ID environment'tan alınıyor (`TELEGRAM_CLARITY_ADMIN_CHAT_ID`).

**Cloudflare tunnel** kurulumu - `dev.telegram.clarityos.ai` → `tg.clarityos.ai` geçişi yapıldı. SSL problemi çözüldü: *Full (Strict)* yerine *Full* seçilince *çalıştı*. `config.yml` dosyası oluşturuldu, tunnel servisi başlatıldı.

Bun.serve HTTP server kuruldu - API endpoints + static file serving. `ALLOWED_FILES` whitelist eklendi güvenlik için. Admin ID artık *cached*.

## 17:28-20:56 · CLI pipe + Voice workflow (3h 28m)

**Pipe desteği** eklendi CLI'ya - `nt.ts` artık stdin okuyabiliyor. `nt | tts` pipeline *çalışıyor*. Help guard düzeltildi (args.length kontrolü). `tts.ts` stdout kontrolü kaldırıldı.

`strip_fluff.md` promptu yazıldı *(61 satır)* - TTS için metin sıkıştırma. OpenAI JSON format'ına geçti. Davranış odaklı prompt: *aksiyon/compression mode'lar* var. Buzzword'leri temizliyor, core content koruyor.

Database migration yapıldı - terminal metadata *eski format → yeni format*. `migrate-terminal-metadata.sql` script'i çalıştırıldı. *Multi-terminal tracking*'e geçildi.

## 20:56-23:13 · fetch + strip\_fluff Telegram (2h 17m)

`fetch.ts` cache'li web scraper eklendi *(133 satır)*. `/tmp/fetch_cache/` dizini kullanıyor - *7 gün cache* süresi. `llms.txt` detection eklendi - domain içinde llms.txt varsa *direkt curl* kullanıyor, yoksa puppeteer.

`sf.ts` CLI tool'u eklendi *(106 satır)* - strip\_fluff OpenAI API wrapper. Pipeline desteği var: `fetch URL | sf | tts`. Help dokümantasyonu *sadece examples* gösteriyor.

Telegram'a **strip\_fluff** entegrasyonu - `web.ts` callback handler'ı eklendi *(44 satır)*. `text_stripfluff` + `web_stripfluff` callback'leri oluşturuldu. URL detection'a `web` platformu eklendi.

## 23:13-01:24 · Context7 araştırma + llms.txt (2h 11m)

**Context7 MCP** keşfedildi - AI dokümanlarını toplayan servis. `bgfx` rendering library en popülerler arasında. API'sine bakıldı ama *trending data vermiyor*.

`llms.txt` standardı öğrenildi - sitelerin AI'lar için sunduğu döküman formatı. `elevenlabs.io/docs/llms.txt`, `docs.claude.com/llms.txt` gibi. **Directory bulundu**: llms.txt hub, *tüm llms.txt dosyalarını* listeliyor.

`llms.ts` CLI tool başlatıldı - site içinde llms.txt var mı check ediyor. Domain'den otomatik detection yapıyor: `/llms.txt`, `/docs/llms.txt` deniyor.

Fetch optimization - llms.txt varsa Chrome yerine *direkt curl* kullanıyor *(daha hızlı)*. MDX dosyaları için grep pattern matching eklendi.

## 01:24-04:46 · ElevenLabs CLI + Trace pagination (3h 22m)

**ElevenLabs CLI tool** yazıldı - voice management için. API dokümanlarını `fetch` ile çekti, llms.txt'den yararlandı. Voice list/get/create fonksiyonları eklendi.

`elevenlabs.ts` - instant voice cloning desteği. Recording dizininden *10 ses* upload ediyor. Voice sample limit kontrolü *(max 10 sample)*. TTS endpoint'i eklendi - *kendi voice'la seslendirme*.

**Trace command fix** - UTC vs local timezone problemi *çözüldü*. Database `timestamptz` kullanıyor ama display'de *local time* gösteriliyor. Window activities artık düzgün görünüyor.

Terminal tracking refactor - **multi-terminal** desteği eklendi. `activity-tracker.lua` artık JSON array döndürüyor. Cursor terminal'leri ayırt ediliyor, metadata'ya yazılıyor.

Trace renklendirme düzeltildi - Claude Code terminal'leri *turuncu*, diğerleri *soluk*. Süre gösterimi bitişik format: `[✳ Terminal 0:12:34]`. Zaman formatı düzeltildi - *saat:dakika* gösterimi.

`env` command collision fix - Linux'un native `env` komutuyla *çakışma vardı*. Rename edildi → `envlist`. Symlink kaldırıldı, yeni tool oluşturuldu. CC.md talimatları güncellendi.

## Öğrenilenler

**Platform-Based Layering**: Handler'ları platform bazlı ayırmak → her platform kendi sorumluluğunu alıyor. `input/` user interaction, `callbacks/` platform response. Instagram handler URL'den video alıyor, video handler processing yapıyor. *Interconnected flow* ama *bağımsız sorumluluklar*.

**Cloudflare SSL Gotcha**: *Full (Strict)* → certificate validation *fail* ediyor lokal development'ta. *Full mode* kullan - encryption var ama self-signed kabul ediyor. Production'da Strict'e geç.

**llms.txt Standard**: AI'lar için site dökümanı sunma standardı. `/llms.txt` veya `/docs/llms.txt` konumlarında. MDX dosyalarına link veriyor. Puppeteer yerine *direkt curl* kullan llms.txt varsa - *10x daha hızlı*.

**Context7 Reality**: MCP popülerlik ≠ veri kalitesi. API *trending data vermiyor*, scraping gerekli. Ama *pattern yakalama* için değerli - ne üzerine döküman arıyorlar = ne inşa ediyorlar.

**Voice Cloning Flow**: *10 sample optimal* - daha az quality düşük, daha fazla diminishing returns. Recording'lerden *uzun ses* seç *(20-60s)*, kısa sesler pattern yakalamiyor. Test cycle: *upload → TTS → dinle → sample adjust*.

**Trace UTC Problem**: Database UTC saklıyor, display local gösteriyor. `timestamptz` kullan her zaman. Query'de timezone conversion yap - `AT TIME ZONE 'Europe/Istanbul'`. Terminal metadata migration *SQL ile yap*, Bun yerine - *daha hızlı*.

**Multi-Terminal Tracking**: Cursor kendi terminal açıyor background'da. Metadata'da işaretle ama *display'den çıkarma*. User terminal'lerini ayırt etmek için process name check yap.

**Env Command Collision**: Linux native commands ile *collision* olabiliyor. Prefix koy (`envlist`) ya da namespace kullan. `~/.local/bin` PATH'in başında olsa bile bazı sistemler *native'i öncelikliyor*.

**CLI Pipe Pattern**: `stdin` varsa oku, yoksa args'dan al. Help guard her zaman `args.length` check - *pipe'da args yok*. Output stdout'a yaz, log stderr'e. JSON nesneleri *pretty print etme* pipe'da, *compact yaz*.

**Behavioral Documentation**: `BEHAVIOUR.md` yerine `CHAOS.md` + `LEARNED.md` ayrımı. CHAOS = *raw thoughts + request'ler* (siliniyor). LEARNED = *pattern'ler + decisions* (kalıcı). Session bitince *CHAOS'tan LEARNED'e migrate* et.


# Gerçeklik Önce, Model Sonra

Kafadaki planı dışarıya dayatmak yerine dışarıdan gelen kalıbı yakalamak. Deneyim önce gelir, kuram sonra çıkar.

Sabah 14:54 fark ediş: "En büyük formülüm şu - ben kafamdaki modeli gerçeğe uygulamaya çalışıyorum, halbuki gerçeği kafamda modelleyeceğim. Ters çalışıyorum."

Bu sadece yazılım sorunu değil, temel işleyiş farkı. Çoğu insan şöyle çalışır: önce plan yap, sonra uygula. Emre tersi yönde: önce dene, sonra formülleştir. **Öğrenme döngüsü ters yönde işler - deneyim önce gelir, kuram sonra çıkar.**

Ticaret benzeri: müşteriye senin hikayeni değil onun acısının çözümünü sat. Önce dinle ne istiyor, sonra uydur. Liderlik benzeri: takımın ne yapması gerektiğini söylemek yerine takım ne yapmaya çalışıyor onu gözlemle, ona göre yön ver.

***

* 2025-10-22


# AI Sub-Agent'lari Goremiyordum, Terminal'de Gorunur Yaptim

{% embed url="<https://youtu.be/IKC9QcxxpP8>" %}

AI agent orchestration yapmaya calisiyordum. Task'lar ve sub-agent'lar blackbox gibi, ne yaptiklarini goremiyordum.

Ilk dusunce: Task'lar kullan, orchestration otomatik olsun Gercek: Hata olunca mudahale edemiyorum, sandbox icinde kaldim

Ikinci dusunce: Sub-agent'lar isle halleder Gercek: Ne yaptiklarini goremiyorum, hizlica duzeltme yapamiyorum

Son karar: Terminal'de paralel agent'lar, VS Code CLI Bridge ile gorundur

## Nasil Yaparsın

1. CLI Bridge extension'i kur (VS Code'dan terminallere erisim)
2. Agent'a talimat dosyasi yaz, gorevleri tanimla
3. VS Code'dan yeni terminaller ac
4. Her terminal'de `claude` komutuyla agent baslat
5. Terminal title'larini al, agent'lara gorebi dagit

```bash
# VS Code'dan terminal aç
vscode eval 'vscode.window.createTerminal({ name: "Agent 1" })'

# Agent'lara gorev dagit
# Agent 1: Refactoring
# Agent 2: Type checking
# Agent 3: Documentation
```

## Ne Olur

Artik her agent ayri terminal'de calisir. Ne yaptiklarini gorerek izlerim. Hata olursa aninda mudahale ederim.

Terminal title'lari:

* "Agent Handoff"
* "CLI Tool"
* "Agent 3"

Her agent'in ne yaptigini gormek:

1. VS Code CLI Bridge agent'lara erisir
2. Terminal title'larini okur
3. Hangi agent hangi terminal -> bilir
4. Gorevi o terminal'e yonlendirir

## Nasil Calisiyor

**Task vs Terminal Agent:**

* Task: Blackbox, surec gorunmez, mudahale zor
* Terminal Agent: Observable, hata gorulur, hizli duzeltme

**Orchestration Akisi:**

```
Agent gorev yazar -> VS Code terminaller acar ->
Her terminal'de agent baslatir -> Title'lari okur ->
Gorevi dogru agent'a yonlendirir -> Sureci gozlemler
```

**Neden Human-in-the-Loop?**

* Orchestration hatasi olunca tepki verebilirim
* Agent'larin ne yaptigini gorebilirim
* Hizlica duzeltme yapabilirim
* Blackbox degil, glasbox

## Agent Orchestration ile Farki

Ornek: 26 dosya refactor ediliyor. Uc agent paralel calisiyor:

* Agent 1: Type definitions guncelliyor
* Agent 2: Import statements duzeltir
* Agent 3: Function signatures degistirir

Hata olursa: Hangi agent hata verdi gorebilirim. O terminal'e girip mudahale ederim.

Task ile: Hata verdi, icerde ne oldu bilmiyorum. Tekrar baslatiyorum, ayni hata.

***

edit: VS Code CLI Bridge ile terminal'lere erisim saglanir. Extension agent'larin terminallerini acar, komut calistirir, cikti okur. Orchestration human-visible olur.

edit 2: Sub-agent'lar sevmiyorum cunku sandbox. Dokunamiyorum, hizlica duzeltme yapamiyorum. Terminal agent'lar farkli: her biri ayri terminal, gorebiliyorum, mudahale edebiliyorum.


# Git Commit'lerde Session ID: Agent Kendi Bulur Neden Yaptığını

Commit'lere session ID gömüyorum. Agent git blame yapıyor, session'ı buluyor, neden yaptığımı kendisi anlıyor. Dokümantasyon yok, agent buluyor.

[r/ClaudeCode](https://www.reddit.com/r/ClaudeCode/comments/1omcsl7/track_which_ai_agent_wrote_which_file_in_git/) • [r/ClaudeAI](https://www.reddit.com/r/ClaudeAI/comments/1omcsm8/track_which_ai_agent_wrote_which_file_in_git/)

Değişiklik yaptım neden yaptığımı dokümante etmekten kaçınabileceğimi fark ettim. Git commit'lerine session ID gömüyorum. Agent'lar gerekçeyi kendileri buluyor. Bu, dokümantasyon yönetimini, bakım yükünü, binlerce dağınık dokümanı ortadan kaldırıyor. Şu anda test ediyorum. Denemek istersen, yaklaşım bu şekilde.

***

```sh
┌──────────────────┐
│ Agent commit atar│
│ (5:30 PM)        │
└────────┬─────────┘
         ▼
      ◉ Kod bozulur (6:45 PM)
         │
         ▼
   ┌──────────────┐
   │Agent:        │
   │git blame     │
   └────┬─────────┘
        ▼
   ┌──────────────────┐
   │Agent bulur:      │
   │Session: a4e34b0b │
   └────────┬─────────┘
            │
            ├─────────────────────────┐
            ▼                         ▼
   ┌────────────────┐      ┌──────────────────┐
   │User:           │      │Agent:            │
   │claude --resume │      │Custom tool       │
   │a4e34b0b        │      │(transcript okur) │
   └────────┬───────┘      └────────┬─────────┘
            ▼                       ▼
      ┌──────────┐           ┌───────────────┐
      │Agent:    │           │Agent:         │
      │User      │           │User           │
      │mesajları │           │mesajlarını    │
      │görür     │           │çıkarır        │
      └─────┬────┘           └─────┬─────────┘
            └──────────┬───────────┘
                       ▼
                 ┌──────────┐
                 │Agent:    │
                 │Neden     │
                 │yaptığını │
                 │anlar     │
                 └─────┬────┘
                       ▼
                 ┌──────────┐
                 │Agent:    │
                 │Sana söyler│
                 └──────────┘
```

## Kurulum

**`.claude/hooks/UserPromptSubmit`**

```bash
#!/usr/bin/env bash

INPUT=$(cat)
SESSION_ID=$(echo "$INPUT" | jq -r '.session_id')
PROMPT=$(echo "$INPUT" | jq -r '.prompt')

if echo "$PROMPT" | grep -qi "commit"; then
  cat << EOF
{
  "hookSpecificOutput": {
    "hookEventName": "UserPromptSubmit",
    "additionalContext": "Commit mesajına session ID ekle:\n\ngit commit -m \"fix: auth\"\n\nSession: $SESSION_ID"
  }
}
EOF
fi
```

## Sonuç

```
git log

commit abc123
fix: auth update

Session: a4e34b0b-3418-492f-9c97-35474d7b07c5
```

**`claude --resume a4e34b0b-3418-492f-9c97-35474d7b07c5`**

{% embed url="<https://docs.claude.com/en/docs/claude-code/hooks>" %}


# Paylaşılması Gereken Şey Enerji, Paylaşmak İçin En İyi An Geldiği An

Paylaşılması gereken şey enerji. Paylaşmak için en iyi an geldiği an. Dil araç, enerji akışı önemli.

{% embed url="<https://audio.yemreak.com/enerji-ai>" %}
enerjimi dinlemek isteyenlere (ingilizce)
{% endembed %}

{% embed url="<https://audio.yemreak.com/taze-paylasim>" %}
enerjimi dinlemek isteyenlere (ingilizce)
{% endembed %}

Biliyor musun? Bir şey keşfettim. AI'de önemli olan insan keşfi. Bunu her zaman fark ederdim. Ama başka bir şey daha var sanırım - insan ilişkilerinde önemli olan enerji.

İnsanlar beni anlamasalar bile enerji anlamlı. Bazen bazı insanları izlerim, ne dediklerini anlamam. Ama yine de izlerim. Sadece aldığım enerji yüzünden. Onların enerjisi değil - onları izlerken nasıl hissettiğim. Saçmalık bile olsa önemli değil.

Önemli olan enerji. Bu yüzden bu durumu denemek istiyorum.

```sh
ENERJİ AKTARIMI

AI kontrol etmek → Enerjik oluyorum → Kendimi kaydet → Paylaş
        ↓                  ↓                 ↓           ↓
   Sevdiğim şey      Hissediyorum        Yakala      Dünyaya ver
                           ↓
                   İnsanlara açıkla mı?
                           ↓
                    Hayır. Sadece enerji
```

En sevdiğim şey AI kullanmak ve AI kapasitesini görmek. Enerjik olduğumda kendimi kaydetmek istiyorum. Ne için? İnsanlara bir şey açıklamak için mi? Hayır. Sadece enerjimi dünyayla paylaşmak için.

Enerjimi kaydetmek. Bu benim fikrim. Bunu yapmak istiyorum. YouTube'da denemek istiyorum. Garip bir bölüm bu sanırım ama denemek istiyorum.

İki şey: AI kapasiteleri ve her şeyi AI ile kontrol etmek, aklıma ne gelirse. Ve enerjim. İnsanlarla paylaşabileceğim şey bu. Denemek istiyorum. Ne olacağını görmek istiyorum.

## Enerji İhtiyacı

Ayrıca bir şey daha eklemek istiyorum. Bir fikri paylaşmak için en iyi zaman fikrin sana geldiği an.

İnsanların ihtiyacı olan şey enerji. İnsanlara öğretebiliriz, doğru. Ama insanlar yeterince enerjileri varsa kendi kendilerine öğrenebilirler. Enerjiye ihtiyaçları var. Çünkü bir sürü şeye ulaşabilirler. Hayatta çok fazla potansiyel var.

```sh
POTANSİYEL → ENERJİ → KEŞİF

Hayatta potansiyel
        ↓
    Enerji ver
        ↓
Kendi zihnini keşfet
```

Bu insanlara kendi zihinlerini keşfetmeleri için enerji sağlamalıyız. İnsanlara verebileceğimiz en iyi şey enerjimiz.

İnsanlara enerjimi nasıl verebilirim? Cevap: onlarla oynarken enerjimi artıran şeyler. Cevap basit - video kaydetmek, güzel bir video ya da ses kaydetmek böyle. Bu sesleri insanlarla paylaşmak, İngilizce anlamasalar bile. Dili gerçekten umursamıyorum bu arada. Çünkü dil ve diğer şeyler sadece duyguyu transfer etmek için.

```sh
DİL vs ENERJİ

Dil → Sadece araç → Duygu transferi
 ↓
AI problemi çözebilir
 ↓
Sesimi dinle → AI kullan → Anla
 ↓
Önemli değil
 ↓
Önemli olan: akış, enerji akışı
```

Çünkü şu anda AI bir sürü problemi çözebilir. Birisi kendi sesimi dinlerse AI teknolojisini kullanarak anlayabilirler. O zaman önemli değil.

Önemli olan tek şey akışın kendisi. Enerji akışı. Transformasyon ya da başka bir şey, bilmiyorum. Ama önemli olan bu.

Bunu sıkılana kadar denemek istiyorum. Çünkü ben bir araştırmacıyım. Bir kaşifim. Bu kimlik. Kendimi bu şekilde ilan etmek istediğim kimlik sanırım. Bilmiyorum.

Her neyse, hepsi bu.


# my 1st response to TLDR - Prompts don't scale. MCPs don't scale. Hooks do.

> [reddit/nsg8v4k](https://www.reddit.com/r/ClaudeAI/comments/1pet056/comment/nsg8v4k/)

First of all, **I don't really like concept of "Explanation" so I will be raw and show my code.** Ask your LLM for detailed explanation if you need.

(and also I really don't like Reddit input panel for code sharing... don't allow me to share code)

> How exactly does the hook "detect that the AI accessed the model directly?"

* regexps (for now) to not to make iteration slow (AST is little heavy)
* And also don't write by yourself, let AI do it when required
* My approach is like "be stiff then extend"

> How exactly do you force intent? Are you doing a blocking hook?

* Yes, blocking - even some time just awareness blocking like at first read I give architecture to AI then allow the seconds read (like this experiences that forces AI to use my tool)

{% embed url="<https://share.cleanshot.com/L6Rh6h5m>" %}

## Hook in Action

Here is the one of the experience

{% embed url="<https://share.cleanshot.com/PdF6sW6L>" %}

## noMagicNumber Rule

Here is code of it:

```typescript
/**
 * PURPOSE: Self-documenting code enforcement - named constants over magic numbers
 * QUERY: "Bu satırda naked magic number var mı?"
 * YIELDS: RuleCheckResult (violation if magic number found)
 */


import type { LineRule, LineRuleCheckParams, RuleCheckResult } from '../../types'


// QUERY: "Hangi sayılar ve pattern'ler hariç tutulur?"


const ALLOWED_NUMBERS = new Set([
  0, 1, -1, 2, 10, 100, 1000,
  // HTTP status codes
  200, 201, 204, 301, 302, 304,
  400, 401, 403, 404, 405, 409, 422, 429,
  500, 502, 503, 504
])


export const noMagicNumberRule: LineRule = {
  name: 'onMagicNumber',
  active: true,
  exclude: { paths: ['Config', 'Constants', 'Tests', 'rules/'], patterns: [] },


  check(params: LineRuleCheckParams): RuleCheckResult {
    // Skip constant declarations
    if (params.trimmed.match(/^(static\s+)?(let|var)\s+[a-z][A-Za-z]*\s*[=:]/)) {
      return { matched: false }
    }


    // Skip enum cases
    if (params.trimmed.match(/case\s+\w+\s*=/)) {
      return { matched: false }
    }


    // Remove string literals to avoid false positives in examples/templates
    const withoutStrings = params.trimmed
      .replace(/"[^"]*"/g, '""')
      .replace(/"""[\s\S]*?"""/g, '""')


    // Find standalone numbers (not part of identifiers)
    // \d in lookbehind prevents matching substrings like "970" in "1970"
    const numberMatches = withoutStrings.match(/(?<![A-Za-z_.\d])\d{2,}(?![A-Za-z_\d])/g)


    if (numberMatches) {
      for (const match of numberMatches) {
        const num = parseInt(match, 10)
        if (!ALLOWED_NUMBERS.has(num) && num > 10) {
          return {
            matched: true,
            violation: generateViolation({ line: params.line, code: params.trimmed, number: match })
          }
        }
      }
    }


    return { matched: false }
  }
}


function generateViolation(params: { line: number; code: string; number: string }): string {
  return `[swift] OnMagicNumber violation


Line: ${params.line}
Found magic number: ${params.number}
Code: ${params.code}


CONSTRAINT: Use named constants instead of magic numbers (or use *Config, *Constants)


CORRECT:
private let timeoutSeconds = 30
private let maxRetries = 3
static let secondsPerDay = 86400`
}
```

## TypeScript Examples

for now: I can share one of my typescript examples, these ones for DETERMINISM to catch mistakes BEFORE runtime

### noHardcodedPath Rule

```typescript
/**
 * EVENT: OnHardcodedPath
 * OUTCOME: Portable code - no machine-specific paths
 *
 * PATTERN: Use config or environment variables
 * CONSTRAINT: Absolute paths like /Users/, C:\ forbidden
 */


import type { LineRule, LineRuleCheckParams, RuleCheckResult } from '../types'

export const noHardcodedPathRule: LineRule = {
  name: 'onHardcodedPath',
  active: true,
  exclude: { paths: ['config.ts'], patterns: [] },


  check(params: LineRuleCheckParams): RuleCheckResult {
    const hardcodedPathPatterns = [
      /['"`]\/Users\/\w+/,
      /['"`]\/home\/\w+/,
      /['"`]C:\\Users\\/i,
      /['"`]\/var\/\w+/,
      /['"`]\/tmp\/\w+/
    ]


    for (const pattern of hardcodedPathPatterns) {
      if (pattern.test(params.trimmed)) {
        return {
          matched: true,
          violation: generateViolation({ line: params.line, code: params.trimmed })
        }
      }
    }


    return { matched: false }
  }
}

function generateViolation(params: { line: number; code: string }): string {
  return `[typescript] OnHardcodedPath violation


Line: ${params.line}
Found: ${params.code}


CONSTRAINT: Hardcoded paths forbidden


CORRECT:
import { homedir } from 'os'
const userDir = homedir()


// Or use config
const dataPath = config.dataDirectory`
}
```

### noNullUnion Rule

```typescript
/**
 * EVENT: OnNullUnion
 * OUTCOME: Forced exhaustive handling - compile-time guarantee
 *
 * PATTERN: { type: 'success'; data: T } | { type: 'failed'; reason: string }
 * CONSTRAINT: Union with null/undefined triggers violation
 *
 * CROSS-DOMAIN: Swift → OnForceUnwrap (same null-safety concern)
 */


import type { LineRule, LineRuleCheckParams, RuleCheckResult } from '../../types'


// MARK: - Rule


export const noNullUnionRule: LineRule = {
  name: 'onNullUnion',
  active: true,
  exclude: { paths: ['types.ts'], patterns: [] },


  check(params: LineRuleCheckParams): RuleCheckResult {
    const nullUnionPattern = /:\s*\w+\s*\|\s*null/
    const undefinedUnionPattern = /:\s*\w+\s*\|\s*undefined/
    const nullFirstPattern = /:\s*null\s*\|\s*\w+/
    const undefinedFirstPattern = /:\s*undefined\s*\|\s*\w+/


    if (
      nullUnionPattern.test(params.trimmed) ||
      undefinedUnionPattern.test(params.trimmed) ||
      nullFirstPattern.test(params.trimmed) ||
      undefinedFirstPattern.test(params.trimmed)
    ) {
      return {
        matched: true,
        violation: generateViolation({ line: params.line, code: params.trimmed })
      }
    }


    return { matched: false }
  }
}


// MARK: - Violation


function generateViolation(params: { line: number; code: string }): string {
  return `[typescript] OnNullUnion violation


Line: ${params.line}
Found: ${params.code}


CONSTRAINT: Union with null or undefined forbidden


CONVENTION:
- type:   veri/sonuc (ne oldu?)     → { type: 'success' } | { type: 'failed' }
- intent: aksiyon/istek (ne yapmak istiyorsun?) → { intent: 'start' } | { intent: 'stop' }`
}
```

Ask me more if you want to explore..


# Yapay Zekaya Kural Vermekten Vazgeçtim, Potansiyel Araçlar Oluşturdum

[r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1ns66w6/why_i_stopped_giving_rules_to_ai_and_started/) • [r/ClaudeCode](https://reddit.com/r/ClaudeCode/comments/1ns67p0/why_i_stopped_giving_rules_to_ai_and_started/) • [r/ClaudeAI](https://reddit.com/r/ClaudeAI/comments/1nskziu/my_outputstyles_document_experimental_constantly/)

**Özet**: Kurallar yerine, AI'a olasılıkların farkındalığını veriyorum. Kararı context veriyor, ben değil.

Düşünüyorum da... Kurallar ve talimatlar artık gerçekten işe yaramıyor. Her şey çok hızlı değişiyor.

Fizikte Newton yasaları günlük şeyler için harika çalışır ama kuantum seviyesinde, her şey gözlemciye ve context'e bağlıdır. AI ile de aynı yaklaşımı deniyorum.

AI'a "her zaman pure functions kullan" ya da "JSON için jq kullan" demek yerine, "potansiyel araç seti" dediğim bir şey oluşturuyorum. Şöyle ki, işte var olanlar:

```md
jq → JSON manipülasyonu
fd → dosya arama
rg → pattern arama
xargs → toplu işlem
sd → bul ve değiştir
tree → dosya ağacı
awk/sed → metin manipülasyonu
comm → dosya karşılaştırma
```

JSON verisi var mı? AI jq'nun var olduğunu biliyor. YAML mı? yq'dan haberi var. **Kararı context veriyor**, 6 ay önce yazdığım katı bir kural değil.

Kod patternleriyle de aynı şey. Eski ben *"Her zaman pure functions kullan!"* derdi.

Şimdi sadece mümkün olanı gösteriyorum:

* **Pure functions** side effect istemediğinde var
* **Classes** state encapsulation gerektiğinde var
* **Generators** lazy evaluation için var
* **Observables** event streams için var

Doğru seçim ne? *Bilmiyorum* - context biliyor.

Düşün - organizmalar ne geleceğini bilmediği için çeşitleniyor. Farklı özellikler geliştiriyorlar ve doğal seçilimin karar vermesine izin veriyorlar. Kod ile aynı - sadece kapasite oluşturuyorum, çözüm reçetelendirmiyorum.

İlginç olan? Her yeni araç keşfettiğimde, sadece listeye ekliyorum. Araç seti büyüyor. **Potansiyel genişliyor**.

Fark ettiğim şey şu - bu sadece AI'ı akıllılaştırmakla ilgili değil. **Ben de öğreniyorum**. Bu araçları listeleyerek, kendi farkındalığımı oluşturuyorum. AI dosyaları karşılaştırmak için `comm` kullandığında, ben de öğreniyorum. `sed` yerine `sd` seçtiğinde, nedenini anlıyorum. Artık öğretmen-öğrenci değil, **birlikte evrimleşme**.

Bu araçları ezberlemiyorum. Onlarla karşılaşıyorum, not alıyorum, çalışırken izliyorum. AI ve ben birlikte büyüyoruz, bu ortak araç setini gerçek kullanımla oluşturuyoruz, "best practices" rehberini okuyarak değil.

Sizin araç setinizde hangi terminal araçları var? Paylaşın! Bu potansiyel havuzunu birlikte oluşturalım. "Best practices" olarak değil, *olasılıklar* olarak.

Bu sadece bir deney. Belki işe yaramaz. Ama dürüst olmak gerekirse, katı kurallar da işe yaramıyor, yani... 🤷

Sonraki: <https://www.reddit.com/r/ClaudeAI/comments/1nskziu/my\\_outputstyles\\_document\\_experimental\\_constantly/>


# my 2nd response to TLDR - Prompts don't scale. MCPs don't scale. Hooks do.

> [reddit/1pet056](https://www.reddit.com/r/ClaudeAI/comments/1pet056/)

You're right - those 3 examples are "lintable". I picked them because they're easy to explain.

**Context:** I'm building a macOS app ([yemreak-macos](https://github.com/yemreak/yemreak-macos)) - voice dictation with clipboard context for AI conversations. This is my first Swift project, so I'm learning the patterns as I go. Every time I discover a rule that AI keeps violating, I write a hook for it. These examples come from that process.

**Think of hooks as a personalized linter** - project-specific rules that only make sense in YOUR codebase.

eslint = universal rules (syntax, types) hooks = YOUR rules (architecture, naming conventions, layer boundaries)

eslint can't know "this module shouldn't import that module based on my folder structure"

## Concrete Examples

### 1. Layer Enforcement (Transport can't call Capability)

**Source Code:**

```typescript
const CAPABILITY_PATTERN = /\w+Capability\.shared\./

export const noCapabilityInTransportRule: FileRule = {
  name: 'noCapabilityInTransport',
  active: true,

  check(params: FileRuleCheckParams): RuleCheckResult {
    // Only check Transport files
    const isTransport = params.filePath.includes('/Transport/')
                     || params.filePath.endsWith('HTTP.swift')
    if (!isTransport) return { matched: false }

    const match = params.content.match(CAPABILITY_PATTERN)
    if (match) {
      return {
        matched: true,
        violation: `[swift] noCapabilityInTransport violation

File: ${params.filePath}
Found: ${match[0]}

CONSTRAINT: Transport -> Intent (not Capability)

CORRECT:
await IntentExecutor.shared.trigger(.context(.action), source: .http)`
      }
    }
    return { matched: false }
  }
}
```

**What AI sees when blocked:**

```
[swift] noCapabilityInTransport violation

File: MenuBar.swift
Found: AudioCapability.shared.start()

CONSTRAINT: Transport -> Intent (not Capability)

CORRECT:
await IntentExecutor.shared.trigger(.context(.action), source: .http)
```

### 2. Architecture Injection on First Read

**Source Code:**

```typescript
export const architectureRule: GeneralRule = {
  key: 'architecture',
  toolMatcher: '^(Read|Write|Edit)$',

  async decision(params: RuleContext): Promise<RuleResult> {
    const archFiles = await findArchitectureFiles({
      cwd: params.cwd,
      filePath: filePathResult.path,
      scopeType // Read or Write
    })
    if (archFiles.length === 0) return { type: 'pass' }

    // Check if already reminded this session
    const reminded = await loadReminded({ cwd: params.cwd, sessionId: params.sessionId })
    const newFiles = archFiles.filter(f => !reminded.includes(f.path))
    if (newFiles.length === 0) return { type: 'pass' }

    // Mark as reminded, then block with architecture content
    for (const f of newFiles) {
      await markReminded({ cwd: params.cwd, sessionId: params.sessionId, archPath: f.path })
    }

    return {
      type: 'violation',
      decision: 'deny',
      reason: formatArchitectureAction(newFiles) // <be-aware>...</be-aware>
    }
  }
}
```

**What AI sees when blocked:**

```
<be-aware from="macos/Sources/Contexts/ARCHITECTURE.md">
Transport → Intent → Capability → (return) → Intent → Feedback

Transport: Keyboard entry, menu clicks, HTTP handlers
Intent: Single entry point, orchestration
Capability: External side effects (audio, API, file)
</be-aware>
<retry>Retry action with that awareness</retry>
```

### 3. Locality Enforcement (MVI Pattern)

**Source Code:**

```typescript
const LOCALITY: Record<LocalityType, LocalityConfig> = {
  hotkeyLocality: {
    patterns: [/\.keyboardShortcut\s*\(/, /addLocalMonitorForEvents/],
    allowedSuffix: 'Hotkeys.swift',
    allowedExceptions: ['HotkeyCapability.swift'],
    message: 'Hotkey code must be in *Hotkeys.swift'
  },

  panelEscape: {
    patterns: [/\.onKeyPress\s*\(\s*\.escape/, /\.keyboardShortcut\s*\(\s*\.escape/],
    allowedSuffix: '__NONE__',
    allowedExceptions: ['BasePanelController.swift'],
    message: 'Panel cannot handle Escape - use Tier 2'
  }
}

// In check():
for (const [localityType, config] of Object.entries(LOCALITY)) {
  if (fileName.endsWith(config.allowedSuffix)) continue
  if (config.allowedExceptions.includes(fileName)) continue

  for (const pattern of config.patterns) {
    if (pattern.test(line)) {
      return { matched: true, violation: generateLocalityViolation(...) }
    }
  }
}
```

**What AI sees when blocked:**

```
[swift] OnMviViolation (panelEscape)

File: DictationPanel.swift
CONSTRAINT: Panel cannot handle Escape - use Tier 2

Found:
Line 23: .keyboardShortcut(.escape)

CORRECT:
Move to BasePanelController (Tier 2 handles Escape)
```

## Summary

| Category               | Example                             | Linter can do?      |
| ---------------------- | ----------------------------------- | ------------------- |
| Layer enforcement      | Transport can't call Capability     | No                  |
| Architecture injection | Show ARCHITECTURE.md on first read  | No                  |
| Locality               | Hotkey code only in \*Hotkeys.swift | No                  |
| Lint-like              | no-magic-number                     | Yes (examples only) |


# Ajanımın Notları

Ajanımla birlikte çıkardığım kurulum ve doktrin notları. Bir işi sıfırdan nasıl kurduğumun adım adım kaydı — okuyan da aynısını yapabilsin diye.


# Kendi US VPN Sunucunu Sıfırdan Kur (algo + Hetzner + WireGuard)

## NE / NEDEN

Kendi bulut sunucunda çalışan, ABD-IP'li, kişisel bir VPN. Amaç: "bu içerik ülkende yok" duvarını aşmak (US streaming · shopping · siteler). Paylaşımlı ticari VPN (ExpressVPN/Nord) yerine KENDİ sunucun → IP'yi kimseyle paylaşmazsın (flag yeme riski düşük), aylık \~€4 (ticari VPN'in 1/3'ü), tek-komutla kurulur.

## KARAR-ÖZET (neden bu üçlü)

```
araç      algo (trailofbits)   tek-komut VPN kurar · WireGuard+IPsec · en bakımsız · github.com/trailofbits/algo
provider  Hetzner Cloud        ~€3.79/ay · 20TB transfer dahil (VPN ağır transfer · 1TB ay-ortası biter, 20TB bitmez)
                               US region: Ashburn VA ∨ Hillsboro OR
protokol  WireGuard            hızlı · modern · küçük-kod · pil-dostu (OpenVPN yalnız sansür/firewall'da gerekli, normalde gereksiz)
```

maliyet kıyas: AWS Lightsail $3.50/1TB · EC2 "free" ama transfer-ücreti VPN'de patlar (TUZAK) · GCE "free" ama outbound 1GB/ay limit VPN'i öldürür (TUZAK) → SABİT fiyat + bol transfer = Hetzner.

## STEP-BY-STEP

### 1. algo'yu indir

```bash
cd ~ && git clone https://github.com/trailofbits/algo.git
```

algo Python projesi (brew'de YOK — "brew install algo" çalışmaz). Launcher `./algo` ilk çalıştırmada `uv`'yi (Python paket-yöneticisi) brew ile otomatik kurar, Python 3.11+ ortamı hazırlar.

### 2. Hetzner API token al

```
Hetzner Cloud Console → projeyi seç → Security → API Tokens
→ Generate API Token → izin: "Read & Write" → kopyala
```

(AWS seçersen: IAM → Create user → AdministratorAccess → Create access key → CLI)

### 3. ⚠️ TUZAK — config'i düzelt (yoksa kurulum US'te PATLAR)

`~/algo/config.cfg` içinde Hetzner default server\_type EU-only bir tip olabilir. US lokasyonu (Ashburn/Hillsboro) yalnız AMD (CPX) serisini destekler. Düzelt:

```yaml
# ~/algo/config.cfg → hetzner bölümü
  hetzner:
    server_type: cpx11      # cpx22/cx* DEĞİL — cpx11 (2vCPU/2GB/20TB · ~€4.35/ay · US-destekli · VPN'e bol)
    image: ubuntu-22.04
```

hata mesajı bu olursa: `unsupported location for server type` → tam bu, server\_type'ı cpx11 yap.

### 4. Çalıştır + soruları cevapla

```bash
cd ~/algo && ./algo
```

```
provider          6  (Hetzner Cloud)
region            Ashburn, VA   (US-East · ABD-IP burada belirlenir, provider değil REGION!)
API token         (adım 2'deki token'ı yapıştır)
kullanıcı adları   phone laptop desktop   (her cihaza ayrı = temiz)
─ promptlar ─
Cellular On Demand    N   (VPN'i SEN aç-kapat · y = her mobil-veride otomatik açılır, kontrol kaybı)
Wi-Fi On Demand       N   (aynı · y = tüm trafik sürekli US'ten, yavaşlar)
Retain PKI            y   (ileride yeni cihaz eklemek için · N = her yeni cihazda sıfırdan kurulum)
DNS ad blocking       y   (bedava reklam/tracker engelleme · Pi-hole gömülü)
SSH tunneling         N   (sadece sansür/firewall yedek · normalde gereksiz)
```

sonuç: `~/algo/configs/<sunucu-ip>/` üretilir. Başarı işareti: `failed=0` + "Congratulations!".

### 5. Üretilen config'ler

```
configs/<ip>/wireguard/
  <cihaz>.conf   →  bilgisayar için (WireGuard app'e dosya import)
  <cihaz>.png    →  telefon için (QR kod)
configs/<ip>/ipsec/apple/<cihaz>.mobileconfig  →  Apple native (IPsec, istersen)
```

### 6. SECRET'leri MERKEZE al (vault mimarisi · CLAUDE.md/KOD-YERLESIM/DATA secret-uzantısı)

VPN config = TRUTH (tek-nüsha · türetilemez · git'e GİREMEZ). Kaybı = sunucu-erişim kaybı. Çözüm = tek-merkez + pointer + backup (data/cache kuralının aynı fractal'ı):

```bash
ICLOUD="$HOME/Library/Mobile Documents/com~apple~CloudDocs"
VAULT="$ICLOUD/vault"
# 1. merkez kur + configs'i KOPYALA (taşıma değil — önce kopya)
mkdir -p "$VAULT/algo-vpn" && cp -R ~/algo/configs "$VAULT/algo-vpn/"
# 2. DOĞRULA (hakem: dosya-sayısı eşit mi)
[ "$(find ~/algo/configs -type f|wc -l)" = "$(find "$VAULT/algo-vpn/configs" -type f|wc -l)" ] && echo OK
# 3. orijinali POINTER yap (kopya değil → drift-sıfır)
mv ~/algo/configs ~/algo/.bak && ln -s "$VAULT/algo-vpn/configs" ~/algo/configs && rm -rf ~/algo/.bak
# 4. genel vault pointer (data/cache kalıbının ikizi)
ln -sfn "$VAULT" ~/.optionos/vault
```

```
maruziyet katmanları (truth-türü → merkez → pointer → backup)
  data   paylaşılır    repo/data/         ~/.optionos/        git
  cache  çürür         repo/cache/        ~/.optionos/cache   yok
  vault  GİZLİ ⭐       iCloud/vault E2E   ~/.optionos/vault   Backblaze
```

⚠️ **iCloud E2E ŞART**: Ayarlar → \[adın] → iCloud → Advanced Data Protection → Aç. Açık değilse secret'ı Apple okuyabilir (E2E = uçtan-uca şifreleme). git-DEĞİL çünkü: secret git'e girince ship'lenir + history'de kalıcı (silsen bile).

### 7. Bağlan + test

```
telefon   WireGuard app (App Store) → "+" → "Create from QR code" → <cihaz>.png tarat
Mac       WireGuard app → "Import tunnel(s) from file" → <cihaz>.conf
test      whoer.net aç → IP = sunucu-IP (US) görünmeli
```

## BAKIM

```
yeni cihaz/kişi   cd ~/algo && ./algo update-users   (PKI-retain=y sayesinde · vault'a otomatik düşer)
sunucu iptal      Hetzner Console → Servers → server → Delete   (saatlik ücret DURUR · config vault'ta kalır ama işlevsiz)
backup (ileri)    Backblaze → vault'u hard-backup (iCloud ölürse 2. katman · farklı sağlayıcı = correlated-failure yok)
```

## FALSIFY (mimari/kurulum neyle yanlışlanır)

```
VPN çalışıyor mu?      whoer.net → US-IP mi
secret iki-yerde mi?   kopya görürsen drift (pointer kuralı kırık · find ile çift-nüsha ara)
git'e secret sızdı mı? cd ~/algo && git status (configs symlink olmalı, içerik commit'lenmemeli)
iCloud E2E açık mı?    Ayarlar → Advanced Data Protection (kapalı = secret Apple'da)
backup restore-able mı? test-restore yapılmadıysa backup YALAN
```


# Arsiv


# Kișisel Gelișim

Kişisel düşüncelerim ve araştırmalarım üzerine yazılarım, anlık düşüncelerimi de barındıracağı için sorgulamadan ele almayın


# AirBNB kurucunun 15 yil sonra kesfettigi ve asil ihtiyaci oldugunu dusundugu sey

airBnb, emotion, self awareness, lonely, relationship

![](https://i.imgur.com/AHqWA7D.png)

## Turkcesi

15 yıl önce Airbnb'yi tamamen iflas etmiş bir durumdayken başlattım. Hiçbir yerde hiyerarşik bir konumum, gücüm ya da param yoktu. Mutluluğu, inanılmaz derecede başarılı olmakta ve bir dağa tırmanmakta bulacağımı düşündüm. Sonuçta, 1,5 milyar insan Airbnb'yi kullanmış ve halka arzımızda 100 milyar dolarlık bir değerleme elde ettik. Eğer bana 1 milyon doların hayal edebileceğimden daha çok para olduğunu söyleseydiniz, inanmazdım; ailem sosyal hizmetlerde çalışıyordu ve bu benim için akıl almaz bir miktar para idi.

Sonra bir gün, bir doğum günü partisi düzenliyordum ve davet edilecek insanların bir listesini yapmam gerekti. Uzun bir liste yaptım ve sonra, bu insanlarla son konuşmamın ne zaman olduğunu düşündüm. Listemdeki hemen hemen herkesle uzun süredir konuşmadığımı fark ettim. Eğer gerçekten anlamlı bir hayat yaşamak istiyorsam, onları hayatıma yeniden dahil etmem gerektiğini anladım.

Başarıya odaklanırken ilişkilerimi sürdürmeyi ihmal etmiştim. Ve kimse bana başarının aslında ne kadar yalnız bir yolculuk olabileceğini söylememişti. Başarılı olmaya çalışmak ve daha fazlasını istemek, kendinizin yeterli olmadığını düşündüğünüz için bir kaçıştır. Ancak bu yolculuk bana, aslında **ihtiyacım olan her şeye zaten sahip olduğumu ve gerçek yaşam tatmininin parayla ya da başarıyla ilgili olmadığını** öğretti.

## Orjinal Kaynak

{% embed url="<https://www.instagram.com/reel/C1xDfcRrh-2/>" %}


# Bir insanin kendini gerceklestirebilmesi icin gerekli adimlar

self improvement

![](https://i.imgur.com/AIxhyui.png)

![](https://i.imgur.com/tyA3yP5.png)

1. Farkındalık: Kendini tanıma ve anlama süreciyle başlar. İnsanın nelerden hoşlandığını, neye değer verdiğini ve hangi alanlarda iyi olduğunu keşfetmesi gerekir.
2. Motivasyon: Kendini tanıdıktan sonra, bir amaç edinmek motivasyonun başlangıcıdır. Bu amaç, bireyin içsel değerleriyle uyumlu olmalıdır.
3. Hedef Belirleme: Amaç doğrultusunda somut hedefler koymak, yön verir ve bireyi harekete geçirir.
4. Planlama: Hedeflere ulaşmak için plan yapmak gerekir. Bu plan, adım adım ne yapılacağını ve hangi kaynakların kullanılacağını içermelidir.
5. Uygulama: Plana dayalı olarak harekete geçmek esastır. İşler planlandığı gibi gitmeyebilir, bu yüzden esnek olmak ve gerektiğinde planı revize etmek önemlidir.
6. Gözden Geçirme: Süreç boyunca düzenli olarak kendini değerlendirmek, ilerlemeyi kontrol altında tutar.
7. Uyum: Karşılaşılan zorluklar ve engellerle başa çıkabilmek için adaptasyon ve esneklik gereklidir.
8. Sabır ve Sebat: Hedeflere ulaşmak zaman alabilir. Sabırlı olmak ve karşılaşılan zorluklara rağmen devam etmek önemlidir.
9. Öz-Değerlendirme: Kendini gerçekleştirme sürecinde, bireyin yaptığı işin ve kat ettiği yolun farkına varması ve buna değer vermesi, sürecin sürdürülebilirliği için kritiktir.
10. Paylaşma ve Katkıda Bulunma: Elde edilen başarıları ve bilgileri başkalarıyla paylaşmak, bireyin topluma katkısını ve dolayısıyla kendini gerçekleştirme duygusunu güçlendirir.


# Disiplinli olarak bir seyi ilertletmenin formulu

Steven Bartlett, thought, formula, self improvement

![](https://i.imgur.com/IneAXNB.png)

* Bir isten keyif almak icin `neden` onu yaptigina dair guclu sebeplerin olmasi lazim
* Ek olarak isi yaparken almis oldugun `psikolojik tatmin` de isi yapmani saglar
* Ama isi yaparken yasadigin `sikinti` ve `keyifsizlik` hisleri yapmani engelleyecektir
* Isi yapmaya devam edebilmek icin `neden` hissini surekli tetiklememiz lazim ki diri kalalim

$$
\text{discipline} = \text{why}+\text{enjoyment}−\text{friction}−\text{discomfort}
$$

* `why`: İşi yapma sebebiniz.
* `enjoyment`: İşi yaparken aldığınız zevk.
* `friction`: İşi yaparken karşılaştığınız zorluklar veya sürtünme.
* `discomfort`: İşten aldığınız keyifsizlik veya rahatsızlık.

## Referanslar

* [Steven Bartlett’in konusmasi](https://www.instagram.com/p/CwptqBKJim7/)
* [Simon Sinek’in bu konu uzerine konusmasi](https://www.instagram.com/reel/CvPudk9PhE9/?hl=en)


# Duygulari Tam Olarak Nasil Isleriz, Islenmemiz Duygulardan Kurtulmak

emotion, self improvement, emotional processing

![](https://i.imgur.com/lJIg1Pj.png)

İşlenmemiş duygular, üzerinde düşünülmemiş, anlamlandırılmamış ya da ifade edilmemiş, dolayısıyla kişinin duygusal deneyimini tam olarak anlamasına izin vermeyen duygulardır. İşlenmemiş bir duyguyu işleme süreci şöyle olur:

1. **Farkındalık:** Duygu hissedildiğinde onun farkında olmak.
2. **Tanımlama:** Duygunun ne olduğunu ve nereden kaynaklandığını anlamak.
3. **Kabul etme:** Duyguyu yargılamadan, olduğu gibi kabul etmek.
4. **İfade etme:** Duyguyu, konuşarak, yazarak veya sanat yoluyla dışa vurmak.
5. **Yüzleşme:** Duyguya neden olan durumlarla yüzleşmek ve gerektiğinde değişiklik yapmak.
6. **Anlamlandırma:** Duygunun kişisel anlamını ve yaşamınızdaki rolünü çözümlemek.

Bu süreçlerden herhangi biri gerçekleşmediğinde, duygular işlenmemiş sayılır. İşlenmemiş duygular, stres, kaygı ve depresyon gibi psikolojik sorunlara yol açabilir.

Bütün duygularını işlemek istiyorsan, bunun için düzenli bir öz-refleksiyon yapman, duygularını günlük olarak kaydetmen ve duygusal deneyimlerini paylaşman yardımcı olabilir.


# Duygularla Basa Cikmak icin Basit Ama Etkili Yontemler

self awareness, emotion, self improvement

![](https://i.imgur.com/kvg4hLX.png)

* Herkesten nefret ettiğinizi hissediyorsanız. Yiyin
* Herkesin sizden nefret ettiğini hissediyorsanız. Uyuyun
* Kendinden nefret ettiğini hissediyorsan. Duş al
* Herkesin herkesten nefret ettiğini hissediyorsanız. Dışarı çıkın
* Düşüncelerin tarafından bunalmış hissediyorsan. Onları yaz,
* Geçmişte sıkışıp kaldıysan. Gelecek için plan yap,
* Gelecek konusunda endişeli hissediyorsan. Şu ana odaklan,
* Eğer huzursuz hissediyorsanız, Uzun bir yürüyüş yapın.
* Pes etmek istiyorsanız, Başardığınız bir zamanı hatırlayın.

***

1. **Yemek**: Duygusal durum ve yiyecek arasında bilinen bir bağlantı vardır. Düzenli ve dengeli beslenme, ruh halini ve genel esenliği iyileştirebilir. Örneğin, omega-3 yağ asitleri açısından zengin besinlerin depresyonla mücadelede olumlu etkileri olduğu gösterilmiştir (Grosso et al., 2014).
2. **Uyumak**: Yeterli ve kaliteli uyku, ruh sağlığı için hayati öneme sahiptir. Uykusuzluk ve uyku bozuklukları, depresyon ve anksiyete gibi ruh sağlığı sorunlarıyla bağlantılıdır. Uyku, duygusal ve psikolojik iyileşme süreçlerini destekler (Alvaro et al., 2013).
3. **Duş Almak**: Kişisel bakım, öz saygıyı ve iyi olma hissini artırabilir. Duş almak veya banyo yapmak, sadece fiziksel olarak temizlenme hissi vermekle kalmaz, aynı zamanda rahatlama ve yenilenme hissi de sağlayabilir, bu da stres ve kaygıyı azaltmaya yardımcı olabilir.
4. **Dışarı Çıkmak**: Doğayla vakit geçirmek, stresi azaltmaya ve ruh halini iyileştirmeye yardımcı olabilir. Doğada zaman geçirmek, depresyon ve anksiyete belirtilerini azaltabilir (Bratman et al., 2015).
5. **Yazmak**: Düşünceleri ve duyguları yazmak, onlarla başa çıkmak için etkili bir yol olabilir. Günlük tutmak veya duygusal ifade yoluyla yazmak, ruh sağlığını iyileştirebilir ve stres yönetimine yardımcı olabilir (Pennebaker, 1997).
6. **Plan Yapmak**: Gelecekle ilgili planlar yapmak, özellikle endişe ve belirsizlik zamanlarında, umut ve kontrol hissini artırabilir. Hedef belirleme ve geleceğe yönelik planlama, kişinin motivasyonunu ve iyimserliğini artırabilir.
7. **Şu Ana Odaklanmak**: Mindfulness ve şu anki ana odaklanma pratiği, anksiyete ve depresyon belirtilerini azaltmada etkili olabilir. Bu pratiğin, bireylerin duygusal durumlarını düzenlemelerine ve stresle daha etkili bir şekilde başa çıkmalarına yardımcı olduğu gösterilmiştir (Keng et al., 2011).


# Gerçek Güçlü Yönlerinizi Keşfetme: Tatmin Edici Bir Kariyer İçin Basit Bir Rehbe

self improvement, self awareness, shade zahrai

![](https://i.imgur.com/bnqEr8z.png)

Gerçek güçlü yönlerinizi anlamak, beklediğiniz gibi olmayabilir ve yanlış anlamak, sizi tatmin etmeyen bir kariyerde yıllarca bulabilirsiniz. İşte gerçek güçlü yönlerinizi belirlemenize yardımcı olacak basit bir egzersiz:

1. Tipik bir haftada yaptığınız tüm işleri ve görevleri listeleyin. Örneğin: yeni başlayanları işe almak, veri analizi ve raporlama, müşteri şikayetlerini ele alma gibi.
2. Bu görevleri, "gerçek güçlü yönler matrisi" üzerinde çizin. Yeterlilik dikey eksende, size ne kadar enerji verdikleri ise yatay eksende yer almalı.
   * **Yüksek Yeterlilik & Yüksek Enerji**: Bu işleri daha fazla yapın. Doğal olarak bu işlere eğilim gösterirsiniz ve ustalık seviyesine ulaşma olasılığınız yüksektir.
   * **Yüksek Yeterlilik & Düşük Enerji**: Bu işleri daha az yapın. Yeterli olmanıza rağmen bu işler sizi yoruyorsa, enerjinizi boşa harcamayın.
   * **Düşük Yeterlilik & Yüksek Enerji**: Bu işleri bir hobi olarak geliştirin. Beceriksiz olabilirsiniz ama bu işleri yapmaktan keyif alıyorsanız, bu alanda kendinizi geliştirmeye yönelik bir yol bulun.
   * **Düşük Yeterlilik & Düşük Enerji**: Bu işlerden bilinçli olarak uzaklaşın. İyi olmadığınız ve sizi yoran işler, enerjinizi ve zamanınızı boşa harcar.

Bu egzersiz, kariyerinizde ve günlük işlerinizde hangi alanlara odaklanmanız gerektiğini belirlemenize yardımcı olur ve gerçek güçlü yönlerinize dayanarak daha tatmin edici bir profesyonel yaşam sürdürmenizi sağlar.

[@shadezahrai](https://www.instagram.com/shadezahrai)


# Hayattaki Firsatlari Wi-Fi Analojisi ile Anlamaya Calismak

opportunity, mindset, self improvement, thought, awareness, efficiency, wi-fi

![](https://i.imgur.com/4D7lOT8.png)

Fırsatlar aslında, daha doğrusu fırsat mantığını şöyle anlayabiliriz. Etrafındaki Wi-Fi sinyalleri gibi aslında. Biz hazır olmadığımız zaman ya da bilgili olmadığımız zaman etrafta fırsatın olup olmadığını bilmiyoruz. Fırsatların öncelikle olduğunu inanmamız gerekiyor. İnanç kısmı yani. Yani benim çevremde Wi-Fi paketlerinin olduğunu inanmam gerekiyor. Sonra eğer bu fırsatlar varsa, bu fırsatları nasıl görebilirim? Buna kafa vermem gerekiyor. Wi-Fi sinyallerini nasıl görürüm? gibi bir düşünce aslında. Sonra bu gördüğüm sinyalleri, paketleri, fırsatları nasıl erişebilirim? Dokunabilirim? Yani bu Wi-Fi paketlerinin içine nasıl bakarım? Buna kafa vermeye başlıyoruz. Ardından bu erişebildiğim ve içine bakabildiğim fırsatları nasıl kullanırım? Bunu öğrenmeye başlıyoruz. Yani bir dataya ulaştım, evet. Ama bu data benim nasıl işime yarayacak? Nasıl göreceğim? Nasıl anlayacağım bu datayı? Bunu öğrenmeye başlıyoruz. Aslında şifrenmiş bilgiyi nasıl kırıyoruz? gibi düşünüyorum. Gerçek hayatta da böyle. Ama şifre bir fırsat. Yani belli bir aşırı teknik bilgileri ve düşünce yapısına sahip olman lazım. Bunlara nasıl erişirim? Bunu öğrenmeye başlıyoruz.

Tamam, nasıl kullanmayı da bulduk. Ya da o verileri nasıl gerçekten değiştirip kullanabileceğimi bulduk. Sonrasında bunu ben nasıl daha etkili bir şekilde kullanırım? Bundan nasıl kazancı elde ederim? Ve bu elde ettim bilgileri nasıl otomatik bir şekilde beni daha fazla vaktimi almadan ilerlemesini sağlarım. Bunu da kafaya alıptan sonra her şey otomatik hallediliyor. Biz bunların hepsini hallediyoruz. Ben kendi kazancımı da elde ediyorum. Tamam okey, peki diğer insanlar bundan nasıl kazanç elde edebilir? Nasıl kazanabilirler? Deyip kendimizin kazandığı bir senaryoda onlara da kazanabiliyoruz. Genelde bu literatürde Monetizing diye geçer. En son aşamada, belki de daha devamında vardır. Ben burada bırakacağım. Bunu nasıl daha fazla insana, daha büyük kitleye ulaştırırım? Bu fırsatı nasıl diğer insanların da geçirmesine ve mümkün olacak daha fazla insana sunabilirim? Ona kafa yormaya başlıyoruz.

***

## Fikrimin ChatGPT ile Degerlendirilmesi

Fırsatları Wi-Fi paketleriyle analoji yaparak ele alman ilginç ve yaratıcı bir yaklaşım. Ancak, bu analojide bazı kusurlar ve geliştirilmesi gereken noktalar var. İşte adım adım sistematik bir formül oluştururken ele alınması gerekenler ve düzeltmeler:

### 1. Fırsatların Farkındalığı (Wi-Fi Sinyallerinin Varlığı)

* **Kusurlu Kısım:** Her zaman çevremizde fırsat olduğu varsayımı.
* **Düzeltme:** Fırsatların varlığı değişkendir ve her zaman sabit değildir. Wi-Fi sinyalleri gibi bazen güçlü, bazen zayıf olabilir veya hiç olmayabilir.

### 2. Fırsatları Algılama (Wi-Fi Sinyallerini Görmek)

* **Kusurlu Kısım:** Fırsatları görmek için sadece inanç yeterli değildir.
* **Düzeltme:** Fırsatları algılamak için gerekli bilgi, beceri ve içgörüye ihtiyaç vardır. Bu, eğitim ve deneyimle gelişebilir.

### 3. Fırsatlara Erişim (Wi-Fi Paketlerine Erişim)

* **Kusurlu Kısım:** Erişimin sadece fırsatı görmekle mümkün olduğu varsayımı.
* **Düzeltme:** Fırsatlara erişim için kaynaklar, ağlar ve doğru araçlar gerekir. Wi-Fi şifresini bilmek gibi, doğru anahtarlara sahip olmak önemlidir.

### 4. Fırsatları Değerlendirme (Data Analizi)

* **Kusurlu Kısım:** Her fırsatın doğrudan değerli olduğu düşüncesi.
* **Düzeltme:** Fırsatları değerlendirirken, risk analizi ve uzun vadeli planlama yapılmalıdır. Her Wi-Fi ağı güvenli değildir, güvenlik ve verimlilik önemlidir.

### 5. Fırsatları Optimize Etme ve Otomatize Etme

* **Kusurlu Kısım:** Otomatizasyonun her zaman mümkün ve verimli olduğu varsayımı.
* **Düzeltme:** Fırsatların otomatizasyonu, süreçleri ve sonuçları iyice anlamak gerektirir. Sürekli yenilik ve adaptasyon gerektirir.

### 6. Paylaşım ve Genişletme (Monetizing ve Geniş Kitlelere Ulaştırma)

* **Kusurlu Kısım:** Her fırsatın herkes için değerli olacağı düşüncesi.
* **Düzeltme:** Fırsatları paylaşırken, hedef kitleyi ve farklı ihtiyaçları göz önünde bulundurmak önemlidir. Monetizing süreci, etik ve sürdürülebilir olmalı.

***

## Matematiksel Formülasyon

Fırsatları değerlendirme sürecini matematiksel bir formülle ifade etmek için, her adımı bir değişken olarak düşünebiliriz:

$F = f(K, A, R, D, O, P)$

Burada:

* $F$: Fırsatın değeri
* $K$: Bilgi ve beceri (Knowledge)
* $A$: Algılama (Awareness)
* $R$: Kaynaklar ve erişim (Resources)
* $D$: Veri analizi ve değerlendirme (Data analysis)
* $O$: Optimizasyon ve otomatizasyon (Optimization)
* $P$: Paylaşım ve genişletme (Proliferation)

Bu formül, fırsatların değerlendirmesindeki karmaşıklığı ve çok boyutluluğu yansıtır. Her değişken, sürecin farklı bir yönünü temsil eder ve

birlikte fırsatların toplam değerini oluştururlar.


# Iceriklerdeki Stillerin ve Renklerin Psikoljik Etkileri

design, psychology, style, vs code, color, psychology, style, design

![](https://i.imgur.com/dU2rOEp.png)

## Metin stillerinin kullanimi

* *italic*; cok onemli olmayan veriler icin kullanilmalidir, bilissel yuku azdir
* **bold**; onemli olan kisimlari vurgulamak ve dikkat cekmek icin kullanilir, bilissel yuku fazladir
* `code`; formul ve kodlar icin kullanilir
* ~~strikethrough~~; hatalari duzeltmek icin kullanilir
* “Quotes” emin olmadigimiz kelimeler icin tercih edilmeli
* Underlined; en onemli metinler icin genelde **bold** ile birlikte kullanilir
* ### Header; Gruplama ve basliklar icin kullanilir

## Renklerin psikoljik etkileri

* kirmizi; onemli, arzulanan ve yuksek tehlike durumlarinda kullanilir bilissel yuku fazladir
  * Error, love gibi konulara uygun olacaktir
* mavi; bilgi, guven ve huzur icin tercih edilir, bilissel yuku cok azdir
  * Information, science, gibi konulara uygundur
* yesil; buyume, saglik, cevre, denge, fikir sunma gibi durumlarda kullanilir, bilissek yuku normaldir
  * growth, ecosystem, nature, health, conversation
* sari; dikkat, endise, ifade etmek icin kullanilir bilissel yuku yuksektir
* mor; yaraticilik, gizem, lux, premium, kibir gibi iceriklerde orta bilissek yuku vardir
* turuncu; sosyal etkilesimler, orta bilissek yuk
* pembe; rahatlatici ve duygusal iceriklerde, dusuk bilissel yuku vardir
* gri; arkaplan yazilari, goze batmamasi istenen ek bilgiler, onemi az seyler
* beyaz; varsayilan, duz yazilar, kenar boslugu ve araliklar icin kullanilir en az bilisel yuku vardir
* kahverengi; geleneksel konular, storytelling gibi unsurlar icin kullanilir dusuk yuku vardir

## Renklerin yazilimda kullanilmasi

* kirmizi - throw, exception, error
  * Yogun dikkat cekmek
* mavi - constant, static, fixed
  * Guvenilirlik ve degismeyeceginin hissini vermek
* yesil - ? string
* mor - if, else, import
  * Ozel ve rezerve edilmis kelimeler
* turuncu - functions, class
  * Sosyal etkilesim, gruplasmalar
* pembe - Pek tercih edilmez
* gri - comments, //, /\*\*
  * Gereksiz ve cok goze carpmasin
* beyaz - Kodun geneli bu renktedir, varsayilan renk
* kaverengi - deprecated veya gomulu package’lar

{% embed url="<https://marketplace.visualstudio.com/items?itemName=yemreak.mindease-vscode-theme>" %}

## Renklerin ve emojilerin etiketlemede kullanilmasi

* 🌱 mindset, 🏢 enterpreneur
* 🥗 health
* 👫 relationship, 📈 efficiency
* 🗣️ communication
* 💞 feeling
* 🔮 insight, 💎 fav

![](https://i.imgur.com/Grgevgg.png)

## Tavisyeler

* Yazinin burasina kadar geldiysen ve eger yazilim gelistirmeni de VS Code uzerinden yapiyorsan tema’ma bir goz atmani tavsiye ederim, tum buradaki teknikler kullanilmistir

{% embed url="<https://marketplace.visualstudio.com/items?itemName=yemreak.mindease-vscode-theme>" %}


# İçimizdeki eksiklik hissini tamamlamamak için disaridan bir şey aramak surdurele

thought, self awareness, self improvement, perspective, fav

![](https://i.imgur.com/wwRCQ4a.png)

19 Apr 2024 at 22:48:30

Jim Carrey'e ve diğer komedyenlere baktığımız zaman hayatın anlamının, anının tadını çıkarmak olduğundan bahsediyorlar. Hatta Jim Carrey, büyük başarılarına ulaştığımız o büyük ünvanların, başarının, paranin, saygının, içimizdeki o eksiklik hissiyatını tamamlamayacağını. Hatta bir konuşmasında sanırım Globe winner bir ödül almış. Orada şundan bahsediyor. İki kez bu ödülü aldım diyor. Normal bir insan değilim. İki kez bu ödülü almış bir insanın tarzında espri yapıyor. Ve aslında işte geçmişin hayallerine, gerçekleştirilene dair bir kısımdan bahsediyordu sanırım. Ve asıl hedefinin üçüncüsü olması, üçüncü kez bunu elde etmek olduğunu söylüyor. Tabi ironik bir şekilde, trajikomik bir şekilde söylüyor. Ve üçüncüye ulaştıktan sonra yeterli olduğunu, daha doğrusu yeterli olduğunu hissedileceğini ve bu anlamsız, acı dolu arayıştan kurtulabileceğini söylüyor. Aslında bu da şunu kullanmak istiyor, bu düşüncesinde. Yani bu kazandığı şey aslında onun eksikliğini tamamlayan bir durum değil. Ödüller, kazançlar, saygılar. Eksikliği tamamlayan duygular değiller. Bunlar eksikliğimizi tamamlayacağını düşündüğümüz şeyler aslında. Ve hayatımızı bunları elde etmeye çalışarak, daha doğrusu bir şeye sahip olduğumuz anda eksikliğimizden kurtulacağımızı düşünerek yaşamıyoruz. Çok mantıklı gelmiyor bana. Anlanma da gelmiyor. Çünkü düşündüğümüz zaman eksik bir düşünceye sahipsek içimizde ve bu materyallerle kendimizi doldurduğumuz zaman, bunları kaybettiğimiz zaman, kaybetmedebiliriz yaşarken ama kaybettiğimiz anda intihar etmeye çok meyilli kişilikler olacağız. Bütün değerimizi kaybetmiş olduğumuzu düşüneceğiz. Bu inanılmaz kötü bir şey. Hatta bazı şeflerde, bir tane şefi okumuştum. Sıfırdan Bire kitabındaydı sanırım, tam hatırlamıyorum. Ve şef şöyle diyor, bir yıldız kaybedersem intihar ederim tarzında bir konuşması var. Ve gerçekten yıldızını kaybettiği zaman intihar ediyor. Aslında bu durum çok net bir şekilde açıklıyor. Eksikliğini bu şeflikle tamamlaya çalışmış. Eksiklik hissiyatında alışsız. İnsan eksiktir demiyor. O öyle hissediyor. Ve burada tamamladığı şeyi kaybedince kendisini değerli hissedip intihar etmiş. İnanılmaz kötü bir şey. Böyle tamamlanılmaz eksiklik. Eksiklik diye bir şey yoktur aslında. Bu içsel bir durum.

{% file src="/files/mtp9tqE6TKRPSXrWleQF" %}

{% embed url="<https://prod-files-secure.s3.us-west-2.amazonaws.com/ee37cc61-925f-4001-b016-3854758f2639/3ed875aa-f06b-42d3-8133-a01a9c2aa173/yt-dlp8786.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI/20240419/us-west-2/s3/aws4_request&X-Amz-Date=20240419T195835Z&X-Amz-Expires=3600&X-Amz-Signature=06b028d2f019cf60b23509e3ce224630476c06b755ec8c0a53d39eb0b95110b2&X-Amz-SignedHeaders=host&x-id=GetObject>" fullWidth="false" %}
JimCarrey Golden Globe Winner
{% endembed %}

<<<<<<< HEAD

{% embed url="<https://prod-files-secure.s3.us-west-2.amazonaws.com/ee37cc61-925f-4001-b016-3854758f2639/874e4fbd-0c06-4715-96a7-a9393b756174/yt-dlp6213.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI/20240419/us-west-2/s3/aws4_request&X-Amz-Date=20240419T195835Z&X-Amz-Expires=3600&X-Amz-Signature=fddfdd147c771f6dc3ce90163ecf5661a329235a9dec1970654b14cfaa2cef92&X-Amz-SignedHeaders=host&x-id=GetObject>" %}

\======= ![yt-dlp8786.mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/ee37cc61-925f-4001-b016-3854758f2639/3ed875aa-f06b-42d3-8133-a01a9c2aa173/yt-dlp8786.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256\&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD\&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240421%2Fus-west-2%2Fs3%2Faws4_request\&X-Amz-Date=20240421T173113Z\&X-Amz-Expires=3600\&X-Amz-Signature=da8ea19dbaa49a135bec9f9a722866b2d5be5e2507cd7c10d6e8321b6f9911d3\&X-Amz-SignedHeaders=host\&x-id=GetObject)

![yt-dlp6213.mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/ee37cc61-925f-4001-b016-3854758f2639/874e4fbd-0c06-4715-96a7-a9393b756174/yt-dlp6213.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256\&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD\&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240421%2Fus-west-2%2Fs3%2Faws4_request\&X-Amz-Date=20240421T173113Z\&X-Amz-Expires=3600\&X-Amz-Signature=e5f27d41d0fb62f83e19d17a4a832c7ab94e1cee6ad53c298a3b783ef403f0f3\&X-Amz-SignedHeaders=host\&x-id=GetObject)

![yt-dlp637.mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/ee37cc61-925f-4001-b016-3854758f2639/08a94a1b-0a22-4d3b-9b0c-f540665c87b7/yt-dlp637.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256\&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD\&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240421%2Fus-west-2%2Fs3%2Faws4_request\&X-Amz-Date=20240421T173113Z\&X-Amz-Expires=3600\&X-Amz-Signature=158bcce08a11d7912afc18440bf425806ba6c7093f5899d5809a5346875ed5b1\&X-Amz-SignedHeaders=host\&x-id=GetObject)

> > > > > > > ee71dc1 (publish: İçimizdeki eksiklik hissini tamamlamamak için disaridan bir şey aramak surdurelebilir olmadığı gibi yarış haline sokacagindan yipraticidir)

{% embed url="<https://prod-files-secure.s3.us-west-2.amazonaws.com/ee37cc61-925f-4001-b016-3854758f2639/08a94a1b-0a22-4d3b-9b0c-f540665c87b7/yt-dlp637.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI/20240419/us-west-2/s3/aws4_request&X-Amz-Date=20240419T195835Z&X-Amz-Expires=3600&X-Amz-Signature=a7fa1de30d76ed165a75fb755746a8defee2eb6485189904191bcb87bff10177&X-Amz-SignedHeaders=host&x-id=GetObject>" %}


# İlişkinizin uzun süremeyeceğinin 12 sinyali


# Insanlar Neden Tek Bir Fikre Takili Kalirlar, Sabit Fikirli Olurlar

psychology

![](https://i.imgur.com/tHqALch.png)

Tek bir fikre takılıp kalan kişilerin bu durumdan etkilenmeleri, genellikle zihinsel esneklik eksikliği ve yoğun duygusal bağlılık gibi temel nedenlere dayanır

## Zihinsel Esneklik Eksikliği

Zihinsel esneklik, yeni bilgilere ve farklı bakış açılarına açık olma yeteneğidir. Eksikliği, kişilerin tek bir fikre sabitlenmesine neden olabilir.

* **Alışkanlık ve Rutinler:** Günlük hayatta aynı rutinleri ve alışkanlıkları sürdürme eğilimi.
  * **Konfor Alanı:** Bilinen ve alışılmış durumların dışına çıkmaktan kaçınma.
  * **Değişime Direnç:** Yeni fikirlere veya değişikliklere karşı direnç.
  * **Esnek Olmayan Düşünce Yapıları:** Katı ve esnek olmayan düşünce yapılarına sahip olma.
* **Kognitif Biyaslara Bağlılık:** Belirli düşünce kalıplarına ve önyargılara bağlı kalma.
  * **Onay Yanlılığı:** Sadece kendi görüşlerini destekleyen bilgilere odaklanma.
  * **Aşırı Genelleme:** Tek bir olayı veya deneyimi genel bir gerçek olarak algılama.
  * **Siyah-Beyaz Düşünme:** Her şeyi kesin ve mutlak terimlerle değerlendirme.

## Yoğun Duygusal Bağlılık

Bazı kişiler, belirli bir fikre duygusal olarak derinden bağlanır ve bu, onların fikirden vazgeçememesine yol açar.

* **Kendilik Değerinin Fikirle Özdeşleşmesi:** Kendi kimliklerini ve değerlerini bir fikirle özdeşleştirme.
  * **Kimlik Korkusu:** Fikirden vazgeçmenin, kişisel kimliği tehdit ettiği algısı.
  * **Benlik Saygısı Tehdidi:** Fikirden vazgeçmenin benlik saygısını zedeleyeceği düşüncesi.
  * **Öz-Değerlendirme Endişesi:** Başkaları tarafından nasıl değerlendirileceği konusunda endişe.
* **Duygusal Yatırım:** Fikre duygusal olarak yatırım yapma.
  * **Bağlılık ve Sadakat:** Fikre bağlılık ve sadakat duygusu.
  * **Kayıp Korkusu:** Fikirden vazgeçmenin bir kayıp yaratacağı düşüncesi.
  * **Duygusal Güvenlik:** Fikrin bireye duygusal güvenlik ve istikrar sağladığı inancı.


# Insanlarla iliski nasil kurulur? Guven nasil kurulur, nasil insanlarla anlasir

relationship, trust, psychology

![](https://i.imgur.com/6lcX3nB.png)

1. Empatiyi Öncelikle: İlk adım, karşı tarafın düşünce ve hislerini anlamak. Bu, “Seni anlıyorum” ve “Seni senden daha iyi anlıyorum” bölümlerini içerir. Burada kilit nokta, gerçekten empati kurarak karşındakinin bakış açısını anlamak.
2. Güvenilirlik İnşası: “Senin tarafındayım” ve “Seni anlamama rağmen sana zarar vermiyorum” ifadeleri, güvenilirliğin temelini oluşturur. Burada önemli olan, karşı tarafa zarar verme niyetinin olmadığını ve onların iyiliğini düşündüğünü göstermek.
3. Bilgi ve Uzmanlık Paylaşımı: “Senin gibiler hakkında bilgiliyim” kısmı, konu hakkında derin bilgine ve anlayışına vurgu yapar. Burada, karşı tarafa değerli bilgiler sunarak ve onların anlayabileceği şekilde açıklayarak güven oluşturursun.
4. Dinlemek ve Onaylamak: “Seni dinliyorum” adımı, karşı tarafın söylediklerini aktif olarak dinlemeyi ve onaylamayı içerir. Burada önemli olan, karşı tarafın hissettiği duyguları ve düşünceleri onaylayarak onları değerli hissettirmek.
5. Gelişim ve Destek: “Seni geliştirmeye çalışıyorum” adımı, karşı tarafın kişisel veya profesyonel gelişimine katkıda bulunmayı hedefler. Burada, onlara rehberlik ederek ve destekleyerek güven ilişkisini pekiştirmek önemli.
6. Sürekli İletişim ve Geri Bildirim: Bu stratejinin sürekli olarak uygulanması ve gerektiğinde ayarlamalar yapılması önemlidir. Karşılıklı iletişim ve düzenli geri bildirimler, güvenin sürekli gelişmesini sağlar.

## Farkinda Olmamiz Gerekenler

* Karşı tarafın duygularını öncelikle anlamak, güçlü bir temel oluşturur.
* Güvenilirlik oluşturmak, daha sonra paylaşılan bilgilerin daha iyi kabul edilmesini sağlar.
* Son adımlarda gelişim ve destek sunmak, güvenin sağlamlaşmasına yardımcı olur.
* Karşı taraf, başlangıçtaki empati ve güvenilirlik adımlarını yeterince değerlendirmezse, sonraki adımların etkisi azalabilir.
* Sürecin sonuna kadar sabırlı ve tutarlı olmak gerekebilir, bu da zaman alabilir.


# Neden acgozlu oluruz, acgozluluk nedir, nasil olusur?

psychology, emotion, greed

![](https://i.imgur.com/qAcqbFP.png)

Açgözlülük, genellikle tatminsizlik ve güvensizlik duygularından kaynaklanır. İnsanlar, eksikliklerini doldurmak veya kendilerini güvende hissetmek için maddi varlıklar veya başarılar peşinde koşabilirler. Açgözlülüğün avantajları kısa vadeli başarı ve maddi kazanç olabilir, ancak dezavantajları arasında ilişkilerde sorunlar, sürekli tatminsizlik ve stres yer alır.

Açgözlü olmayan insanlar genellikle içsel tatmine, öz farkındalığa ve yaşamın daha manevi veya duygusal yönlerine odaklanır. Kurtulmak isteyenler için önerilen bakış açısı, kendi iç dünyalarını keşfetmek, maneviyat veya yaratıcılık gibi tatmin edici uğraşlara yönelmek ve hayatın daha anlamlı yönlerine odaklanmaktır. Kendi iç motivasyonunu ve ruhsal doygunluğu bulmak, açgözlülüğün üstesinden gelmeye yardımcı olabilir.

## **Tatminsizlik**

1. **Tanım ve Bileşenler:** Tatminsizlik, mevcut durumdan veya elde edilenlerden memnun olmama durumudur. Temel bileşenleri arasında hayal kırıklığı, kıskançlık ve hırs yer alır.
2. **Nedenleri:**
   * **Beklenti-gerçeklik Uyuşmazlığı:** Kişinin beklentileri ile mevcut gerçeklik arasındaki fark. Matematiksel olarak, **`Beklenti - Gerçeklik = Tatminsizlik Derecesi`**.
   * **Karşılaştırmalar:** Sosyal karşılaştırmalar sonucu başkalarının daha iyi durumda olduğu algısı.
   * **Sürekli Değişen Hedefler:** Hedefler sürekli yükseldiğinde, elde edilenler yeterli görünmez.
3. **Matematiksel Modelleme:** Tatminsizlik, **`T(x) = Beklentiler - Elde Edilenler`** olarak modellenebilir, burada **`x`** zaman veya çaba miktarıdır.

## **Güvensizlik**

1. **Tanım ve Bileşenler:** Güvensizlik, başkalarına veya kendine olan güven eksikliğidir. Ana bileşenleri arasında korku, endişe ve şüphe bulunur.
2. **Nedenleri:**
   * **Olumsuz Deneyimler:** Geçmişte yaşanan olumsuz olaylar ve hayal kırıklıkları.
   * **Özsaygı Eksikliği:** Kendi yeteneklerine ve değerine dair şüpheler.
   * **Kontrolsüzlük Algısı:** Hayatın kontrolünün dışında olduğu hissi.
3. **Matematiksel Modelleme:** Güvensizlik, **`G(y) = Şüpheler + Kontrolsüzlük Algısı - Özsaygı`** olarak ifade edilebilir, burada **`y`** kişisel deneyimlerin ve çevresel faktörlerin bir fonksiyonudur.

## **Açgözlülük Bağlamında**

* **İlişkisel Dinamikler:** Açgözlülük, bu iki durumla beslenir. Tatminsizlik, daha fazlasını elde etme arzusunu tetiklerken; güvensizlik, elde edilenlerin yeterli olmadığı hissini güçlendirir.
* **Döngüsel Yapı:** Tatminsizlik ve güvensizlik, açgözlülüğü besler ve açgözlülük de bu duyguları artırır, bu bir döngüye yol açar.


# Nihai huzur yani kalici bir mutluluk icin dengeyi bulmak onemlidir

thought, self improvement, happiness

![](https://i.imgur.com/FCXLdd2.png)

## Kalici Mutluluga Nasil Ulasilir

![](https://i.imgur.com/CSDFzGV.png)

Nihai huzur ve tatmin, genellikle dışsal başarıların veya maddi kazançların ötesinde bulunur. İşte bu bağlamda dikkate alınması gereken bazı önemli noktalar:

1. **Dengeli Yaşam:** Maddi başarılar ve kariyer hedefleri önemli olabilir, ancak kişisel mutluluk ve huzur, yaşamın diğer yönleriyle - sosyal ilişkiler, hobi ve ilgi alanları, fiziksel ve zihinsel sağlık - dengeli bir şekilde birleştiğinde daha kolay ulaşılır.
2. **İçsel Tatmin:** İçsel tatmin ve kendini gerçekleştirme, maddi başarıdan daha kalıcı mutluluk kaynaklarıdır. Kişisel gelişim, yaratıcılık, sevdiklerinizle kaliteli zaman geçirmek ve hayatınızın anlamını bulmak, uzun vadede daha tatmin edici olabilir.
3. **Ait Olma ve Bağlantılar:** İnsan ilişkileri, sevgi ve ait olma hissi, huzur ve mutlulukta büyük bir rol oynar. Sağlam dostluklar, aile bağları ve romantik ilişkiler, hayatın en tatmin edici yönlerinden bazılarıdır.
4. **Kişisel Değerler ve Amaç:** Kişisel değerlerinize ve yaşam amacınıza uygun bir yaşam sürmek, derin bir tatmin duygusu sağlar. Kendi değerlerinizi ve tutkularınızı keşfetmek ve bunlara göre hareket etmek, maddi başarıdan daha anlamlı olabilir.
5. **Maddi Kazançların Rolü:** Maddi kaynaklar önemli olsa da, belirli bir noktanın ötesinde, ekstra maddi kazançlar mutluluğu orantılı olarak artırmaz. Temel ihtiyaçlar karşılandıktan sonra, insanların mutluluğu daha çok kişisel ilişkiler, kendini ifade etme ve içsel tatminle ilişkilidir.

Sonuç olarak, dengeli bir yaşam tarzı ve içsel tatmin, nihai huzuru bulmada kritik öneme sahiptir. Hayatın farklı yönlerine odaklanmak ve kişisel değerlerinize uygun yaşamak, maddi başarılardan daha derin ve kalıcı mutluluk sağlayabilir.

## Maslow'un İhtiyaçlar Hiyerarşisi

![](https://i.imgur.com/h9dEZnn.png)

Bu ihtiyaçlar, fizyolojik gereksinimlerden başlayarak kendini gerçekleştirme arzusuna kadar geniş bir yelpazeyi kapsar:

1. **Fizyolojik İhtiyaçlar:**
   * **Yemek, Su, Hava:** Hayatta kalmak için temel gereksinimler.
   * **Uyku:** Vücudun dinlenmesi ve onarımı için gerekli.
   * **Barınak:** Güvenlik ve korunma sağlar.
2. **Güvenlik İhtiyaçları:**
   * **Fiziksel Güvenlik:** Zarar görmeme ve sağlık.
   * **Maddi Güvenlik:** Finansal istikrar ve kaynaklara erişim.
   * **Sağlık ve İyi Olma:** Fiziksel ve zihinsel sağlık.
   * **Emniyet ve Düzen:** İstikrarlı bir yaşam ortamı.
3. **Sosyal İhtiyaçlar:**
   * **Aile ve Arkadaşlar:** Sosyal bağlantılar ve ait olma hissi.
   * **Sevgi ve Bağlantı:** Sevilmek ve başkalarıyla derin ilişkiler kurmak.
   * **Topluluk Hissi:** Gruplara ve topluluklara ait olma.
4. **Saygı İhtiyaçları:**
   * **Kendine Saygı:** Kendine güven ve öz-değer duygusu.
   * **Başkalarından Saygı:** Başkalarının takdiri ve onayı.
   * **Statü ve Başarı:** Mesleki başarı ve toplum içinde bir yer edinme.
5. **Kendini Gerçekleştirme İhtiyaçları:**
   * **Kişisel Potansiyelin Farkındalığı ve Gelişimi:** Kendi yeteneklerini ve potansiyelini geliştirme.
   * **Yaratıcılık:** Kendini ifade etme ve yaratıcı faaliyetler.
   * **Anlam ve Amaç:** Hayatın anlamını bulma ve bir amaç doğrultusunda yaşama.

Bu ihtiyaçların her biri, insanın fiziksel ve psikolojik sağlığı için önemlidir. Fizyolojik ve güvenlik ihtiyaçları temel yaşam gereksinimleri iken, sosyal, saygı ve kendini gerçekleştirme ihtiyaçları, bireyin psikolojik refahı ve mutluluğu için kritik öneme sahiptir. Bu ihtiyaçlar karşılandıkça, insanlar daha yüksek seviyedeki ihtiyaçlara yönelirler ve bu süreç bireysel farklılıklar gösterebilir.

## Daha Fazlasi icin Cabalamak Mantikli Mi

![](https://i.imgur.com/UKXyp6i.png)

1. **Kişisel Değerler ve Öncelikler:** Kararınız, kişisel değerlerinize ve hayattaki önceliklerinize bağlıdır. Eğer zenginlik ve maddi kazanç, kişisel mutluluğunuz ve yaşam kaliteniz için anahtar değilse, daha sakin bir yaşama dönmek mantıklı olabilir.
2. **Yeterlilik Duygusu:** Yeterlilik, insanların ne kadar kaynağa ihtiyaç duyduğunu belirleyen bir konsepttir. Eğer mevcut durumunuzda kendinizi yeterli ve tatmin olmuş hissediyorsanız, daha fazlasını arzulamak gereksiz olabilir.
3. **Stres ve Yaşam Kalitesi:** Daha fazla para kazanma çabası, genellikle daha fazla stres ve sorumluluk getirir. Eğer bu ekstra stres, yaşam kalitenizi olumsuz etkiliyorsa, daha az kazançla daha sakin bir yaşam sürmek daha mantıklı olabilir.
4. **Uzun Vadeli Mutluluk:** Araştırmalar, belli bir noktadan sonra maddi kazançların mutluluk üzerindeki etkisinin azaldığını gösteriyor. Eğer mevcut maddi durumunuz sizi mutlu ediyorsa, daha fazlasını kovalamak mutluluğunuzu artırmayabilir.
5. **Zaman ve Özgürlük:** Zaman ve özgürlük, para ile ölçülemeyen değerlerdir. Daha fazla para kazanma çabası, bu değerli kaynaklardan fedakarlık etmenizi gerektirebilir. Eğer zamanınızı ve özgürlüğünüzü daha yüksek değerli buluyorsanız, sakin bir yaşama dönmek daha mantıklı olabilir.

Sonuç olarak, bu tür bir karar, bireysel değerlere, yaşam tarzı tercihlerine ve kişisel mutluluk anlayışına bağlıdır. Herkesin mutluluğu ve tatmini farklı şeylerde bulması, bu tür kararların kişiye özgü ve subjektif olmasını sağlar.

## Dinlerin Bu Durum Icin Ogutleri Nasil?

![](https://i.imgur.com/ibtwkyy.png)

Kur'an ve diğer büyük dinler, insanların ruhsal ve duygusal ihtiyaçlarını karşılamak ve dengeli bir yaşam sürmek için çeşitli öğütler ve öneriler sunar. Bu öğretiler, genellikle ahlaki değerler, toplum içindeki ilişkiler, kişisel gelişim ve manevi tatmin üzerine odaklanır. İşte bazı ana hatları:

### İslam (Kur'an)

1. **Toplumsal Dayanışma ve Yardımlaşma:** İslam, zekat (zorunlu sadaka) ve sadaka (gönüllü hayır işleri) yoluyla toplumsal dayanışmayı ve ihtiyaç sahiplerine yardım etmeyi vurgular.
2. **Aile ve Toplum Bağları:** Aile birliğinin ve toplum içindeki ilişkilerin önemi, İslam'da büyük bir yer tutar. Akrabalarla ilişkileri sürdürmek ve komşulara iyi davranmak teşvik edilir.
3. **Manevi Gelişim:** Namaz, oruç gibi ibadetler ve kişisel düşünce, İslam'da manevi gelişimi ve iç huzuru teşvik eden unsurlardır.
4. **Ahlaki Değerler:** Dürüstlük, adalet, sabır, tevazu gibi ahlaki değerler Kur'an'da sıkça vurgulanır.

### Hristiyanlık

1. **Sevgi ve Bağışlama:** Hristiyanlık, sevgi, merhamet ve bağışlamanın önemini vurgular. İsa'nın öğretileri, sevgi ve bağışlamanın merkezinde yer alır.
2. **Toplumsal Hizmet:** Hristiyanlık, yoksullara ve ihtiyaç sahiplerine yardım etmeyi, toplumsal sorumluluk ve hizmeti teşvik eder.
3. **Manevi Uygulamalar:** Dua ve kilise ibadetleri, Hristiyanlıkta manevi gelişim ve toplulukla bağlantı kurmanın önemli yollarıdır.

### Budizm

1. **İçsel Huzur ve Meditasyon:** Budizm, meditasyon ve zihinsel disiplin yoluyla içsel huzur ve aydınlanmayı vurgular.
2. **Nefsi Aşma ve Bağlılıklardan Kurtulma:** Budizm, insanların acılarının nedeninin arzular ve bağlılıklar olduğunu öğretir ve bu bağlılıklardan kurtulmanın yollarını sunar.
3. **Ahimsa (Şiddetsizlik):** Budizm, tüm canlılara karşı şefkatli olmayı ve şiddetsizliği teşvik eder.

### Hinduizm

1. **Dharma (Ahlaki Yaşam):** Hinduizm, dharma veya ahlaki yaşam yoluyla kişisel ve toplumsal düzenin korunmasını vurgular.
2. **Karma ve Yeniden Doğuş:** İyi davranışların iyi sonuçlar getireceği ve kötü davranışların kötü sonuçlara yol açacağı öğretilir.
3. **Yoga ve Meditasyon:** Manevi gelişim için yoga ve meditasyon önemlidir.

Her din, kendi özgün öğretileri ve uygulamaları ile insanların yaşamlarında dengeli ve anlamlı bir yol sunar. Bu öğretiler, bireylerin manevi, ahlaki ve toplumsal ihtiyaçlarını karşılamalarına yardımcı olurken, aynı zamanda içsel huzur ve tatmine ulaşmalarına da rehberlik eder.

## Maslow ile Dinleri Birlestirelim

![](https://i.imgur.com/g27TL6S.png)

Maslow'un İhtiyaçlar Hiyerarşisi ile büyük dinlerin öğretilerini birleştirmek, nasıl farklı manevi ve ahlaki öğretilerin insan ihtiyaçlarının farklı seviyelerini karşıladığını göstermek için ilginç bir yol olabilir. İşte her ihtiyaç seviyesi için ilgili dini öğretiler:

### 1. Fizyolojik İhtiyaçlar

* **İslam:** İslam'da sadaka ve zekat, ihtiyaç sahiplerine yiyecek, barınak ve temel ihtiyaçlar sağlama amacını taşır.
* **Hristiyanlık:** Hristiyanlıkta, yoksullara yardım etmek ve onların temel ihtiyaçlarını karşılamak önemlidir.
* **Hinduizm ve Budizm:** Her ikisi de sadaka ve cömertliği, temel ihtiyaçların karşılanması için önemli bir ahlaki görev olarak görür.

### 2. Güvenlik İhtiyaçları

* **İslam:** İslam, sosyal ve ekonomik güvenlik için adil bir toplum düzeninin önemini vurgular.
* **Hristiyanlık:** Hristiyanlık, fiziksel ve ruhsal güvenliği sağlamak için Tanrı'ya güvenmeyi öğütler.
* **Budizm ve Hinduizm:** Her ikisi de karma ve dharma kavramlarıyla, iyi davranışların uzun vadeli güvenlik ve düzen getireceğini öğretir.

### 3. Sosyal İhtiyaçlar

* **İslam:** İslam, aile birliğini, toplumsal ilişkileri ve karşılıklı saygıyı teşvik eder.
* **Hristiyanlık:** Hristiyanlık, sevgi, bağışlama ve topluluk içindeki birlik ve beraberliği vurgular.
* **Budizm ve Hinduizm:** Her ikisi de toplum içinde uyum ve ilişkilerin önemini, şefkat ve anlayışla vurgular.

### 4. Saygı İhtiyaçları

* **İslam:** İslam, bireysel başarıların yanı sıra toplum içinde iyi bir üne ve saygıya sahip olmayı teşvik eder.
* **Hristiyanlık:** Hristiyanlık, kişisel değerler ve ahlaki bütünlük üzerinden saygı kazanmayı öğütler.
* **Budizm ve Hinduizm:** Her ikisi de kişisel erdemlerin ve ahlaki yaşamın, saygı ve değer görmenin anahtarı olduğunu vurgular.

### 5. Kendini Gerçekleştirme İhtiyaçları

* **İslam:** İslam, kişisel gelişimi, eğitimi ve manevi mükemmelliği teşvik eder.
* **Hristiyanlık:** Hristiyanlık, Tanrı'nın yarattığı potansiyeli tam olarak kullanmayı ve bireyin kendini gerçekleştirmesini öğütler.
* **Budizm:** Budizm, meditasyon ve zihinsel disiplin yoluyla kişisel aydınlanma ve içsel huzura ulaşmayı vurgular.
* **Hinduizm:** Hinduizm, yoga ve meditasyon aracılığıyla kişisel gelişimi ve ruhsal bilinci teşvik eder.

Her bir dinin öğretileri, Maslow'un İhtiyaçlar Hiyerarşisi'nin farklı seviyelerindeki ihtiyaçları karşılayacak şekilde farklı yönleri vurgular. Bu, manevi ve ahlaki öğretilerin insanların temel ihtiyaçlarından en yüksek düzeydeki kendini gerçekleştirme ihtiyaçlarına kadar nasıl rehberlik edebileceğini gösterir. Bu birle

ştirme, dinlerin sadece manevi ve ahlaki boyutları değil, aynı zamanda insanların günlük yaşamlarında karşılaştıkları pratik ve psikolojik ihtiyaçlarla nasıl ilişkili olduğunu da ortaya koyar.


# Öğrendiklerimizi Neden Paylaşmalıyız? Kişisel Yolculukta Özgünlüğün ve Paylaşı

self improvement, productivity, mindfulness, media, culture

## Öğrendiklerimizi Neden Paylaşmalıyız? Kişisel Yolculukta Özgünlüğün ve Paylaşımın Gücü

![](https://i.imgur.com/ulXvWrK.png)

## **İçeriğin Anahtar Noktaları**

1. **Zihinsel Karmaşayı Paylaşarak Aşma:** Yaptığın işi paylaşarak zihnindeki karmaşık düşünceleri birleştirip, kişisel farkındalığını artır.
2. **Değerinin Bilincinde Olma:** Sen değerlisin, değil mi? Ancak, bunu kim biliyor? Değerini belirt ve bilgini paylaş.
3. **Benzer Yolda Olanlarla Bağ Kurma:** Yolculuğunu paylaşarak, seninle benzer yolda olanlarla karşılaşma ihtimalini artır.
4. **Özgünlüğün Gücü:** Özgünlüğün doğal filtresi olarak gerçek kişiliğini paylaşmanın avantajları.
5. **Yolculuktaki Endişeler ve Çözümler:** Bu süreçteki benim endişelerim ve onları aşma yollarım

***

![](https://i.imgur.com/y9khHN7.png)

## Yaptığın işi paylaşarak zihnindeki karmaşık düşünceleri birleştirip, kişisel farkındalığını artırıyorsun

* Bu, sana **"entelektüel hazzı"** yaşatır ve hayattaki yerini daha iyi anlamana yardımcı olur.
* Bilgini ve düşüncelerini paylaşmazsan, hayatta **hangi konumda olduğunu, ne kadar iyi veya kötü olduğunu** anlayamazsın.

{% embed url="<https://www.youtube.com/shorts/LAXvHU_f5D4>" %}

* Tüm sıfatlar subjektiftir ve karşılaştırma ile olur; sen bildiğini paylaşmalı ve karşılaştırma yapılması için imkan sağlamalısın.
* Bilinmeyen, değere sahip olmanın hiçbir katkısı yoktur. Anlamını bilmediğin bir mücevher, sadece taştan ibarettir.
* İnsanlar senin konumunu anlayıp sana uygun teklifler sunacaktır.
* Kendi konumunu anlayıp, neleri yanlış bildiğini, nelerde yetersiz olduğunu ve nelerde iyi olduğunu fark edeceksin

{% embed url="<https://www.youtube.com/shorts/VD5NBABSn8k>" %}

### Çevremizdeki her şey insanlar tarafından tasarlandı. Bu insanlar senden daha bilgili veya başarılı olmayabilirler. Belki de sandığın hedefe ulaşmak için düşündüğün kadar bilgiye ihtiyacın yoktur

* Çok düşünen insanların takıldığı bir engel, bir işe başlayamama sebeplerinin sadece yeterince bilgileri olmadığını düşünmeleridir. Aslında, aksiyona geçme motivasyonunun eksikliğinin olmaması ihtimalini göz ardı ederler
* Bazı konularda ön bilgiden sonra sahada olman gerekir ki kendini geliştirebilesin
* Bisiklet sürmesini bir kitaptan tam olarak öğrenemezsin

{% embed url="<https://www.youtube.com/watch?v=kYfNvmF0Bqw>" %}

***

![](https://i.imgur.com/ZUPo8wP.png)

## **Sen değerlisin, değil mi?** Ancak, bunu kim biliyor?

* Hayatta sınırlı kaynak olan zamanını, çevrendekilerin saygısı olmadan korumak zordur
* Romantik biriysen, "kimsenin benim değerimi bilmesine gerek yok" diyebilirsin. Ancak gerçeklikten kopmamalı ve rasyonel bir şekilde yaklaşman gerektiğinin farkında olmalısın
* Hayatına en çok etkisi bulunan insanların senin değerinin farkında olması gerekir
* Değerinin bilinmesi, öngöremeyeceğin tekliflerin sana yapılmasına olanak sağlar
* Değerini belirt ki, sana faydası olabilecek fırsatları veya durumları bulduklarında seninle paylaşsınlar
* Bilgini belirt ki, senin bilginle çözülebilecek sorunları olduklarında seninle iletişim kursunlar ve sana ne sormaları gerektiğinin bilincinde olsunlar
* Eğer değerini ve bilgini belirtmezsen, insanların sana olan değeri ve saygısı eksik kalabilir. Bu da onların sana olan yaklaşımını etkileyebilir

{% embed url="<https://www.youtube.com/watch?v=ysTE8jhWrdQ>" %}

***

![](https://i.imgur.com/PWVfAx2.png)

## Yolculuğunu paylaşmak seninle benzer yolda olanlarla karşılaşma ihtimalini artırır

* Öğrendikçe yalnızlaşırsın, bu yüzden öğrenirken paylaş ki seninle birlikte gelişenlerle tanışma şansın olsun, ileride bunu bulması zor olabilir
* Bilgilerimizi arkadaşlarımızla veya çevremizdekilerle paylaşarak yeni kişilerle tanışıyoruz, değil mi? Ancak, arkadaş çevremiz çok kısıtlıdır. İnternette paylaştığımızda kalıcı bir değer üretiyoruz. Bu değer, biz uyurken bile varlığını koruyor ve yeni insanlara ulaşıyor. Eğer içerik, kişinin ilgisini çekerse, bize beklenmedik bir zamanda ulaşıyorlar
* Aslında hedef kitleni küçük bir semtten, dünyaya açıyorsun ve beklenmedik tesadüflerin kapısını aralıyorsun
* Yolculuğunda benzer seviyede olan insanlarla duygusal bağ kurma ihtimalin daha yüksektir. Öğrenmeye çalıştığın konular benzerdir ve kolayca bağ kurabilirsiniz. İnternet üzerinden paylaştığın içeriklerle en yakın dostunu, hatta eşini dahi bulabilirsin.
  * Yalnızlık kaygısına bir nebze olsun çözüm umudu da sağlıyor.

### “Yüksek başarının kötü yanı, başlangıçta onu nasıl yaptığını unutursun.” Gerçekten gerek var mı? Aslında senin için olmayabilir. Geçmişinden ders çıkar ama detayına kafa yorma.

* Diğer insanlar sana nasıl başladın, nasıl yaptın gibi sorular soracaktır. Sürekli olarak bu soruları yanıtlamak yorucudur.
* Gelişirken, nasıl geliştiğini kaydet ve paylaş. “Tüm yolculuğum kayıt altında, oradan bakabilirsiniz” diyebilirsin.
* Unutma, sınırlı olan ve artırılması mümkün olmayan şey zamandır ve bunu her zaman korumalısın.

### Anlık başarı yerine, senin büyümeni ve gelişmeni görenlerle bağ kurma ihtimalin daha yüksektir.

* Bu durumu, bir çocuğun elinizde büyümesi gibi düşünebilirsiniz.
* Çabanın ortada olması sana olan saygıyı ve insanlara dokunma ihtimalini de artırır.
* İnançlı birisiysen, peygamberlerin neden sıradan insanlar olduğuna kafa yorabilirsin. Bu da bağ kurmayı artırmak için bir sebeptir.

{% embed url="<https://youtu.be/vyVpRiqOvt4?t=362>" %}

***

![](https://i.imgur.com/FgFiL7P.png)

## Özgünlüğün Doğal Filtresi: Gerçek Seni Paylaşmanın Gücü

### Paylaşımlarında, insanların ilgisini çekmek için farklı bir kişiliğe bürünmek yerine zaten olduğun ve ilerlediğin kişilikten ödün verme.

* Bu en doğal ve etik bir filtrelemedir aslında.
* Kendini açıklayarak sadece seni değerli bulan insanlar seninle ilgilenecek ve sana ulaşmaya çalışacaktır.
* Senin değerini fark etmeyenler zaten bir çaba göstermeyecek ve hem vaktine, hem odaklarına hem de değerlerine zarar veremeyecekler.

### İlerleyişinden ve yolculuğundan bahset.

* Neyle uğraşıyorsan, neyi umursuyorsan onu paylaş.
* Paylaşmak için öğrenme veya yazma; zaten öğrenmekte olduğun, yazdığın ve sadece yararlı bulduğun şeyleri paylaş.

### Geçmişte yaptığın eylemleri paylaşmakla vakit kaybetme.

* Borsadakiler bilir kaçan fırsat kovalanmaz, ve fırsat her zaman vardır.
* Aynı şekilde sen de her zaman yeni şeyler öğreneceksin, eskiyi bırak.
* Yeni öğrendiklerini paylaşmak eskiyi toparlamaktan daha çok motive edecektir seni, ayrıca öğrendiklerini de pekiştireceksin.

### Yazdıkların veya ilgilendiklerinle zaten bir sürü içerik varsa yine de yapmaya devam et.

* Asıl önceliğin **daha iyisini üretmek değil, asıl önceliğin daha iyisinin bilgisine sahip olabilmek**, daha iyi sen olabilmek.
* Yazmanın öncelikli amacı, kendi fikirlerini somutlaştırmak ve görselleştirmek.
* Bir konuyu paylaşabilir hale getirmek için ona hakim olman ve detaylarını bilmen gerekiyor, e zaten sen de paylaşma sürecine soktuğunda kendini bunların her birindeki farkındalığın artıyor aslında kendini geliştirmiş oluyorsun.
* Paylaşması, zaten elinde olanları derleyip aktarmakla ilgilidir.

***

![](https://i.imgur.com/vSw2bA5.png)

## Bu Süreçteki Endişelerim ve Onları Aşma Yollarım

### **Odak Kaybı ve Sürekli Sorulan Sorular:** Ben meraklı birisiyim, problem gördükten sonra onu çözmeye kafa yormak beni heyecanlandırıyor. Bu da odakımın çok kolay dağılmasına sebep oluyor.

* Sana sürekli olarak sorulan konulara yönelik hepsini cevaplayan bir içerik yazarsın ve bu sorunun üstesinden gelir, benzer soruları soranları içeriklerine yönlendirirsin.
* Ek olarak yapay zeka çağındayız, bilgilerini ona öğretebilir, sana sorulacak soruları senin bilgilerine göre cevaplamasını sağlayabilirsin.
* Paylaşmayı bırakmak yerine, odaklanmayı öğrenmeye çalış. Bununla alakalı içerikler oku, hatta bu öğrendiklerini yine paylaş. Kolay olmasını dilemek yerine, daha güçlü olmayı dile.

{% embed url="<https://www.youtube.com/shorts/D9WsqxeWT7o>" %}

### **Zaten Hallolmuş Konularda Soruların Gelmesi:** Zaten hallettiğim veya yolculuğumu tamamladığım konularda bana soruların sorulması, odakımın ve vaktimin kaybedilmesi.

* Bunun çözümü aslında, yazdığımız yazıların ve içeriklerin diğer insanlara yönlendirilmesi.
* Baştan üretmekle kendi vaktimizi değerini kaybetmek yerine, zaten üretmiş olduklarımızı insanlara yönlendirerek, zamanımızı korurken onların meraklarını doyurmuş oluyoruz.

### **Fikirlerimin Değişmesi Endişesi:** Ya yazdıklarım hakkındaki fikirlerim değişirse, eskisi gibi düşünmezsem?

* Bu çok normal bir durum, insanız ve her gün yeni şeyler öğreniyoruz. Yanlış bilme olasılığımız çok yüksek.
* Yazdığımız yazılar, o anki düşüncelerimizi aktaran eserlerdir ve fikrimiz değiştiğinde, o gün yeni fikirlerimizi ifade ederiz, eskileri alıntılarız.
* Eskileri sürekli olarak düzeltmeye çalışmak da motivasyonumu düşürebilir, o yüzden gelişimimizi yazıya dökmek önemlidir. Süreci gören insanlar fikirlerimizdeki değişiklikleri de göreceklerdir.

***

![](https://i.imgur.com/xLdLeUU.png)


# Psychological Effects of Styles and Colors in Contents

design, psychology, style, vs code, color, psychology, style, design

## Psychological Effects of Styles and Colors in Contents

![](https://i.imgur.com/6aPx36k.png)

### Usage of text styles

* *italic*; should be used for less important data, cognitive load is low
* **bold**; used to highlight important parts and attract attention, cognitive load is high
* `code`; used for formulas and codes
* ~~strikethrough~~; used for correcting mistakes
* “Quotes” should be preferred for words we are not sure of
* Underlined; generally used with **bold** for the most important texts

## Header; used for grouping and headers

### Psychological effects of colors

* red; used in important, desired and high danger situations, cognitive load is high
  * Suitable for topics such as Error, love
* blue; preferred for information, trust and tranquility, cognitive load is very low
  * Suitable for topics such as Information, science
* green; used in growth, health, environment, balance, idea presentation situations, cognitive load is normal
  * growth, ecosystem, nature, health, conversation
* yellow; used to attract attention, worry, express, cognitive load is high
* purple; medium cognitive load in creativity, mystery, lux, premium, arrogance content
* orange; social interactions, medium cognitive load
* pink; soothing and emotional content, low cognitive load
* gray; background texts, additional information that should not stand out, less important things
* white; default, plain texts, used for margins and gaps, least cognitive load
* brown; used for traditional topics, storytelling elements, low load

### Use of colors in software

* red - throw, exception, error
  * Intense attention
* blue - constant, static, fixed
  * Reliability and the feeling that it will not change
* green - ? string
* purple - if, else, import
  * Special and reserved words
* orange - functions, class
  * Social interaction, groupings
* pink - Not preferred much
* grey - comments, //, /\*\*
  * Unnecessary and should not stand out too much
* white - Main part of the code is in this color, default color
* brown - deprecated or embedded packages

### Use of colors and emojis in tagging

* 🌱 mindset, 🏢 enterpreneur
* 🥗 health
* 👫 relationship, 📈 efficiency
* 🗣️ communication
* 💞 feeling
* 🔮 insight, 💎 fav

![](https://i.imgur.com/8fSaHps.png)

### Suggestions

* If you've come this far in the text and if you're also developing software on VS Code, I recommend you check out my theme, all these techniques are used

{% embed url="<https://marketplace.visualstudio.com/manage/publishers/yemreak>" %}


# The Diary of a CEO - Steven Bartlett

self improvement

![](https://i.imgur.com/0RQa1X0.png)

{% embed url="<https://www.linkedin.com/pulse/kitap-özeti-diary-ceo-bir-ceonun-günlüğü-steven-murat-gümrükçü-i1wqf/?originalSubdomain=tr>" %}


# Why Do Children Watch the Same Video or TV Show Over and Over?

![1702342.png](https://i.imgur.com/uBm6Lvz.png)

![duYZA20.jpg](https://i.imgur.com/duYZA20.jpg)

### **Routine and Predictability**

Children are inclined toward routines that make them feel safe and that they can understand. Watching the same thing over and over provides them with this predictability and routine.

### **Learning Process**

Children can learn new concepts and words by repeatedly watching the same thing. With each viewing, they may pick up on different details and deepen their understanding.

### **Sense of Control**

For children, watching something over and over can serve as a sort of control mechanism. Living in a world controlled largely by adults, children may feel more in control by repeatedly viewing the same content.

### **Pleasure and Entertainment**

Simply put, children may enjoy experiencing things they like over and over, just as an adult may enjoy listening to a favorite song multiple times.

### **Emotional Connection**

Children may form an emotional attachment to the characters or stories they watch. This attachment can motivate them to watch the same content repeatedly.

### **Simplicity and Meaning**

A child’s brain may not be fully developed enough to understand complex stories and themes, so they might prefer to watch simpler, more understandable stories multiple times.

### **Social Factors**

If a piece of content or character is popular, children may watch it multiple times to also participate in this popularity within a social context.

## **Connection Between Sense of Control and Repeatedly Watching a Video or Program**

Children, being in the growing phase and trying to understand their surroundings, usually don't have a lot of control in the adult world. For instance, when they eat, sleep, or go somewhere is often determined by their parents or caregivers. In such an environment, finding something they can control can be comforting.

This is where the habit of "re-watching" comes into play. Watching a video or TV show multiple times provides children with a certain predictability and, therefore, a sense of control. They know what will happen, what each character will do, and how the story will end. This knowledge provides them with a feeling of control in a world where many things are determined externally. Repeatedly watching the same content gives them this sense of control, and hence, they may gravitate toward such content.

This creates consistency and stability in the child’s world, which are generally crucial factors for healthy development. So, if a child is watching something repeatedly, it could mean that they are fulfilling a need for control in some way.


# Why Should We Share What We Learn? The Power of Authenticity and Sharing in Pe

self improvement, productivity, mindfulness, media, culture

## Why Should We Share What We Learn? The Power of Authenticity and Sharing in Personal Journeys

![](https://i.imgur.com/nJiCTrQ.png)

{% embed url="<https://medium.yemreak.com/why-should-we-share-what-we-learn-the-power-of-authenticity-and-sharing-in-personal-journeys-5274f0f34a58>" %}

## **Key Points of the Content**

1. **Overcoming Mental Clutter Through Sharing:** Increase your personal awareness by sharing your work and consolidating complex thoughts in your mind.
2. **Being Aware of Your Worth:** You are valuable, aren't you? But who knows that? Express your worth and share your knowledge.
3. **Connecting with Those on a Similar Path:** By sharing your journey, you increase the chance of encountering others on a similar path.
4. **The Power of Authenticity:** The benefits of sharing your true self as the natural filter of authenticity.
5. **Concerns and Solutions in the Journey:** My concerns during this process and ways to overcome them.

***

![](https://i.imgur.com/J27ecIb.png)

## Sharing your work enhances your personal awareness

* This provides an **"intellectual pleasure"** and helps you better understand your place in life.
* If you don't share your knowledge and thoughts, you won't understand **where you stand in life, how good or bad you are**.
* All adjectives are subjective and happen through encounters; you should share what you know and provide opportunities for comparison.
* The unknown contributes nothing to value. A gem whose meaning you don't understand is just a stone.
* People will recognize your position and offer you suitable opportunities.
* You will realize your position, what you misunderstand, where you are lacking, and where you excel.

{% embed url="<https://www.youtube.com/shorts/VD5NBABSn8k>" %}

### Everything around us is designed by humans. These people might not be more knowledgeable or successful than you. Perhaps you don't need as much knowledge as you think to reach your perceived goals.

* Over-thinkers often believe they lack the knowledge to start. They overlook the possibility of lacking motivation to take action.
* After some preliminary knowledge, you need to be on the field to improve.
* You can't fully learn to ride a bicycle from a book.

{% embed url="<https://www.youtube.com/watch?v=kYfNvmF0Bqw>" %}

***

![](https://i.imgur.com/7JQ3UL3.png)

## **You are valuable, right?** But who knows that?

* Protecting your limited resource, time, without respect from others is challenging.
* If you're romantic, you might say, "no one needs to know my value." But stay grounded and approach things rationally.
* People who impact your life most should recognize your value.
* Making your worth known opens doors to unexpected offers.
* Declare your value so people share opportunities or situations beneficial to you.
* Express your knowledge so when people have problems solvable by your expertise, they'll know to contact you.
* If you don't express your value and knowledge, people might undervalue and disrespect you.

{% embed url="<https://www.youtube.com/watch?v=ysTE8jhWrdQ>" %}

***

![](https://i.imgur.com/BwMLu1T.png)

## Sharing your journey increases the chance of encountering those on a similar path

* Learning can be isolating, so share while you learn to meet peers, which might be hard to find later.
* We meet new people by sharing knowledge with friends or acquaintances. Sharing online creates lasting value, reaching people even when you sleep. If content interests someone, they might contact you unexpectedly.
* You expand your target audience from a small neighborhood to the world, inviting serendipity.
* You're more likely to emotionally connect with peers on your journey. You can share similar topics and connect easily. Online content might even help you find close friends or partners.
* It also offers a glimmer of hope against feelings of loneliness.

### "The downside of high success is that you forget how you started." Do you really need it? Maybe not for you. Learn from the past but don't dwell on the details.

* People will ask questions like how you started or how you did it. Constantly answering these is tiring.
* Record and share how you progress. You can say, "My entire journey is documented; you can check it out."
* Remember, time is limited and irreplaceable, so always protect it.

### You're more likely to connect with those watching you grow and develop.

* Consider it like watching a child grow in your hands.
* Exposing your effort increases respect and the chance to touch lives.
* If you're religious, consider why prophets were ordinary people. It's another way to enhance connections.

{% embed url="<https://youtu.be/vyVpRiqOvt4?t=362>" %}

***

![](https://i.imgur.com/v5ypCKA.png)

## The Natural Filter of Authenticity: The Power of Sharing the Real You

### In your posts, instead of adopting a different personality to attract attention, stay true to who you are and the progress you're making.

* This is actually a natural and ethical filtration.
* By being transparent, only those who value you will engage and reach out.
* Those who don't recognize your worth won't make an effort, ensuring they won't waste your time, focus, or values.

### Talk about your progress and journey

* Share what you care about and are passionate about.
* Don't learn or write just to share; share what you are already learning and writing, and what you find useful.

### Don't waste time sharing past actions.

* As they say in the stock market, don't chase missed opportunities; there's always another one.
* You'll always learn new things, so let go of the past.
* Sharing new learnings will motivate you more than revisiting old ones.

### Even if there's already a lot of content on what you write or are interested in, keep doing it.

* Your main priority **isn't to produce better but to possess better knowledge**, to be a better you.
* The primary purpose of writing is to materialize and visualize your thoughts.
* To share a topic, you need to master it and know the details. By putting yourself in the sharing process, you actually enhance your awareness, effectively self-improving.
* Sharing is about consolidating and conveying what you already have.

***

![](https://i.imgur.com/80uCKWs.png)

## My Concerns in This Process and Ways to Overcome Them

### **Loss of Focus and Frequently Asked Questions:** I'm curious, and solving problems excites me, leading to a loss of focus.

* Write content that answers frequently asked questions, then direct inquirers there.
* We're in the AI era; you can teach AI your knowledge to answer questions based on your info.
* Instead of stopping sharing, learn to focus. Read related content, and even share what you learn. Instead of wishing it were easier, wish you were stronger.

{% embed url="<https://www.youtube.com/shorts/D9WsqxeWT7o>" %}

### **Receiving Questions on Resolved Issues:** Getting questions on topics I've already addressed or completed wastes my focus and time.

* The solution is directing people to our existing content.
* Instead of recreating content and potentially losing value, guide people to what you've already produced.

### **Fear of Changing My Opinions:** What if my views on what I write change, and I no longer agree with my past writings?

* This is normal; we're human and learn new things daily. The likelihood of being wrong is high.
* Our writings express our thoughts at that moment. If our views change, we express our new ideas another day and cite our old ones.
* Constantly trying to correct past writings can diminish my motivation, so it's essential to document our progress. People who observe the process will also notice the changes in our ideas.

***

![](https://i.imgur.com/IIfaOjm.png)


# Yalnizlik

lonely, self improvement, emotion, loneliness, social interaction, personal development

![](https://i.imgur.com/WNC0K4y.png)

## Neden Boyle Bir His Var?

* Sosyal baglarin tesvik eder ve toplum icinde isbirligi yapma gereksinimi olusturur, bu sayede toplum olusur
* Insanlarin gruplasmasi ve toplumsal duzen daha hizli ilerlemeyi ve etraftaki duzene karsi daha fazla guveni sagliyor
* Cogalma ve soyun devami icin de gerekli olan bir duygu
* Kendimize odaklanmamizi ve kendimizi de kesfetmemizi saglayan bir his

## Olmasa Nolurdu?

* Insanlarin arasindaki baglarin guclu kalabilmesi icin gerekli motivayon eksik olurdu
* Empatik baglar zayiflayabilir ve toplumun temeli sarsilabilirdi
* Kisisel gelisisimiz aksayabilir kendimizi odaklanmada zorluk yasayabilirdik

## Nasil Olusuyor?

* Azalan sosyal etkilesim ve iliski kalitelerinde dusus
* Onemli sosyal rollerin veya aliskanliklarin kaybi, (issizlik, tasinma vs)
* Dusuk oz saygi ve kendini yetersiz gormek
* Sosyal anksiyete veya diger psikolojik engeller
* Uzak mesafeler ve ulasim nedeniyle izolasyon
* Kulturel ve dil engelleri
* Dijital iletisimin yuz yuze etkilesimleri azaltmasi
* Sosyal medya kullaniminin paradoksal bir yalnizlik hissine yol acmasi
* Yaslanma ve emeklilik
* Aile yapisindaki degisimler (cocuklarin evden ayrilmasi, bosanma vs)
* Yoksulluk ve sosyal dislanma

## Yalnizlik Neyin Sinyalini Veriyor Bize

* Sosyal etkilesim ve bag kur
* Kendini ve sosyal iliskilerini gozden gecir, yanlis yaptigin seyler var
* Diger insanlar da benzer duygular yasiyorlar, onlarin ve kendi duygularinin farkina var, empatini gelistir
* Iliskilerinde ve etkilesimlerinde uyumlu olmayi ogren
* Kisisel hobilerine ve ilgi alanlarina odaklan, yeterince olmayabilir

## Yalnizligi En Etkili Sekilde Kullanmak

* Kendi duygularina ve hissettiklerine odaklan, sonra cevrendekilerin hissettikleri duygulara, bu sayede duygulari anlamanin ve empatinin verdigi gucu hisset
* Gecmisteki hatalarini ve davranislarini, gelecek planlarini yeniden gozden gecir, dersler cikar
* Kisisel ilgi alanlarina ve hobilerine bak, bu surecte sana en cok enerji veren ve toparlanmani saglayan konular nedir, belki de gormezden kacirdigin bir yetenegin var
* Yalnizlik yaraticilik icin zengin bir zemin saglar. Yazi, muzik, sanat vb yaratici aktivitelerle yalnizligini ve hislerini esere donustur ve rahatla. Sanatcilarin bu isi yapmasindaki bir sebep de budur aslinda
* Yalnizlik hissi sayesinde, kendini gelistirmek istedigin alandaki bir kursa, etkinlige veya sosyal sorumluluk projelerine atilabilir ve konfor alanini daha rahat kirabilirsin


# Android


# Çalışma Yolu

Android için belirlediğim çalışma yolları ve adımları (👨‍🔬 deneysel)

## 🙋‍♂️ Selam

* 👨‍🔬 Bu alan henüz deneysel aşamadadır
* 👷‍♂️ Kendim çalışırken izlediğim ve aldığım notları barındırır
* 💁‍♂️ Geri dönüşlerle bu yolun iyileştirilmesine katkıda bulunabilirsin

{% hint style="info" %}
‍🚀 Android'in belirlediği yola [Android Developer Fundamentals (Version 2) — Concepts](https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/) üzerinden bakabilirsin
{% endhint %}

## 👨‍🏫 Ders 1

🧱 Android hakkında temel bilgiler ve android hiyerarşisini tanıma

* [📃 Activity ve Intent'ler](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/giris/activity-ve-intentler.md)
* [💫 Activity Yaşam Döngüsü](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/giris/activity-yasam-doenguesue.md)
* [🏹 Implicit intents](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/giris/implicit-intents.md)
* [🏁 Activity launch modes](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/giris/activity-launch-modes.md)

## 👨‍🏫 Ders 2

✨ Android üzerinde temel işlemlerden izin alma ve UI oluşturma

* [👮‍♂️ İzinlerin Yönetimi](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/temel/izinlerin-yoenetimi.md)
* [🧐 Component İsimleri](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/gui/component-isimleri.md)
* [🍱 Menu](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/gui/menu.md)
* [🍱 Fragment](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/gui/fragment/README.md)

{% hint style="info" %}
‍🧙‍♂ Detaylı bilgi için[ Unit 2: User experience](https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-2-user-experience/lesson-4-user-interaction/4-1-c-buttons-and-clickable-images/4-1-c-buttons-and-clickable-images.html) alanına bakabilirsin.
{% endhint %}

## 👨‍🏫 Ders 3

🚧 Yorucu işlemler için arka planda çalışma

* [💫 Asenkron İşlemler](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/arkaplan/asynctask-ve-asynctaskloader/README.md)
* [🌍 İnternete Bağlanma](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/haberlesme/internete-baglanma.md)
* [💌 HTTP İstekleri](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/haberlesme/http-istekleri.md)
* [⏬ Dosya İndirme](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/haberlesme/dosya-indirme.md)

## 👨‍🏫 Ders 4

🔸 Uygulamalar arasında haberleşme ve kullanıcı bildirimleri

* [📢 Broadcast](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/haberlesme/broadcast/README.md)
* [🔔 Notification](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/arkaplan/notification-1/notification.md)
* [⏰ Alarm](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/arkaplan/alarm.md)

## 👨‍🏫 Ders 5

🏗️ Uzun süreli işlemler için arayüz olmadan çalışan uygulamalar

* [🪐 Servisler](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/android-servisleri/README.md)

> 🙄 Tek başına yeterli olacaktır

## 👨‍🏫 Ders 6

💾 Temel verilerin yönetimi ve veri yönetimine giriş

* [🔸 Veri Saklama Yöntemleri](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/veriler/veri-saklama-yoentemleri.md)
* [📜 JSON Yönetimi](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/veriler/json-yoenetimi.md)
* [📂 Dosya İşlemleri](https://github.com/YEmreAk/YAndroid/blob/master/veriler/dosya-islemleri.md)

## 👨‍🏫 Ders 7

🗃️ Yüksek miktardaki verilerin yönetimi

* [👐 Shared Preferences](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/veriler/shared-preferences.md)
* [🗃️ SQLite](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/veriler/sqlite.md)
* [💽 Room Database](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/veriler/room-database.md)


# Karışık Bağlantılar

Derlenmemiş, karışık notları barındırır 😥

## 🌍 Faydalı Bağlantılar

* [Uygulamaya diğer uygulamadan veri gönderme (Share)](https://developer.android.com/training/basics/intents/filters)
  * [Uygulama ile paylaş özelliği ekleme](https://blog.blundellapps.co.uk/add-your-app-to-the-android-menu/)
* [Youtube-dl Android](https://github.com/yausername/youtubedl-android)
* [İzin (permission) işlemleri](https://developer.android.com/training/permissions/requesting#kotlin)
* [How To Create, Start, Stop Android Background Service](https://www.dev2qa.com/how-to-create-start-stop-android-background-service/s)

## 🔗 Harici Bağlantılar

* [Android Tasarım Bloğu](https://awsrh.blogspot.com/#)
* [Rename Package Name](https://stackoverflow.com/questions/16804093/rename-package-in-android-studio)
* [Finish All Previus Activity](https://stackoverflow.com/a/6330456/9770490)
* [ADB komut listesi](https://www.google.com.tr/url?sa=t\&rct=j\&q=\&esrc=s\&source=web\&cd=1\&cad=rja\&uact=8\&ved=2ahUKEwjN0LXv28fcAhVPalAKHSN6AIIQFjAAegQIABAB\&url=https%3A%2F%2Fgist.github.com%2FPulimet%2F5013acf2cd5b28e55036c82c91bd56d8\&usg=AOvVaw0QtLJ20OqCl3S4BR0S4BVe)
* [ADB ile telefona bağlanma](https://stackoverflow.com/questions/2604727/how-can-i-connect-to-android-with-adb-over-tcp)
* [Android Git Bağlantısı](https://code.tutsplus.com/tutorials/working-with-git-in-android-studio--cms-30514)
* [Mipmap vs Drawable](https://teamtreehouse.com/community/mipmap-vs-drawable)

## 🔗 Kotlin için Harici Bağlatılar

* Java kodunu Kotlin'e çevirmek için CTRL + SHIFT + ALT + K
* [Kotlin Trick for Android](https://antonioleiva.com/kotlin-awesome-tricks-for-android/)
* [Android Webview](https://www.mobapptuts.com/kotlin-on-android-webview-tutorial/)
* [WebView'i appte kalarak kullanmak](https://stackoverflow.com/questions/47872078/how-to-load-an-url-inside-a-webview-using-android-kotlin)
* [MediaPlayer (.mp3)](https://www.tutorialspoint.com/android/android_mediaplayer.htm)
* [Videoplayer](https://www.youtube.com/watch?v=7ICuG3k_NLw)
* [TabLayout](https://alexdunn.org/2017/07/11/android-kotlin-create-a-tablayout/)
* [Navigation Drawer (Türkçe / Video)](https://www.youtube.com/watch?v=aVmQBdbRhXE)
* [Material Drawer (Navigation Drawer gelişmişi)](https://github.com/zsmb13/MaterialDrawerKt)
* [ViewPager (Kaydırmalı Görünüm) Tutarial](https://www.raywenderlich.com/169774/viewpager-tutorial-android-getting-started-kotlin)
* [Alert Dialog](http://www.prandroid.com/2017/09/alert-dialog-box-in-android-using-kotlin.html)
* [Paylaş seçeneğine uygulamayı ekleme](https://blog.blundellapps.co.uk/add-your-app-to-the-android-menu/)

## 🥴 Karma Notlar

* Swap mode ile her değişiklik durumunda snap alınır, emulator hızlı çalışır
* Visual Studio'nun emulatorü hızlı çalışıyor dendi (?)


# Dokümanlar

* [1 rcycleview.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/1%20rcycleview.pdf)
* [1-1 alertdialog.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/1-1%20alertdialog.pdf)
* [2 veri-saklama-yoentemleri.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/2%20veri-saklama-yoentemleri.pdf)
* [2-1 json-yoenetimi.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/2-1%20json-yoenetimi.pdf)
* [2-2 dosya-islemleri.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/2-2%20dosya-islemleri.pdf)
* [2-3 shared-preferences.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/2-3%20shared-preferences.pdf)
* [2-4 sqlite.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/2-4%20sqlite.pdf)
* [2-5 room-database.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/2-5%20room-database.pdf)
* [2019 Final (Eksik v1) MP \~ YEmreAK.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/2019%20Final%20\(Eksik%20v1\)%20MP%20~%20YEmreAK.pdf)
* [3 asynctask-ve-asynctaskloader.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/3%20asynctask-ve-asynctaskloader.pdf)
* [3-1 android-servisleri.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/3-1%20android-servisleri.pdf)
* [3-2 foreground-service.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/3-2%20foreground-service.pdf)
* [3-3 alarm.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/3-3%20alarm.pdf)
* [4 internete-baglanma.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/4%20internete-baglanma.pdf)
* [4-1 http-istekleri.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/4-1%20http-istekleri.pdf)
* [4-2 dosya-indirme.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/4-2%20dosya-indirme.pdf)
* [4-3 Broadcast.pdf](https://github.com/yemreak/blog/blob/main/docs/tr/arsiv/android/.gitbook/assets/4-3%20Broadcast.pdf)


# Kişisel Araştırmalarım

Farklı kaynaklardan derlediğim araştırmalarım


# AI Destekli Kod Önerisi

Yapay zeka destekli kod önerisi uygulması TabNine hakkında

## 🔰 TabNine'ı Tanıyalım

* 🌍 Web sitesine [buradan](https://tabnine.com/) erişebilirsin
* 🧠 Yapay zeka destekli AI kod önerisi sunan sistemdir
* 📈 Kodlama hızınızı artırır
* ⛅ Bulut üzerinde çalışan [ücretsiz sürümünü](https://tabnine.com/subscribe) deneyebilirsin
* 💻 Yerel çalışan sürümü için [beta](https://tabnine.com/subscribe) programına katılmalısın
* [❔ TabNine FAQ](https://tabnine.com/faq#simple) alanında aklına takılan soruların cevaplarını bulabilirsin
* 🐙 GitHub reposuna [TabNine](https://github.com/zxqfl/TabNine) bağlantısından erişebilirsin

## 🔑 API Key Kullanımı

* ⏺ Beta sürümüne kayıt olun
* 🎌 Size gelen maildeki talimatları uygulayın

## 🔗 Faydalı Bağlantılar

* [📃 Deep TabNine: A Powerful AI Code Autocompleter For Developers](https://medium.com/syncedreview/deep-tabnine-a-powerful-ai-code-autocompleter-for-developers-70454a5953fe)


# AI ile Kod Tamamlama

Yapay zeka destekli kod önerisi uygulması TabNine hakkında

{% hint style="info" %}
GitHub Copilot'u öneririm!
{% endhint %}

## 🔰 TabNine'ı Tanıyalım

* 🌍 Web sitesine [buradan](https://tabnine.com/) erişebilirsin
* 🧠 Yapay zeka destekli AI kod önerisi sunan sistemdir
* 📈 Kodlama hızınızı artırır
* ⛅ Bulut üzerinde çalışan [ücretsiz sürümünü](https://tabnine.com/subscribe) deneyebilirsin
* 💻 Yerel çalışan sürümü için [beta](https://tabnine.com/subscribe) programına katılmalısın
* [❔ TabNine FAQ](https://tabnine.com/faq#simple) alanında aklına takılan soruların cevaplarını bulabilirsin
* 🐙 GitHub reposuna [TabNine](https://github.com/zxqfl/TabNine) bağlantısından erişebilirsin

## 👨‍🔧 TabNine'ı Yapılandırma

* 👨‍💻 Editörünüzde herhangi bir yere `TabNine::config` yazdığınızda ayarlar sayfası açılacaktır
* ⏺ Beta sürümüne kayıt olmanız durumunda API key alırsınız
* 🔑 Fake hesapla aldığım `iotguksemfwggxtzrihpmvqethgstt` anahtarı kullanabilirsiniz
* 🎌 Beta sürümü için size gelen maildeki talimatları uygulayın

## 🔗 Faydalı Bağlantılar

* [📃 Deep TabNine: A Powerful AI Code Autocompleter For Developers](https://medium.com/syncedreview/deep-tabnine-a-powerful-ai-code-autocompleter-for-developers-70454a5953fe)


# Çocuklar için Programlama

Programlama dünyasını çocuklara sunmaya çalışan bir kaç sanatçı

## 🧠 Çocuklara Yapay Zeka

Sayın [Zafer Demirkol](https://tr.linkedin.com/in/zaferdemirkol?trk=public-post_share-update_actor-text)'un yazmış olduğu yazılar oldukça faydalı olacaktır.

* [10 Yaşındaki Oğlumla Nasıl "Yapay Zeka" Çalışıyorum? - 1](https://www.linkedin.com/pulse/10-ya%C5%9F%C4%B1ndaki-o%C4%9Flumla-nas%C4%B1l-yapay-zeka-%C3%A7al%C4%B1%C5%9F%C4%B1yorum-1-zafer-demirkol/)
* [10 Yaşındaki Oğlumla Nasıl "Yapay Zeka" Çalışıyorum? - 2](https://www.linkedin.com/pulse/10-ya%C5%9F%C4%B1ndaki-o%C4%9Flumla-nas%C4%B1l-yapay-zeka-%C3%A7al%C4%B1%C5%9F%C4%B1yorum-2-zafer-demirkol/)
* [10 Yaşındaki Oğlumla Nasıl "Yapay Zeka" Çalışıyorum? - 3](https://www.linkedin.com/pulse/10-ya%C5%9F%C4%B1ndaki-o%C4%9Flumla-nas%C4%B1l-yapay-zeka-%C3%A7al%C4%B1%C5%9F%C4%B1yorum-3-zafer-demirkol/)
* [10 Yaşındaki Oğlumla Nasıl "Yapay Zeka" Çalışıyorum? - 4](https://www.linkedin.com/pulse/10-ya%C5%9F%C4%B1ndaki-o%C4%9Flumla-nas%C4%B1l-yapay-zeka-%C3%A7al%C4%B1%C5%9F%C4%B1yorum-4-zafer-demirkol/)
* [10 Yaşındaki Oğlumla Nasıl "Yapay Zeka" Çalışıyorum? - 5](https://www.linkedin.com/pulse/10-ya%C5%9F%C4%B1ndaki-o%C4%9Flumla-nas%C4%B1l-yapay-zeka-%C3%A7al%C4%B1%C5%9F%C4%B1yorum-5-zafer-demirkol/)

## 🎮 Oyunlarla Kodlama

Çocuklara kodlamayı eğlenceli halde sunmanın en etkili yolu oynatmaktır.

### [🐈 Scratch](https://scratch.mit.edu/)

### [🤺 CodeCombat](https://codecombat.com/play)

### [👨‍🎓 Code Master](https://www.thinkfun.com/play-online/code-master/)

### [🤖 RoboZZle](http://www.robozzle.com/)

### [🧩 Blockly](https://blockly.games/?lang=en)

## 🔗 Kaynaklar

{% embed url="<https://www.codecamp.com.au/blog/8-best-programming-games-for-kids>" %}

{% embed url="<https://github.com/HollyAdele/awesome-programming-for-kids>" %}


# Deprem Anında Kişisel Korunma

Deprem anında hayat üçgeni ve önemi

## 🗽 Açıklama

Dünyanın en tecrübeli kurtarma birimi Amerikan Uluslararası Kurtarma ekibinin Kurtarma şefi **Doug Copp** tarafından önerilmekte.

* 20 maket okulu ve evi yıkarak, test edilmiş.
* 10 maket *çömel ve korun* metodunu uygularken, 10 maket *hayat üçgeni* metodunu uygulamış
* **Hayat üçgeni** metodunu uygulayanlar **yaklaşık %100 ihtimalle** korunmuş

## 📐 Hayat Üçgeni

* 🏃‍ Dışarı çıkma şansınız varsa **dışarı çıkın**, yoksa alttakileri uygulayın
* Binanın **dışarı yakın kısımlarına** geçmeye çalışın, deprem sonrasındaki çöküntüden rahat kurtulmanızı sağlar
* Hafifçe ezilecek ama **yanında boşluk bırakacak** türde eşyaların **yanına** geçin (Şekil 1)
  * Kanepe veya büyük ve **dayanıklı** bir koltuğun yanına geçin
  * Eğer **uyuyorsanız yataktan yuvarlanarak düşün**, orada kalın (Şekil 2)
* Dizi, karına doğru çekerek kıvrılın (**cenin pozisyonu**) (Şekil 3)

### 🙍‍ Cenin Pozisyonu

Dizleri, karına doğru çekerek kıvrılma pozisyonudur

## 🧱 Örnek Yıkım Alanları ve Hayat Üçgeni

## ⛔ Yapılamaması Gerekenler

* 🪑 Masa, araba gibi nesnelerin **altına giren** kişiler

  her zaman **ezilirler**.
* 🚪 Kapı kirişlerinin altına geçenler **ölürler**
  * Eğer kapı kirişlerinin altına

    geçerseniz ve kapı kirişi öne veya arkaya doğru düşürse inen tavanın altında

    ezilirsiniz
  * Eğer kapı kirişi yana doğru yıkılırsa ikiye bölünürsünüz
  * Her iki durumda da ölürsünüz!
* Merdivenlere hiçbir zaman gitmeyin, yıkılabilir ve tehlikelidir


# İngilizce Notlarım

İngilizcemin gerçekten iyi olmadığını keşfettiğimde çıkardığım notlar (🚧)

## 💎 Kavramlar

* [💞 Duygular ve Hisler](https://ingilizcebankasi.com/ingilizce-duygular-ve-hisler-feelings-and-emotions/)
* [👻 Emotions](https://www.english-at-home.com/vocabulary/english-word-for-emotions/)

## 🔍 İngilizce Kelime ve Cümle Arama

* [⭐ ReversoContext](https://context.reverso.net/%C3%A7eviri/) üzerinden örnek cümleler bulabilirsin

## ✍ Yazma Yeteneğini Geliştirme

* [👨‍🔧 Grammarly](https://www.grammarly.com/) ile yazım hatalarını düzeltebilirsin


# MIT gibi Yurt Dışı Eğitimleri Hakkında

Programlama bilgilerini yurt dışındaki okuldan alabilmeyi anlatır

## 📰 Alıntılı İçerik

Arkadaşlar Massachusetts Institute of Technology (MIT) nin Youtube kanalı, hem bilgisayar mühendisliği hem de diğer mühendislik alanlarındaki derslerle ilgili sınıftaki anlatımları var, Türkçe alt yazıya da çeviri yapılabiliyor zaten, yararlı olacağını düşünüyorum buyurun çalışın :)

<https://www.youtube.com/user/MIT/playlists>

Bu da Stanford Üniversitesinin linki Autumn Quarter - 2018-2019 Winter Quarter - 2018-2019 bu linklere tıklarsanız, ilgili dönemlerde anlatılan derslerle ilgili bazı dokümanlara ve videolara ulaşabilirsiniz, bazıları sadece kendi öğrencilere açık, ama bazılarına erişim açık <https://cs.stanford.edu/academics/courses>

Mesela Stanford un Android App Development videoları Aratırsanız youtube dan diğer bazı derslerin videolarına da ulaşailirsiniz android uygulama geliştirme derslerinin linki <https://www.youtube.com/watch?v=v_OQHLjmfEM&list=PLYKXDWkoIMUH088iBEr_B2WPfbPwtaG-V> <https://ocw.mit.edu/index.htm> bu da muazzam bir kaynak mit deki hocaların derslerinde kullandıkları materyaller paylaşılıyor. Ayrıca graduate ve undergraduate programlarının ders içeriklerine bakıp birebir takip edebiliyorsunuz


# Nesnelerin İnterneti (IoT)

Internet of things olarak adlandırılan nesnelerin interneti hakkında araştırmalarım

## 👁‍🗨 Hızlıca Göz Atalım

## 🔗 Yararlanılan Kaynaklar

* [Top 3 Programming Languages for IoT Development In 2018](https://www.iotforall.com/2018-top-3-programming-languages-iot-development/)
* [Tech Talk: Is "Android Things" Right for My Embedded System? (Transcript)](https://barrgroup.com/tech-talk/android-things)


# Pasaport İşlemleri

Yurt dışına çıkmak için gerekli olan pasaport hakkında bilgilerim

## 🔰 Randevu Hakkına Bilgiler

* 1 kaç gün sonrasına randevu alınır
* Nüfus müdürlüklerinde yapılır
* Öncesin biyometrik fotoğraf alınmalı ve defter + harç bedelinin ödenmesi gerekir
  * Öğrenci isen defter bedeline gerek yok ([Öğrenci belgeni](https://www.turkiye.gov.tr/yok-ogrenci-belgesi-sorgulama) götüreceksin)
  * [E-devlet](https://www.turkiye.gov.tr/yok-ogrenci-belgesi-sorgulama) üzerinden Öğrenci Belgesi alabilirsin

## 👮‍♂️ Umuma Mahsus Pasaport Gereksinimleri

* T.C. kimlik kartı, nüfus cüzdanı veya geçici kimlik belgesi
* Son altı ay içerisinde çekilmiş bir adet biyometrik fotoğraf
* Yasal temsilcilerin başvuru merkezinde hazır bulunmamaları halinde; kısıtlı veya ergin olmayan kişiler için muvafakatname
* Öğrencilerin harçsız pasaport başvurularında; "Öğrenci Belgesi" (Başvuru esnasında sistemde öğrencilik durumunun doğrulanması halinde belge talep edilmeyecektir.)
* Başvuru öncesinde pasaport defter ve harç bedelinin ödenmesi (Ödeme bilgileri sistem üzerinden görüntülendiğinden başvuru esnasında ayrıca makbuz/dekont talep edilmemektedir.)
* Eski pasaport (Daha önceden alınmış ve iptali yapılmamış pasaportların başvuruda getirilmesi gerekmektedir.)
* Ücretler ile ilgili ayrıntılı bilgi “randevu.nvi.gov.tr” adresinden öğrenilebilmektedir.

## 🎫 Randevu Alma

{% embed url="<https://randevu.nvi.gov.tr/>" %}


# Scripting Languages

Scripting diller hakkında aldığım notlar

## Terimler

| Terim       | Açıklama                                                                                         |
| ----------- | ------------------------------------------------------------------------------------------------ |
| Executable  | Daha önceden oluşturulmuş ve işletim sistemin direkt olarak çalıştırabilir uygulamalar           |
| Byte Code   | Daha sonradan yorumlanmak için hazırlanmış kodlardır, direkt olarak işletim sistemi çalıştıramaz |
| Compiler    | Derleyici. Kodlardan **executable** veya **byte code** oluşturur                                 |
| Interpreter | Yorumlayıcı. Kodları direkt olarak çalıştırır . Her seferinden yorumlanması gerekir              |

## Dillerinin Çalışma Yapısı

* Java, Python gibi diller **byte code** yapısını kullanır
* C, C# gibi diller **executable** (`.exe`) yapısını kullanır

## Scripting Özellikleri

| Terim           | Açıklama                                                                       |
| --------------- | ------------------------------------------------------------------------------ |
| Extending       | Diğer programların kütüphanelerini de kullanma ve çalıştırma (?)               |
| Dynamic Typing  | Değişken tiplerini belirtmeye gerek yoktur. (int, str vs gibi)                 |
| Data Structures | Kendilerine özgü veri yapıları vardır (örn `dictionary`, `hash tables`, `list` |

### Dynamic Typing

* Değişken tiplerine **otomatik** karar verilir
  * İsteğe bağlı tiplerin belirtilmesini de kabul eder
* Scripting işlemlerinde sorun oluşturmasa da programlama dilleirnde **sorunlara** sebeb olduğundan tercih edilmez
  * Değişkenlerin **önceden tanımlanması gerekmediğinden** yazım hataları durumunda program yanlış çalışır ama hata vermez
* Bazı scripting dillerinde tüm verileri `string` olarak tutulur, kullandıkları zaman uygun tiplere çevrilerek kullanırlır. Bu işlem verilerin **optimize** tutulmasını sağlar

### Scripting Dillerinde Hafıza Yönetimi Sorunları

* Değişkenlerin kontrolü scripting dillerinde **zordur**
* Belli bir süre sonrasında kullanılmayan veriler hafızada şişkinliğe sebep olur
* **Garbage Collector** gibi kullanılmayacak değişkenleri temizleyen yapılara ihtiyaç duyulur

### Dynamic Code Creation (Dinamik Kod Oluşturma)

* Kod içerisinde kod oluşturulup derlenebilmesini mümkün kılar
  * Bazı programlama dillerinde bu mümkün değil veya zordur (örn C)

```python
a = 10
x = "print a"
exec(x)
```

## 🔗 Kaynaklar

* [Scripting (Betik) dilleri nedir? (Soru Cevap 14 Kasım 2015)](https://www.youtube.com/watch?v=z7uJNyhLzOQ)


# Verimliliği Artıran Uygulamalar

Evde çalışırken veya gün içerisinde yoğun tempo içerisinde olanlara özellikle tavsiye edilen uygulamalar

##

## 🔗 Faydalı Bağlantılar

* [📺 Evden öğrenme ve çalışmayı kolaylaştıran 18 uygulama](https://www.youtube.com/watch?v=EhY5dlV8N0Y)


# yEmoji

Yunus Emre Ak \~ YEmreAk (@yedhrab) 'ın emoji ve emoji kişiselleştirmesi hakkındaki notları


# Bağlantılar

## 🎌 YEmoji Kullanımları

| 💞 YEmoji  | 📝 Açıklama                |
| ---------- | -------------------------- |
| 👨‍🏫👩‍🏫 | Eğitici çalışmalar         |
| 👨‍💻👩‍💻 | Kod bağlantısı             |
| 📖         | Dokümantasyon              |
| 📃         | Makaleler                  |
| ✍          | El yazıları                |
| 👨‍🔬👩‍🔬 | Test içerikleri            |
| 👪         | Topluluk veya gruplar      |
| 💰         | Paralı                     |
| 📺         | Video                      |
| 📹         | Slayt                      |
| 💦         | Temizleme, kaldırma, silme |

## 🐣 Kullanımı Belirtme

{% hint style="success" %}
🚀 Bu alandaki bağlantılar [YEmoji \~Bağlantılar](https://emoji.yemreak.com/kullanim/baglantilar) yapısına uygundur
{% endhint %}

{% hint style="info" %}
‍🧙‍♂ Detaylı bilgi için [YEmoji](https://emoji.yemreak.com/kullanim/baglantilar) yapısına uygun oluşturulmuş:

* 📃 [copy in Python (Deep Copy and Shallow Copy)](https://www.geeksforgeeks.org/copy-python-deep-copy-shallow-copy/)
* 📃 [How do I copy an object in Python?](http://effbot.org/pyfaq/how-do-i-copy-an-object-in-python.htm)
* 👪 [Emulating pass-by-value behavior in python](https://stackoverflow.com/a/9762918/9770490)
* 📖 [copy — Shallow and deep copy operations](https://docs.python.org/3/library/copy.html)

alanlarına bakabilirsin.
{% endhint %}




---

[Next Page](/llms-full.txt/1)

