Tüm lab yazıları

Lab notu

LOG-001Notlar

Defteri açmak

Bu sitenin neden artık bir laboratuvar defteri var, içine ne giriyor ve bir yazı nasıl kuruluyor.

3 dk okuma
  • Next.js
  • MDX
  • Notes

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.