Blog
Catatan teknis seputar web development, DevOps, dan integrasi AI.
131 artikel
- 23.11ai
Kodifikasi Gaya Artikel Jadi Satu File Skill
Instruksi gaya yang diulang di sepuluh prompt saya kodifikasi jadi skill blog-id-style, satu file yang dimuat agen pas dibutuhkan.
TL;DR: Preferensi gaya yang diulang di banyak prompt itu duplikasi procedural knowledge: sekali lupa satu file, dua artikel beda standar. Solusinya agent skills dari Anthropic, folder instruksi yang dimuat agen secara dinamis; semua aturan gaya kini tinggal di satu skill bernama blog-id-style. Skill itu ibarat onboarding guide: isi cuma yang agen belum tahu, dan tiap perubahan gaya cukup ubah satu file.
#agent-skills#writing-style#editorial - 23.03seo
EYD V: Perubahan Penting dan Panduan Menulis Kalimat Efektif
Rangkuman perubahan EYD V, dari kata depan di sampai partikel pun, plus panduan praktis menyusun kalimat efektif untuk tulisan profesional.
TL;DR: EYD V berlaku resmi sejak Agustus 2022 dan menggantikan PUEBI sepenuhnya. Perubahan utamanya mencakup kata depan ditulis terpisah, awalan disambung, partikel pun dipisah, serta pengakuan monoftong eu untuk kata serapan daerah. Selain ejaan, tulisan yang baik butuh kalimat efektif: hemat kata, logis, satu gagasan per kalimat, dan bentuk paralel.
#seo#eyd#bahasa-indonesia - 22.51ai
Snippet Bilang 96%, Papan Resmi Bilang 79,2%
Snippet pencarian bilang 96%, papan resmi bilang 79,2%. Empat aturan verifikasi benchmark yang lahir dari insiden itu.
TL;DR: Snippet Google mengklaim skor SWE-bench Verified 95–96%, padahal papan resmi swebench.com mencatat puncak 79,2% per Desember 2025. Penulis menelusuri JSON langsung, membuang klaim tanpa sumber primer, dan mengoreksi kesalahan sendiri soal entri non-Claude tertinggi (TRAE, 78,8%). Hasilnya empat aturan riset: catat tanggal akses, verifikasi sumber primer, utamakan papan resmi di atas snippet, dan laporkan skor ganda apa adanya.
#ai-agents#swe-bench#benchmark - 22.29devops
.gitignore Saya Selama Ini Menyembunyikan Aset Disaster Recovery
Whitelist aset DR di .gitignore bikin saya sadar repo Git bisa jadi salinan pertama strategi backup 3-2-1-1-0 tanpa NAS atau tape.
TL;DR: Commit kecil soal .gitignore bikin saya sadar file DR penting selama ini ikut ter-ignore, padahal harus masuk repo. Setup backup baru memakai pola 3-2-1-1-0: Git repo dengan bundle plus patch dump index/stash, restic terenkripsi lokal, dan cloud immutable off-site. Motivasinya jelas: ransomware kerap menyerang backup dulu, jadi salinan harus immutable dan restore teruji.
#backup#git#restic - 18.33ai
Jawaban AI Terpotong, Ternyata Cuma Soal Budget Token
Jawaban about-mode terpotong di tengah kalimat. Ternyata bukan model yang error, tapi konstanta batas token output 512 yang saya salin dari template lama.
TL;DR: Jawaban about-mode terpotong di tengah kalimat karena konstanta _ASK_MAX_ANSWER_TOKENS = 512 disalin dari template lama tanpa pernah diukur. Budget itu mepet untuk format multi-bagian yang menggabungkan ringkasan, section PENJELASAN, dan CTA dalam satu generasi. Perbaikannya satu baris, naikkan jadi 900, plus pelajaran: ukur bentuk jawaban target dulu sebelum menetapkan batas token.
#llm#python#fastapi - 16.31backend
Bare python di entrypoint Docker: interpreter sistem, bukan venv
Script seed knowledge gagal terus di container padahal file ada di image. Ternyata bare python manggil interpreter sistem, bukan venv.
TL;DR: Script knowledge seed gagal di Docker karena bare python memakai interpreter sistem, bukan venv, sehingga dependensi yang terpasang tidak terlihat. Solusinya panggil interpreter venv dengan path absolut dan set PYTHONPATH ke root project agar import berfungsi. Tambahkan || echo skipped supaya container tetap hidup dan kegagalan tetap tercatat di log.
#docker#python#deployment - 11.40backend
Upsert Idempoten di Entrypoint, Biar Data Chat Gak Selisih Lagi
Data baseline chat bot lokal dan VPS selisih karena seeding manual. Solusinya: seed JSON di repo di-upsert via entrypoint container.
TL;DR: Data knowledge di VPS kurang karena baseline diisi lewat copy-paste SQL manual yang rawan kelewat baris. Solusinya: seed file di repo di-upsert otomatis tiap container start pakai INSERT ON DUPLICATE KEY UPDATE dengan slug sebagai kunci alami. Pelajarannya: affected-rows 2 berarti update satu baris, dan dev-prod sebaiknya parity agar bug serupa tidak lolos.
#mariadb#docker#python - 16.42backend
CTA_FLAG Terbelah di Tengah Stream SSE
Regex strip per delta nggak bisa melihat marker yang terbelah dua potongan. Pelajaran boundary matching di streaming SSE.
TL;DR: Bug ini terjadi karena regex pembersih CTA_FLAG: YES dijalankan per delta, sementara marker sering terbelah di dua potongan stream sehingga lolos tersimpan ke cache Redis. Perbaikannya strip ulang di string gabungan setelah stream selesai. Pelajarannya: cek invariant di output akhir, dan gunakan structured output JSON untuk solusi kanonis.
#sse#streaming#regex - 15.29ai
Marker CTA_FLAG: YES yang Bocor ke Chat
Regex strip di akhir string nggak cukup: marker CTA dari LLM bisa lolos lewat tengah teks dan jalur streaming SSE sebelum post-processing jalan.
TL;DR: Marker CTA_FLAG: YES bocor ke user lewat dua jalur: LLM naruh marker di posisi acak yang luput dari regex ber-anchor $, dan jalur streaming SSE melewati post-processing. Patch-nya buang anchor dan strip marker di stream juga. Fix fundamentalnya: tombol CTA dirender dari field terstruktur, bukan ditumpang ke teks LLM lalu di-parse regex.
#llm#streaming#sse