Defteri açmak
Bu sitenin neden artık bir laboratuvar defteri var, içine ne giriyor ve bir yazı nasıl kuruluyor.
Bu sitedeki geri kalan her şey, karşılığında para aldığım işler. Vaka analizleri olay bittikten sonra yazılır: sonuç bellidir, hikâyenin bir şekli vardır — elli mikron hassasiyetle ölçülen bir kaynak ucu, açılan bir işlemci. Derli toplu görünmelerinin sebebi, yazı başlamadan işin çoktan bitmiş olması.
Burası öteki yığın. Kendi zamanımda yaptığım şeyler; ilginç kısmı da genellikle ortada kalıyor: veri sayfasıyla uyuşmayan ölçüm, apaçık görünüp öyle çıkmayan yaklaşım. Bir kısmı bitiyor. Bir kısmı, tekrar düşmektense yazmayı tercih ettiğim çıkmaz sokaklar.
Buraya ne giriyor
Kabaca, içimi kemiren her şey: ucuz telsiz donanımıyla sinyal işleme, hiç müşterisi olmamış görüntü işleme denemeleri, ders bitince ölmeyen FPGA fikirleri, mevcut araçlar sinirime dokunduğu için yazdığım küçük programlar ve arada bir yanlış yaptığım şeylerin dökümü.
Çıta "etkileyici olsun" değil. Çıta "bir şey öğrendim ve nasıl yaptığımı gösterebiliyorum".
Bir yazı nasıl kuruluyor
Her yazı iki düzyazı dosyası ve bir kayıt satırından ibaret. Düzyazı
content/labs/ altında, her dil için bir dosya:
content/labs/
opening-the-notebook.en.mdx
opening-the-notebook.tr.mdx
lib/labs.ts içindeki kayıt ise index'in, site haritasının ve dil
değiştiricinin gerçekten okuduğu yer — başlık, özet, tarih, etiketler ve her
gövde için bir yükleyici:
{
id: "opening-the-notebook",
date: "2026-07-31",
minutes: 3,
tags: ["Next.js", "MDX", "Notes"],
locales: {
en: { slug: "opening-the-notebook", title: "…", summary: "…" },
tr: { slug: "defteri-acmak", title: "…", summary: "…" },
},
body: {
en: () => import("@/content/labs/opening-the-notebook.en.mdx"),
tr: () => import("@/content/labs/opening-the-notebook.tr.mdx"),
},
}
Her iki dil de tip tarafından zorunlu tutuluyor; yani yarım çevrilmiş bir yazı
siteye kazara çıkamıyor. draft: true eklemek ise yazıyı hazır olana kadar her
listeden, rotadan ve site haritasından uzak tutuyor.
Bir yazı neleri kullanabilir
Normal markdown, üstüne GitHub lezzeti — tablolar, görev listeleri, üstü çizili metin. Bunların yanında birkaç bileşen, hiçbir şey import etmeden kullanıma hazır.
<Note> az önce okuduğun kenar notu. <Figure> ise next/image'ın yer ayırmak
için ihtiyaç duyduğu ölçülerle birlikte, açıklamalı bir görsel:
<Figure
src="/labs/waterfall.png"
width={1600}
height={900}
alt="2.4 GHz bandının şelale grafiği"
caption="2.4 GHz bandından kırk saniye, 2 MS/s"
/>
<Stats> de öne çıkarmaya değer sayı üreten yazılar için:
- Yazı başına dosya
- 3
- Diller
- EN + TR
- Build çıktısı
- Statik
Bir şeyin genişliği
Sayfa üç sütun geniş. Yazı bunun ikisinde duruyor ve bu bir artık değil, bir karar: bu boyuttaki bir satırı 1140 pikselin tamamına yayarsan yaklaşık 150 karaktere çıkıyor ve göz, bir sonraki satırın başını bulamaz oluyor. İki sütun 46rem eder; bu da bir satırın rahat okunduğu 45–75 karakter aralığına düşüyor.
Bir görselin böyle bir tavanı yok — bir spektrogram ne kadar büyükse o kadar
okunur — o yüzden her blok 1, 2 ya da 3 sütunluk bir span alıyor ve yalnızca
metin varsayılan olarak 2'de kalıyor:
<Figure src="/labs/genis-diyagram.png" span={3} … />
<Note span={1} title="Kısa bir kenar notu">…</Note>
Markdown'ın kendisinde bir prop koyacak yer yok; o yüzden farklı bir genişlik
isteyen bir başlık, tablo ya da paragraf <Span> ile sarılıyor:
<Span cols={3}>
Okuma ölçüsünün içine sığmayacak kadar geniş bir tablo.
</Span>
<Split> ise normal akışın yapamadığı tek şey: iki bloğu yan yana koymak. İlk
çocuk baştaki eleman, ondan sonrası da yanındaki sütun oluyor — böylece küçük
bir görsel, yanındaki genişliği boş bırakmak zorunda kalmıyor:
<Split ratio="1-2">
<Figure src="/labs/havadan.jpg" span={1} … />
Görseli okuyan paragraf.
</Split>
İki sütunun sığmadığı genişliğin altında hepsi tek sütuna dönüyor ve baştaki eleman metnin üstüne geçiyor — zaten yazıldığı sıra bu.
Bundan sonrası
Bir takvimim yok, varmış gibi de yapmayacağım. Yazılar, yazmaya değer bir şey çıktığında geliyor. Tezgâh başından kalan en eski alışkanlığı burada da sürdürmeye çalışıyorum: neden denediğini hâlâ hatırlıyorken yaz.