digital garden: 3 aktif varyant (v4 defter, v5 gazete, v6 katalog) + yillik

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 12:07:17 +03:00
commit b9949ed187
10 changed files with 2182 additions and 0 deletions

403
v4/index.html Normal file
View File

@@ -0,0 +1,403 @@
<!doctype html>
<html lang="tr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>tunapro.xyz · defter</title>
<meta name="description" content="tuna gül'ün dijital bahçesi. robotlar, agent'lar, eski projeler. gevşek bakılan bir bahçe.">
<style>
:root{
--bg:#f4f1ea; --ink:#141412; --red:#d63c2f; --dim:#8a857a; --faint:#c9c3b4;
--serif:"Iowan Old Style",Palatino,Georgia,serif;
--mono:ui-monospace,Menlo,Consolas,monospace;
--sans:-apple-system,"Inter","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
::selection{background:var(--red);color:#fff}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55}
a{color:inherit}
img{max-width:100%}
.layout{display:grid;grid-template-columns:280px 1fr;max-width:1240px;margin:0 auto;min-height:100vh}
@media(max-width:900px){.layout{grid-template-columns:1fr}}
/* ---------- sidebar ---------- */
aside{
border-right:3px solid var(--ink);padding:30px 24px 60px;
position:sticky;top:0;height:100vh;overflow-y:auto;
font-family:var(--mono);font-size:13px;
}
@media(max-width:900px){aside{position:static;height:auto;border-right:none;border-bottom:3px solid var(--ink)}}
aside .logo{font-weight:700;font-size:14px;letter-spacing:.08em;margin-bottom:4px}
aside .logo span{color:var(--red)}
aside .sub{color:var(--dim);font-size:11.5px;margin-bottom:26px}
aside .cat{margin-bottom:22px}
aside .cat h4{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:8px;font-weight:600}
aside ul{list-style:none}
aside li{padding:3px 0}
aside li a{text-decoration:none;color:var(--ink)}
aside li a:hover{color:var(--red)}
aside li .st{color:var(--dim);font-size:11px;margin-left:6px}
aside .foot{margin-top:34px;padding-top:16px;border-top:1px dashed var(--faint);color:var(--dim);font-size:11.5px;line-height:1.8}
aside .foot a{color:var(--ink);text-decoration:none}
aside .foot a:hover{color:var(--red)}
/* ---------- içerik ---------- */
main{padding:44px 48px 90px;max-width:820px}
@media(max-width:640px){main{padding:30px 20px 70px}}
.hero .intro{font-size:16.5px;color:#33312a;max-width:60ch}
.hero .meta{margin-top:16px;font-family:var(--mono);font-size:12px;color:var(--dim)}
.hero .meta b{color:var(--red);font-weight:600}
.chapter{margin-top:64px;padding-top:14px;border-top:3px solid var(--ink)}
.chapter>.label{font-family:var(--mono);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.chapter>h2{font-family:var(--serif);font-size:clamp(26px,4vw,40px);font-weight:600;margin:6px 0 4px;letter-spacing:-.01em}
.chapter>.desc{color:var(--dim);font-size:14px;max-width:58ch}
article{margin-top:38px;padding-top:22px;border-top:1px solid var(--faint)}
article:target{background:linear-gradient(90deg,rgba(214,60,47,.06),transparent 70%);outline:none}
article h3{font-family:var(--serif);font-size:clamp(21px,3vw,28px);font-weight:600;letter-spacing:-.008em}
article h3 a{text-decoration:none}
article h3 a:hover{color:var(--red);font-style:italic}
article .meta{font-family:var(--mono);font-size:11.5px;color:var(--dim);margin:6px 0 14px;display:flex;gap:16px;flex-wrap:wrap}
article .meta .st{color:var(--red)}
article p{font-size:15.5px;color:#2e2c25;margin-bottom:11px;max-width:64ch}
article p a{color:var(--red);text-decoration-thickness:1px;text-underline-offset:3px}
article code{font-family:var(--mono);font-size:.88em;background:#eae5d8;padding:1px 5px;border-radius:3px}
article .fig{margin:16px 0;max-width:440px}
article .fig img{border:2px solid var(--ink);display:block;background:#fff;filter:grayscale(1) contrast(1.06);transition:filter .25s}
article .fig:hover img{filter:grayscale(0)}
article .fig .cap{font-family:var(--mono);font-size:10.5px;color:var(--dim);margin-top:5px}
.go{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}
.go a{font-family:var(--mono);font-size:12px;text-decoration:none;border:1.5px solid var(--ink);
padding:5px 11px;border-radius:999px;transition:background .12s,color .12s}
.go a:hover{background:var(--ink);color:var(--bg)}
.go a.hot:hover{background:var(--red);border-color:var(--red)}
.bkz{margin-top:12px;font-family:var(--mono);font-size:11.5px;color:var(--dim)}
.bkz a{color:var(--ink);text-decoration:none;border-bottom:1px dashed var(--dim)}
.bkz a:hover{color:var(--red);border-color:var(--red)}
.pathnote{margin-top:70px;border:2px solid var(--ink);padding:24px;font-size:15px;max-width:64ch}
.pathnote h3{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.pathnote p{color:#2e2c25}
footer{margin-top:50px;font-family:var(--mono);font-size:12px;color:var(--dim)}
footer a{color:var(--red);text-decoration:none}
footer a:hover{text-decoration:underline}
</style>
</head>
<body>
<div class="layout">
<aside>
<div class="logo">TUNAPRO<span>.</span>XYZ</div>
<div class="sub">defter · gevşek bakılan bahçe</div>
<div class="cat">
<h4>ai &amp; agent'lar</h4>
<ul>
<li><a href="#blueprint">blueprint (bp)</a><span class="st">canlı</span></li>
<li><a href="#outpost">outpost</a><span class="st">büyüyor</span></li>
<li><a href="#abm">llm ile toplum simülasyonu</a><span class="st">merak</span></li>
<li><a href="#trasumanar">trasumanar</a><span class="st">şemsiye</span></li>
</ul>
</div>
<div class="cat">
<h4>robotik</h4>
<ul>
<li><a href="#probot">probot studio</a><span class="st">satışta</span></li>
<li><a href="#impact">impact</a><span class="st">canlı</span></li>
<li><a href="#first">first yılları</a><span class="st">kökler</span></li>
</ul>
</div>
<div class="cat">
<h4>makine dairesi</h4>
<ul>
<li><a href="#homelab">homelab</a><span class="st">7/24</span></li>
</ul>
</div>
<div class="cat">
<h4>eski defter</h4>
<ul>
<li><a href="#elevator">elevator_optimization</a><span class="st">kazandık</span></li>
<li><a href="#dbex">dbex</a><span class="st">2020</span></li>
<li><a href="#megaboi">megaboi</a><span class="st">2020</span></li>
<li><a href="#cdonem">c dönemi</a><span class="st">2021</span></li>
</ul>
</div>
<div class="cat">
<h4>tuhaflıklar</h4>
<ul>
<li><a href="#canbitirici">can raporu</a><span class="st">🍄</span></li>
</ul>
</div>
<div class="foot">
her yerde @tunapro1234<br>
<a href="https://github.com/tunapro1234">github</a> ·
<a href="https://git.tunapro.xyz">gitea</a> ·
<a href="https://probotstudio.com">probot</a><br>
<a href="/yillik/">yıllıktan gelenler →</a>
</div>
</aside>
<main>
<section class="hero">
<p class="intro">yaptığım şeylerin kayıt defteri. bi kısmı hâlâ çalışıyor, bi kısmı arşivde
duruyor. 11. sınıfta yazdığım readme'ler de dahil, silmiyorum, hepsi benim. blog değil bu,
tarih sırası yok, soldan istediğin yere atla. yarım not görürsen bil ki bilerek yarım,
sonra gelirsen büyümüş olur (umarım).</p>
<div class="meta">durumlar: <b>canlı</b> çalışıyor · <b>büyüyor</b> commit alıyor · <b>arşiv</b> dokunmuyorum ama seviyorum</div>
</section>
<!-- ================= AI ================= -->
<section class="chapter" id="ai">
<div class="label">bölüm 1</div>
<h2>ai &amp; agent'lar</h2>
<div class="desc">sunucumda bir agent filosu yaşıyor. bunlar onları yönetmek için yazdığım
ve onlar hakkında düşünmek için yazdığım şeyler.</div>
</section>
<article id="blueprint">
<h3><a href="https://bp.tunapro.xyz">blueprint (bp)</a></h3>
<div class="meta"><span class="st">canlı</span><span>go</span><span>ekildi 2026</span><span>her gün elliyorum</span></div>
<p>sunucudaki agent'ları yönetmek için kullandığım tool. tmux oturumları, message queue,
usage policy, whatsapp client. hepsi tek go binary'sinde. <code>bp daemon</code> eski
python/node job'larını süperviz ediyor, onları yeniden yazmadım çünkü çalışıyorlar ve
çalışan şeye dokunulmaz.</p>
<p><code>bp monitor</code> ile dashboard'u terminalden izliyorum. agent'lara izole branch
lazım olunca worktree'leri de bp açıyor. şu an hayatımın işletim sistemi gibi bi şey.
bu site bile onun baktığı makinede duruyor.</p>
<div class="fig">
<a href="https://github.com/tunapro1234/blueprint"><img src="https://opengraph.githubassets.com/garden/tunapro1234/blueprint" alt="blueprint reposu" loading="lazy"></a>
<div class="cap">şek. 1.1 · bp. renk için imleci tut.</div>
</div>
<div class="go">
<a class="hot" href="https://bp.tunapro.xyz">bp.tunapro.xyz ↗</a>
<a href="https://github.com/tunapro1234/blueprint">github ↗</a>
</div>
<div class="bkz">bkz: <a href="#homelab">homelab</a>, <a href="#trasumanar">trasumanar</a></div>
</article>
<article id="outpost">
<h3><a href="https://github.com/tunapro1234/outpost">outpost</a></h3>
<div class="meta"><span class="st">büyüyor</span><span>javascript</span><span>son push: bugün</span></div>
<p>insanlarla iletişimi unutuyorum, o yüzden bunu yaptım. herkes obsidian uyumlu bir
vault'ta birer <code>.md</code> dosyası. outpost o vault'un üstüne ilişki grafını çiziyor.
kimle konuşmuşum, kimi unutmuşum, kim kimi tanıyor.</p>
<p>gather tarafında araştırma agent'ları var, yeni insan buluyorlar ama ben onaylamadan
vault'a hiçbir şey giremiyor. mail sadece okunuyor, gönderme yok. agent'lara o kadar da
güvenmiyorum. canlı hali şifreli çünkü içinde gerçek insanlar var.</p>
<div class="fig">
<a href="https://github.com/tunapro1234/outpost"><img src="https://opengraph.githubassets.com/garden/tunapro1234/outpost" alt="outpost reposu" loading="lazy"></a>
<div class="cap">şek. 1.2 · outpost</div>
</div>
<div class="go">
<a href="https://github.com/tunapro1234/outpost">github ↗</a>
<a href="https://outpost.tunapro.xyz">outpost.tunapro.xyz 🔒</a>
</div>
<div class="bkz">bkz: <a href="#blueprint">blueprint</a></div>
</article>
<article id="abm">
<h3>llm ile toplum simülasyonu</h3>
<div class="meta"><span class="st">merak · uzun vadeli</span><span>python çoğunlukla</span></div>
<p>abm (agent-based modeling) tarzı makro llm işlerine ilgim var: deney katılımcısının
yerine kişilikli llm agent koyunca ne oluyor, bini bir araya gelince topluma benziyor mu.
bu merak birkaç repoya dağıldı:</p>
<p><a href="https://github.com/tunapro1234/replicant">replicant</a> otree deneylerine
big five kişilikli llm agent'lar sokuyor. pypi'da <code>pyreplicant</code> diye duruyor.
ilk replike ettiğim paper Ertan-Page-Putterman 2009, free rider cezalandırma deneyi.
isim hem replikasyondan hem blade runner'dan geliyor, ikisi de kasıtlı.</p>
<p><a href="https://github.com/tunapro1234/metron">metron</a> kendine "sociology for
AI agents" diyor. ortalıkta yüz binlerce deploy edilmiş agent var ve kimse onları
popülasyon olarak incelemiyor. metron bunu deniyor: kişilik testleri, davranış
profilleri, kümeleme. ne tür zihinler seri üretiyoruz sorusu bence sorulmayı hak ediyor.</p>
<p>omega iktisat simülasyonu tarafı, <a href="#trasumanar">trasumanar</a>'ın altında
yaşıyor ve şu an aktif yeniden yazımda. bir de <a href="https://github.com/tunapro1234/hallucinating-splines">hallucinating-splines</a>
fork'um var, agent'lar headless simcity'de şehir kuruyor. okuma listesi:
<a href="https://github.com/tunapro1234/awesome-llm-social-simulation">awesome-llm-social-simulation</a>.</p>
<div class="fig">
<a href="https://github.com/tunapro1234/replicant"><img src="https://opengraph.githubassets.com/garden/tunapro1234/replicant" alt="replicant reposu" loading="lazy"></a>
<div class="cap">şek. 1.3 · replicant, pypi'da gerçek bir paket</div>
</div>
<div class="go">
<a href="https://github.com/tunapro1234/replicant">replicant ↗</a>
<a href="https://github.com/tunapro1234/metron">metron ↗</a>
<a href="https://github.com/tunapro1234/awesome-llm-social-simulation">okuma listesi ↗</a>
</div>
</article>
<article id="trasumanar">
<h3><a href="https://github.com/trasumanar-ai">trasumanar</a></h3>
<div class="meta"><span class="st">şemsiye</span><span>eski ama duruyor</span></div>
<p>ai işlerimi topladığım çatı. isim dante'den geliyor, insan ötesine geçmeyi
kelimelerle anlatamazsın diyor adam. iddialı isim, biliyorum, o yüzden altında mütevazı
şeyler tutuyorum: omega (iktisat simülasyonu), arşivde hive-five, bir de bp'nin
install script'i oradan servis ediliyor.</p>
<div class="go"><a href="https://github.com/trasumanar-ai">github/trasumanar-ai ↗</a></div>
<div class="bkz">bkz: <a href="#abm">toplum simülasyonu</a>, <a href="#blueprint">blueprint</a></div>
</article>
<!-- ================= ROBOTİK ================= -->
<section class="chapter" id="robotik">
<div class="label">bölüm 2</div>
<h2>robotik</h2>
<div class="desc">her şey buradan başladı. hâlâ da bitmedi: parça satıyorum,
yarışma düzenliyorum.</div>
</section>
<article id="probot">
<h3><a href="https://probotstudio.com">probot studio</a></h3>
<div class="meta"><span class="st">satışta</span><span>c++ / arduino</span><span>mit · 9★</span></div>
<p>"bir kit, sonsuz robot." lise robot yarışmaları için kit ve kütüphane. hâlâ buradan
parça satıyorum. çekirdek açık kaynak: <code>probot-core</code>, arduino tabanlı
yarışmalarda sahada denenmiş embedded control middleware'i.</p>
<p>fikir <a href="#first">first yıllarından</a> geliyor. altı haftada robot yapmayı
öğrendikten sonra "bunu kit yapsak herkes yapar" dedim, yapıyoruz.</p>
<div class="fig">
<a href="https://github.com/probot-studio/probot-core"><img src="https://opengraph.githubassets.com/garden/probot-studio/probot-core" alt="probot-core reposu" loading="lazy"></a>
<div class="cap">şek. 2.1 · probot-core</div>
</div>
<div class="go">
<a class="hot" href="https://probotstudio.com">probotstudio.com ↗</a>
<a href="https://github.com/probot-studio/probot-core">github ↗</a>
</div>
</article>
<article id="impact">
<h3><a href="https://impact.tr">impact</a></h3>
<div class="meta"><span class="st">canlı</span><span>impact.tr</span></div>
<p>impact.tr ile robot yarışmaları düzenliyoruz. formatlar: hands-on challenge (iki gün
durmadan robot üretme, esp32'yle), ideathon, bir de robo soccer (otonom robot futbolu,
şehir şehir yayılıyor). nisan 2026'daki çemberlitaş bölgeselinde 16 takım ve 150'den
fazla katılımcı vardı.</p>
<p>yarışmaya katılan çocuk olmaktan yarışma düzenleyen adam olmaya geçiş garip bi his,
tavsiye ederim. sitenin kodu da <a href="https://git.tunapro.xyz/tunapro/impact-site">kendi gitea'mda</a>.</p>
<div class="go">
<a class="hot" href="https://impact.tr">impact.tr ↗</a>
<a href="https://git.tunapro.xyz/tunapro/impact-site">gitea/impact-site ↗</a>
</div>
<div class="bkz">bkz: <a href="#probot">probot studio</a>, <a href="#homelab">homelab</a></div>
</article>
<article id="first">
<h3>first yılları</h3>
<div class="meta"><span class="st">kökler</span><span>7839 → 9029</span><span>championship 2025 &amp; 2026</span></div>
<p>lisede frc'deydim, 7839'da. lise bitince mali'yle nf'yi kurduk, 9029. 2023'te de
nfr products'ı kurduk, şirket hâlâ dönüyor. geçen sene zağanos'taydım. 2025 ve 2026'da
first championship'teydik, houston'a iki kere gitmiş olmak hâlâ hoşuma gidiyor.</p>
<p>first'ün bana öğrettiği şey kod değil. teslim tarihi gerçek olunca nasıl çalışıldığını
öğrendim. altı haftada robot bitiyor çünkü bitmek zorunda. o refleks hâlâ bende.</p>
<div class="fig">
<a href="https://github.com/team-nf"><img src="https://avatars.githubusercontent.com/team-nf?s=400" alt="team-nf" loading="lazy"></a>
<div class="cap">şek. 2.2 · team-nf</div>
</div>
<div class="go">
<a href="https://github.com/team-nf">github/team-nf ↗</a>
<a href="https://github.com/tunapro1234/FRC7839">frc7839 arşivi ↗</a>
</div>
<div class="bkz">bkz: <a href="#probot">probot studio</a>, <a href="#impact">impact</a></div>
</article>
<!-- ================= MAKİNE DAİRESİ ================= -->
<section class="chapter" id="makine">
<div class="label">bölüm 3</div>
<h2>makine dairesi</h2>
<div class="desc">bulut kullanmıyorum. her şey kendi demirimde ve bu bana huzur veriyor.</div>
</section>
<article id="homelab">
<h3>homelab: *.tunapro.xyz</h3>
<div class="meta"><span class="st">7/24</span><span>self-host her şey</span></div>
<p>kod <a href="https://git.tunapro.xyz">gitea</a>'da, medya kendi video sunucumda,
minecraft sunucusunun paneli <code>mcdash</code>'te, mail bile burada. okuduğun sayfa da
aynı makinelerde dönüyor ve makinelere <a href="#blueprint">bp</a> bakıyor.</p>
<p>arada bir şeyler patlıyor tabii. gece 2'de mail sunucusu debug'lamak kimseye
tavsiye edeceğim bi hobi değil ama kendi verine sahip olmanın bedeli bu, ödüyorum.</p>
<div class="go">
<a href="https://git.tunapro.xyz">git ↗</a>
<a href="https://video.tunapro.xyz">video ↗</a>
<a href="https://mcdash.tunapro.xyz">mcdash ↗</a>
</div>
</article>
<!-- ================= ESKİ DEFTER ================= -->
<section class="chapter" id="eski">
<div class="label">bölüm 4</div>
<h2>eski defter</h2>
<div class="desc">github arkeolojisi, 2020-2024. hepsi arşivde duruyor, hepsini
seviyorum.</div>
</section>
<article id="elevator">
<h3><a href="https://github.com/tunapro1234/elevator_optimization">elevator_optimization</a></h3>
<div class="meta"><span class="st">kazandık</span><span>rust</span><span>2024</span></div>
<p>boğaziçi'nin ai yarışması için yazdık ve kazandık. asansör çizelgeleme problemi,
rust'la. repo o günkü haliyle duruyor, dokunmuyorum. kazanan koda dokunulmaz.</p>
<div class="go"><a href="https://github.com/tunapro1234/elevator_optimization">github ↗</a></div>
</article>
<article id="dbex">
<h3><a href="https://github.com/tunapro1234/DBEX">dbex</a></h3>
<div class="meta"><span class="st">arşiv</span><span>python</span><span>2020 · 11. sınıf</span></div>
<p>python'un json kütüphanesini generator olarak yeniden yazmışım. readme'de aynen şu
cümle var: "json kütüphanesine yetişebilmem için eklemem gereken çok fazla özellik var
ama maalesef ben 11. sınıfım." kod yorumları da öyle: "çalışır herhalde / umarım."
haklıymışım, çalışıyormuş.</p>
<div class="go"><a href="https://github.com/tunapro1234/DBEX">github ↗</a></div>
</article>
<article id="megaboi">
<h3><a href="https://github.com/tunapro1234/MEGABOI">megaboi</a></h3>
<div class="meta"><span class="st">arşiv</span><span>c++ · arduino mega</span><span>2020</span></div>
<p>arduino mega + lcd shield + 6 butondan el yapımı konsol. readme'den: "neden ekranın
yediği serial0'ı kullandın diyebilirsiniz, cevap çok basit: bilmiyorum." lityum pil ve
yükseltici devreyle taşınabilir de yapmışım, şemaları paylaşacağım demişim (sanmıyorum
diye not düşmüşüm, haklı çıktım).</p>
<div class="go"><a href="https://github.com/tunapro1234/MEGABOI">github ↗</a></div>
</article>
<article id="cdonem">
<h3>c dönemi: vector-h &amp; cygnus</h3>
<div class="meta"><span class="st">arşiv</span><span>c89 / c</span><span>2021</span></div>
<p>c yazdığım dönem. <a href="https://github.com/tunapro1234/vector-h">vector-h</a>:
c89'da basit bir vektör implementasyonu. <a href="https://github.com/tunapro1234/cygnus">cygnus</a>
daha ilginç, embed cihazlar için ai kütüphanesi gibi bi şeydi. o ara nnfs okuyordum,
matrix makroları oradan geliyor. kitap bitince düzenli bi şekilde baştan başlayacaktım.
kitap bitti, başlamadım. olsun.</p>
<div class="go">
<a href="https://github.com/tunapro1234/vector-h">vector-h ↗</a>
<a href="https://github.com/tunapro1234/cygnus">cygnus ↗</a>
</div>
</article>
<!-- ================= TUHAFLIKLAR ================= -->
<section class="chapter" id="tuhaf">
<div class="label">bölüm 5</div>
<h2>tuhaflıklar</h2>
<div class="desc">kategorisi olmayan şeyler.</div>
</section>
<article id="canbitirici">
<h3><a href="https://canbitirici.tunapro.xyz">can neden iş bitirici değil?</a></h3>
<div class="meta"><span class="st">🍄 hakemli değil</span><span>araştırma raporu</span></div>
<p>arkadaş grubu içi bir şaka aşırı ciddiye alınırsa ne olur sorusunun cevabı: başlığı,
metodolojisi ve grafikleri olan bir araştırma raporu olur. can'a sevgilerimle.</p>
<div class="go"><a class="hot" href="https://canbitirici.tunapro.xyz">raporu oku ↗</a></div>
</article>
<div class="pathnote">
<h3>bana ulaşmak</h3>
<p>neredeyse her platformda <strong>@tunapro1234</strong>'üm.
<a href="https://github.com/tunapro1234" style="color:var(--red)">github</a> en garantisi;
<a href="https://stackoverflow.com/users/tunapro1234" style="color:var(--red)">stack overflow</a>'da
da aynı isim. kod görmek istersen <a href="https://git.tunapro.xyz" style="color:var(--red)">kendi gitea'm</a> da açık.</p>
</div>
<footer>
© 2026 tuna gül · yıllıktaki qr'dan geldiysen <a href="/yillik/">senin sayfan ayrı</a>
</footer>
</main>
</div>
</body>
</html>