Blog
Catatan teknis seputar web development, DevOps, dan integrasi AI.
508 artikel
- 22.31ai
Kenapa Prompt Internal Saya Wajib Bahasa Inggris
Instruksi internal cron saya pindah full English. Bukan soal gengsi: satu variabel kontrol buat pipeline LLM yang lewat banyak model berbeda.
#prompt#prompt-engineering#llm - 18.55devops
Kenapa Saya Hapus Fallback CPU Ollama di Compose
Dua commit, dua menit: fallback CPU buat Ollama kutulis lalu kuhapus. Fallback yang butuh runbook itu bukan mitigasi.
#docker#ollama#fallback - 18.37devops
Container Healthy, Browser Mati: Jebakan Migrasi Docker Compose
Status healthy lima jam padahal browser di dalam kontainer mati sejak awal. Pelajaran soal user default, HOME, dan healthcheck dari satu migrasi compose.
#docker#playwright#debugging - 02.50devops
Satu API Key Cuma Bikin Riset Berhenti di 429
Rate limit 429 bikin pipeline riset berhenti. Pelajaran merancang rotasi multi-key: cooldown per status HTTP, single-pass, dan error yang jangan dirotasi.
TL;DR: Satu API key berarti satu batas rate limit, jadi patch ini merotasi beberapa key dengan cooldown berbeda: 429 ditunggu 60 detik, 402 lebih lama, error request seperti 400 dan 404 tidak dirotasi. Rotasinya single-pass agar tidak hang saat semua key cooldown. Rotasi bukan pengganti backoff; rapikan pola request dulu.
#firecrawl#python#automation - 02.47devops
Backup Database Aktif Itu Nggak Boleh Sekadar Cp
Menyalin file SQLite yang aktif bukan backup. Pelajaran dari script backup ringan: hot backup, tar atomik terverifikasi, dan prune berlapis.
TL;DR: Script ini menyalin SQLite aktif lewat perintah .backup, bukan cp mentah, supaya snapshot tetap konsisten di mode WAL. Arsip ditulis ke nama sementara, diverifikasi dengan tar -tzf, baru direname atomik, jadi tidak ada arsip setengah jadi. Penghapusan lama baru jalan setelah verify, dengan lantai minimal tiga arsip terbaru plus flock biar cron nggak dobel.
#backup#sqlite#cron - 02.46devops
Watchdog Masih Ngecek Path Container yang Udah Nggak Ada
Migrasi watchdog Hermes ke host-native ternyata bukan cuma ganti path. Pelajaran soal git diff --quiet, set -euo pipefail, dan pola 0-token.
TL;DR: Migrasi Hermes ke host-native nyaris kelar, tapi watchdog pagi masih menunjuk path container lama. Perbaikannya bukan sekadar ganti prefix; cek git, lokasi venv, dan set -euo pipefail ikut berubah, dan kombinasi guard itu bisa membuat kegagalan senyap terbaca sebagai hari sehat. Cek ukuran DB dan turn_log tetap dijaga agar alarm tetap bunyi.
#hermes#devops#cron - 22.36frontend
Aksen Nav Berpindah Sendiri, Ternyata Salah Modulo
Warna entri AI di navbar saya bergeser begitu urutan menu berubah. Pelajaran soal penugasan warna pakai modulo index dan fix berbasis identitas data.
TL;DR: Warna entri "Tanya AI" di navbar bergeser ternyata karena aksen dihitung pakai modulo index array, bukan bug tema. Perbaikannya mempin warna ke identitas href, plus menambah pill state idle supaya entri khusus beda bentuk sekaligus warna sesuai WCAG. Pelajarannya: identitas visual sebaiknya terikat data, bukan urutan render.
#tailwind#react#css - 20.21frontend
Tombol WhatsApp di Header Saya Diganti Entri Tanya AI
Pill konsultasi WhatsApp dihapus dari header dan fitur Tanya AI naik jadi entri navigasi. Pelajaran soal kontrak tempat CTA eksternal versus fitur internal.
TL;DR: Pill konsultasi WhatsApp dihapus dari header karena hanyalah aksi sekali-pakai, bukan fitur permanen. Perannya digantikan entri Tanya AI di navigasi utama, cukup ditambahkan lewat navbar.json dan label dua bahasa via next-intl. Pelajarannya: fitur masuk menu, aksi jadi tombol kontekstual di halaman relevan, jangan tumpuk semuanya di header.
#ux#accessibility#next-intl - 18.18frontend
Komposer Chat Desktop Ramping dengan Varian sm: Tailwind
Menyusutkan tinggi field dan tombol komposer chat desktop dengan empat kelas responsif Tailwind, tanpa komponen terpisah dan tanpa JavaScript.
TL;DR: Okay, the user wants a 3-sentence summary in informal-professional Indonesian, exactly 3 sentences, max 60 words total. No markdown, bullets, or repeating the title. Just the summary.
#tailwind#css#ux