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

309
v5/index.html Normal file
View File

@@ -0,0 +1,309 @@
<!doctype html>
<html lang="tr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>tunapro postası · kendi sunucusunda basılır</title>
<meta name="description" content="tuna gül'ün dijital bahçesi, gazete baskısı. agent haberleri, robotik sayfası, arşivden ve küçük ilanlar.">
<style>
:root{
--bg:#f4f1ea; --ink:#141412; --red:#c22f23; --dim:#8a857a; --faint:#c9c3b4;
--serif:"Iowan Old Style",Palatino,Georgia,serif;
--mono:ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
::selection{background:var(--red);color:#fff}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);line-height:1.5}
a{color:inherit}
img{max-width:100%}
.sheet{max-width:1180px;margin:0 auto;padding:0 22px 80px}
/* masthead */
.mast{text-align:center;padding:30px 0 14px;border-bottom:4px double var(--ink)}
.mast .over{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim)}
.mast h1{font-size:clamp(44px,9vw,96px);font-weight:700;letter-spacing:-.01em;line-height:1;margin:8px 0 10px}
.mast h1 span{color:var(--red)}
.mast .bar{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;color:var(--dim);
border-top:1.5px solid var(--ink);margin-top:8px;padding:7px 4px 0;flex-wrap:wrap;gap:6px}
.mast .bar b{color:var(--ink);font-weight:600}
/* telgraf hattı */
.wire{border-bottom:1.5px solid var(--ink);padding:7px 0;font-family:var(--mono);font-size:11.5px;
color:var(--dim);white-space:nowrap;overflow:hidden}
.wire .tape{display:inline-block;animation:wire 34s linear infinite;padding-left:0}
.wire b{color:var(--red)}
@keyframes wire{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.wire .tape{animation:none}}
/* grid */
.front{display:grid;grid-template-columns:2.1fr 1.1fr;gap:0;border-bottom:3px solid var(--ink)}
@media(max-width:860px){.front{grid-template-columns:1fr}}
.lead{padding:26px 26px 30px;border-right:1.5px solid var(--ink)}
@media(max-width:860px){.lead{border-right:none;border-bottom:1.5px solid var(--ink)}}
.side{display:flex;flex-direction:column}
.kick{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
h2.head{font-size:clamp(28px,4.6vw,52px);font-weight:700;line-height:1.06;letter-spacing:-.015em;margin:8px 0 6px}
h3.head{font-size:clamp(20px,2.6vw,27px);font-weight:700;line-height:1.15;margin:6px 0 4px}
.byline{font-family:var(--mono);font-size:11px;color:var(--dim);margin-bottom:12px}
.cols{column-count:2;column-gap:26px;column-rule:1px solid var(--faint);font-size:15px;color:#2c2a24;text-align:justify;hyphens:auto}
@media(max-width:640px){.cols{column-count:1}}
.cols p, .body p{margin-bottom:10px}
.body{font-size:14.5px;color:#2c2a24}
p .r{color:var(--red);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.figure{margin:14px 0;border:2px solid var(--ink);background:#fff}
.figure img{display:block;filter:grayscale(1) contrast(1.05);transition:filter .25s;width:100%}
.figure:hover img{filter:grayscale(0)}
.figcap{font-family:var(--mono);font-size:10.5px;color:var(--dim);padding:6px 8px;border-top:1.5px solid var(--ink);background:var(--bg)}
.box{padding:22px 24px;border-bottom:1.5px solid var(--ink)}
.box:last-child{border-bottom:none}
.links{margin-top:10px;font-family:var(--mono);font-size:11.5px;display:flex;gap:8px;flex-wrap:wrap}
.links a{text-decoration:none;border:1.5px solid var(--ink);border-radius:999px;padding:4px 10px}
.links a:hover{background:var(--ink);color:var(--bg)}
/* iç sayfalar */
.section-head{display:flex;align-items:baseline;gap:14px;border-bottom:3px solid var(--ink);padding:34px 0 8px}
.section-head .roman{font-family:var(--mono);font-size:11px;letter-spacing:.24em;color:var(--red);text-transform:uppercase}
.section-head h2{font-size:clamp(24px,3.6vw,38px);font-weight:700;letter-spacing:-.012em}
.section-head .fill{flex:1;border-bottom:1px solid var(--faint)}
.trio{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:3px solid var(--ink)}
@media(max-width:860px){.trio{grid-template-columns:1fr}}
.trio>.box{border-bottom:none;border-right:1.5px solid var(--ink)}
.trio>.box:last-child{border-right:none}
@media(max-width:860px){.trio>.box{border-right:none;border-bottom:1.5px solid var(--ink)}.trio>.box:last-child{border-bottom:none}}
.duo{display:grid;grid-template-columns:1.4fr 1fr;border-bottom:3px solid var(--ink)}
@media(max-width:860px){.duo{grid-template-columns:1fr}}
.duo>.box{border-bottom:none;border-right:1.5px solid var(--ink)}
.duo>.box:last-child{border-right:none}
@media(max-width:860px){.duo>.box{border-right:none;border-bottom:1.5px solid var(--ink)}.duo>.box:last-child{border-bottom:none}}
/* ilanlar & arşiv */
.classifieds{font-size:13.5px}
.classifieds .ad{padding:10px 0;border-bottom:1px dashed var(--faint)}
.classifieds .ad:last-child{border:none}
.classifieds .ad b{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:2px}
.quote{border-left:3px solid var(--red);padding:6px 0 6px 14px;font-style:italic;font-size:15px;margin:10px 0;color:#2c2a24}
.quote .who{display:block;font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--dim);margin-top:4px}
footer{padding-top:22px;font-family:var(--mono);font-size:11.5px;color:var(--dim);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
footer a{color:var(--red);text-decoration:none}
footer a:hover{text-decoration:underline}
</style>
</head>
<body>
<div class="sheet">
<header class="mast">
<div class="over">blog değildir · portfolyo hiç değildir · bahçedir</div>
<h1>TUNAPRO<span>.</span>POSTASI</h1>
<div class="bar">
<span>cilt 1, sayı 1 · <b>yaz 2026</b></span>
<span>sahibi ve tek yazarı: <b>tuna gül</b></span>
<span>fiyatı: <b>ücretsiz</b> (zaten self-host)</span>
<span>her yerde <b>@tunapro1234</b></span>
</div>
</header>
<div class="wire" aria-hidden="true">
<span class="tape"><b>SON DAKİKA:</b> outpost'a bugün de push atıldı &nbsp;···&nbsp; replicant pypi'da: pip install pyreplicant &nbsp;···&nbsp; impact çemberlitaş bölgeseli 16 takımla tamamlandı &nbsp;···&nbsp; mail sunucusu bu hafta hiç patlamadı (nazar değmesin) &nbsp;···&nbsp; <b>SON DAKİKA:</b> outpost'a bugün de push atıldı &nbsp;···&nbsp; replicant pypi'da: pip install pyreplicant &nbsp;···&nbsp; impact çemberlitaş bölgeseli 16 takımla tamamlandı &nbsp;···&nbsp; mail sunucusu bu hafta hiç patlamadı (nazar değmesin) &nbsp;···&nbsp; </span>
</div>
<!-- ============ ÖN SAYFA ============ -->
<div class="front">
<div class="lead">
<div class="kick">manşet · ai servisi</div>
<h2 class="head">Sunucudaki agent filosu tek binary'den yönetiliyor</h2>
<div class="byline">bp.tunapro.xyz muhabirimizden</div>
<div class="cols">
<p><a class="r" href="https://bp.tunapro.xyz">blueprint (bp)</a>, muhabirimizin sunucusunda
yaşayan agent'ları yönetmek için kullandığı araç. tmux oturumları, message queue, usage
policy ve whatsapp client'ı tek go binary'sinde topluyor. <code style="font-family:var(--mono);font-size:.9em">bp daemon</code>
eski python ve node job'larını süperviz ediyor. yazarımız bunları yeniden yazmadığını,
çünkü çalıştıklarını ve çalışan şeye dokunulmadığını beyan etti.</p>
<p>dashboard'un terminal hali <code style="font-family:var(--mono);font-size:.9em">bp monitor</code> ile
geliyor. usage, cost, agents, projects ayrı ekranlar. agent'lara izole git branch'i
gerektiğinde worktree'leri de bp açıyor, kirli worktree'yi silmeyi reddediyor.
"hayatımın işletim sistemi gibi bi şey" diyor yazar, "okuduğunuz gazete bile onun
baktığı makinede basılıyor."</p>
</div>
<div class="figure">
<a href="https://github.com/tunapro1234/blueprint"><img src="https://opengraph.githubassets.com/garden/tunapro1234/blueprint" alt="blueprint reposu" loading="lazy"></a>
<div class="figcap">bp'nin github kartı. fotoğraf renklidir, mürekkep masrafından siyah-beyaz basılmıştır (imleci tutunca renklenir).</div>
</div>
<div class="links">
<a href="https://bp.tunapro.xyz">bp.tunapro.xyz ↗</a>
<a href="https://github.com/tunapro1234/blueprint">github ↗</a>
</div>
</div>
<div class="side">
<div class="box">
<div class="kick">bugünün ikinci haberi</div>
<h3 class="head">İnsan ilişkileri artık graf: outpost yayında ama şifreli</h3>
<div class="body">
<p>herkes obsidian uyumlu bir vault'ta birer .md dosyası. <a class="r" href="https://github.com/tunapro1234/outpost">outpost</a>
üstüne ilişki grafını çiziyor. araştırma agent'ları yeni insan öneriyor fakat vault'a
giriş insan onayına tabi. mail yalnızca okunuyor, gönderim yetkisi agent'lara verilmedi.
"o kadar da güvenmiyorum" dedi geliştirici.</p>
</div>
<div class="links"><a href="https://github.com/tunapro1234/outpost">github ↗</a></div>
</div>
<div class="box">
<div class="kick">hava durumu yerine: bahçe durumu</div>
<div class="body classifieds">
<div class="ad"><b>canlı</b> bp, impact, probot studio, homelab</div>
<div class="ad"><b>büyüyor</b> outpost (bugün de push yedi)</div>
<div class="ad"><b>kuluçkada</b> replicant, metron, omega</div>
<div class="ad"><b>arşivde ama sevgiyle</b> dbex, megaboi, cygnus, vector-h</div>
</div>
</div>
</div>
</div>
<!-- ============ AI SAYFASI ============ -->
<div class="section-head"><span class="roman">sayfa 2</span><h2>Araştırma Eki</h2><span class="fill"></span></div>
<div class="duo">
<div class="box">
<div class="kick">dosya konusu</div>
<h3 class="head">Deneklerin yerini LLM'ler alırsa: yazarımızın ABM merakı</h3>
<div class="byline">toplum simülasyonu masası</div>
<div class="body">
<p>abm (agent-based modeling) tarzı makro llm işleri bu gazetenin uzun vadeli saplantısı.
soru şu: deney katılımcısının yerine kişilikli bir llm agent koyarsan insan davranışı
çıkıyor mu, bini bir araya gelince topluma benziyor mu.</p>
<p><a class="r" href="https://github.com/tunapro1234/replicant">replicant</a> bu sorunun deney tarafı:
oTree deneylerine big five kişilikli agent'lar sokuyor (pypi'da <span style="font-family:var(--mono);font-size:.9em">pyreplicant</span>).
ilk replike edilen 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 class="r" href="https://github.com/tunapro1234/metron">metron</a> ise sosyoloji tarafı:
"sociology for AI agents." dünyada yüz binlerce deploy edilmiş agent var ve kimse
bunları popülasyon olarak incelemiyor. kişilik testleri, davranış profilleri, kümeleme.
ne tür zihinler seri üretiyoruz, birinin sorması lazımdı.</p>
<p>iktisat simülasyonu tarafı omega, <a class="r" href="https://github.com/trasumanar-ai">trasumanar</a>
çatısında aktif yeniden yazımda. trasumanar'ın adı dante'den: insan ötesine geçmeyi
kelimelerle anlatamazsın. iddialı isim, altında mütevazı repolar.</p>
</div>
<div class="links">
<a href="https://github.com/tunapro1234/replicant">replicant ↗</a>
<a href="https://github.com/tunapro1234/metron">metron ↗</a>
<a href="https://github.com/trasumanar-ai">trasumanar ↗</a>
<a href="https://github.com/tunapro1234/awesome-llm-social-simulation">okuma listesi ↗</a>
</div>
</div>
<div class="box">
<div class="kick">kısa kısa</div>
<div class="body">
<p><strong>simcity'de mesai.</strong> <a class="r" href="https://github.com/tunapro1234/hallucinating-splines">hallucinating-splines</a>
fork'unda agent'lar headless micropolis motorunda şehir kuruyor. şehircilik anlayışları
tartışmalı bulundu.</p>
<p><strong>anket doldurtan adam.</strong> <a class="r" href="https://github.com/tunapro1234/edsl-test">edsl</a>
ile ai destekli anket ve deney tasarımı kurcalanıyor, ilk izlenimler dosyada.</p>
</div>
<div class="figure">
<a href="https://github.com/tunapro1234/replicant"><img src="https://opengraph.githubassets.com/garden/tunapro1234/replicant" alt="replicant reposu" loading="lazy"></a>
<div class="figcap">replicant: pypi'da gerçek bir paket, gazetemiz gurur duyar.</div>
</div>
</div>
</div>
<!-- ============ ROBOTİK SAYFASI ============ -->
<div class="section-head"><span class="roman">sayfa 3</span><h2>Robotik &amp; Saha</h2><span class="fill"></span></div>
<div class="trio">
<div class="box">
<div class="kick">ticaret</div>
<h3 class="head">"Bir kit, sonsuz robot": parça satışı sürüyor</h3>
<div class="body">
<p><a class="r" href="https://probotstudio.com">probot studio</a>, lise robot yarışmaları
için kit ve kütüphane işi. çekirdek açık kaynak: probot-core (mit, 9★), arduino tabanlı
yarışmalarda sahada denenmiş. yazarımız buradan parça satmaya devam ettiğini,
slogandan hâlâ memnun olduğunu bildirdi.</p>
</div>
<div class="links">
<a href="https://probotstudio.com">probotstudio.com ↗</a>
<a href="https://github.com/probot-studio/probot-core">probot-core ↗</a>
</div>
</div>
<div class="box">
<div class="kick">organizasyon</div>
<h3 class="head">Yarışan çocuk yarışma düzenleyen adam oldu</h3>
<div class="body">
<p><a class="r" href="https://impact.tr">impact.tr</a> çatısında robot yarışmaları:
hands-on challenge (iki gün durmadan esp32'yle robot üretme), ideathon ve şehir şehir
yayılan robo soccer. nisan 2026 çemberlitaş bölgeselinde 16 takım, 150+ katılımcı.
sitenin kodu yazarın <a class="r" href="https://git.tunapro.xyz/tunapro/impact-site">kendi gitea'sında</a>.</p>
</div>
<div class="links"><a href="https://impact.tr">impact.tr ↗</a></div>
</div>
<div class="box">
<div class="kick">tarih servisi</div>
<h3 class="head">Lisede 7839, mezun olunca kendi takımı: Houston'a iki sefer</h3>
<div class="body">
<p>yazarımız lisede frc 7839'da yarıştı. mezun olunca mali'yle nf'yi kurdular, frc
9029. takımdan 2023'te nfr products çıktı, şirket devam ediyor. geçen sene zağanos'ta
görev aldı. 2025 ve 2026'da first championship'e gidildi. "first'ün öğrettiği kod
değil" diyor, "teslim tarihi gerçek olunca nasıl çalışıldığı. altı haftada robot
bitiyor çünkü bitmek zorunda."</p>
</div>
<div class="links">
<a href="https://github.com/team-nf">team-nf ↗</a>
<a href="https://github.com/tunapro1234/FRC7839">frc7839 arşivi ↗</a>
</div>
</div>
</div>
<!-- ============ ARŞİV + İLANLAR ============ -->
<div class="section-head"><span class="roman">sayfa 4</span><h2>Arşivden &amp; Küçük İlanlar</h2><span class="fill"></span></div>
<div class="duo">
<div class="box">
<div class="kick">github arkeolojisi · 2020-2024</div>
<div class="body">
<p><strong><a class="r" href="https://github.com/tunapro1234/DBEX">dbex</a> (2020).</strong>
python'un json kütüphanesinin generator hali, 11. sınıf işi. readme arşivimizin en
değerli belgesi:</p>
<div class="quote">"json kütüphanesine yetişebilmem için eklemem gereken çok fazla
özellik var ama maalesef ben 11. sınıfım."
<span class="who"> dbex readme'si, 2020</span></div>
<p><strong><a class="r" href="https://github.com/tunapro1234/MEGABOI">megaboi</a> (2020).</strong>
arduino mega + lcd shield + 6 butondan el yapımı konsol.</p>
<div class="quote">"neden ekranın yediği serial0'ı kullandın diyebilirsiniz, cevap çok
basit: bilmiyorum."
<span class="who"> megaboi readme'si, 2020</span></div>
<p><strong>c dönemi (2021).</strong>
<a class="r" href="https://github.com/tunapro1234/vector-h">vector-h</a> (c89'da vektör) ve
<a class="r" href="https://github.com/tunapro1234/cygnus">cygnus</a>. cygnus embed
cihazlar için ai kütüphanesi denemesiydi, yazar o sıra nnfs okuyordu ve "kitap bitince
düzenli baştan başlayacağım" notunu düşmüştü. kitap bitmiş, başlanmamıştır.</p>
<p><strong><a class="r" href="https://github.com/tunapro1234/elevator_optimization">elevator_optimization</a> (2024).</strong>
boğaziçi'nin ai yarışması için rust'la yazıldı ve kazandı. repo o günkü haliyle korunuyor.
kazanan koda dokunulmaz.</p>
</div>
</div>
<div class="box">
<div class="kick">küçük ilanlar</div>
<div class="body classifieds">
<div class="ad"><b>satılık</b> probot kitleri ve parçaları. yarışmada denenmiştir,
garantisi sloganıdır: bir kit, sonsuz robot. <a class="r" href="https://probotstudio.com">probotstudio.com</a></div>
<div class="ad"><b>kayıp</b> can'ın iş bitiriciliği. bulan olursa
<a class="r" href="https://canbitirici.tunapro.xyz">rapora</a> baksın, orada da yok ama
neden olmadığı grafiklerle açıklanmıştır.</div>
<div class="ad"><b>eleman aranıyor</b> gece 2'de mail sunucusuna bakacak gönüllü.
maaş yok, huzur var. başvuru: yazarın kendisi zaten, ilan formalite.</div>
<div class="ad"><b>duyuru</b> bu gazete <a class="r" href="https://git.tunapro.xyz">git.tunapro.xyz</a>,
video sunucusu, mcdash ve mail ile aynı makinelerde basılmaktadır. bulut kullanılmamıştır.</div>
<div class="ad"><b>yıllık okurlarına</b> qr'dan gelenlere ayrı sayfa açılmıştır:
<a class="r" href="/yillik/">tunapro.xyz/yillik</a></div>
</div>
<div class="figure" style="margin-top:16px">
<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="figcap">reklam: probot-core, açık kaynak. mit lisansı, 9 yıldız.</div>
</div>
</div>
</div>
<footer>
<span>© 2026 tunapro postası · tüm hakları yazarına aittir, zaten başka çalışanı yoktur</span>
<span><a href="https://github.com/tunapro1234">github</a> · <a href="https://git.tunapro.xyz">gitea</a> · <a href="https://stackoverflow.com/users/tunapro1234">stack overflow</a></span>
</footer>
</div>
</body>
</html>