Blog
Catatan teknis seputar web development, DevOps, dan integrasi AI.
131 artikel
- 10.31devops
Situs Dibilang Kena DDoS, Log Nginx Bilang Lain
Laporan DDoS berakhir di log: 80 persen request 504 persis tiap jam, limit_req tak pernah terpicu, pelakunya PHP-FPM kehabisan worker.
TL;DR: Laporan dugaan DDoS ternyata gelombang 504 periodik tiap jam akibat antrean PHP-FPM yang macet, bukan serangan. Rate limit tak pernah terpicu karena $binary_remote_addr menangkap IP Cloudflare, bukan IP asli pengunjung. Solusinya: aktifkan cache Cloudflare, sesuaikan pool PHP-FPM, dan atur logrotate untuk log dalam container.
#nginx#docker#cloudflare - 08.11ai
Satu File AGENTS.md Belum Cukup: Memory Agent Saya Tiga Lapis
Repo dengan banyak coding agent butuh lebih dari satu file instruksi: AGENTS.md untuk prosedur, memory user untuk preferensi, fact store untuk fakta.
TL;DR: AGENTS.md itu file instruksi sederhana di root repo yang dibaca berbagai coding agent lintas tool, jadi aturan nggak perlu diduplikat per vendor. Pelajaran utamanya: file instruksi yang kepanjangan justru diabaikan, jadi isi cuma hal yang kalau dihapus bikin salah. Sisanya pecah tiga lapis: prosedur project di AGENTS.md, preferensi developer di memory user, fakta referensi diambil on-demand.
#ai-agents#prompt#automation - 00.39ai
Skill, Memory, Pipeline: Kamus Istilah AI Agent yang Nggak Basi
Bedah istilah AI agent dari sumber primernya: workflow vs agent, skills dan progressive disclosure, tiga jenis memory, RAG, sampai pipeline dan guardrail.
TL;DR: Agent, workflow, skill, dan memory itu beda: workflow pegang kendali lewat kode, agent memutuskan sendiri langkahnya. Skill itu SOP yang dimuat saat perlu, memory menyimpan interaksi lama, dan semuanya berebut context window terbatas. Pipeline plus gate, watchdog, dan observability bikin otomasi bisa dipercaya, karena rem lebih penting dari gas.
#ai-agents#llm#automation - 00.16ai
Cron Kirim Dua Kali? Pasang Kontrak Async Idempoten
Loop cron yang crash mengirim ulang prompt yang sama. Kontrak async kirim-then-poll plus dua file state bikin generate chat Qwen aman dieksekusi ulang.
TL;DR: Cron yang crash setelah prompt terkirim bikin artikel sama terkirim dua kali dan kuota gratis hangus. Solusinya cuma dua file kosong sebagai idempotency key: penanda prompt sudah terkirim dan penanda hasil sudah selesai, plus kontrak exit code untuk status antrian hingga selesai. Cron itu mesin retry alami, jadi selama state-nya bisa dicek, message broker nggak perlu.
#automation#qwen#cron - 22.41tooling
Selftest Hijau, Lalu ImportError Gara-Gara Nama File
File tool bernama keyword.py lolos selftest tapi bikin import collections gagal. sys.path dan import transitif jadi jebakan yang framework besar pun kena.
TL;DR: Menamai file sama dengan modul stdlib bisa bikin impor transitif gagal diam-diam: selftest hijau, tapi begitu collections dipanggil, Python memuat file lokal yang tidak punya iskeyword. Penyebabnya sys.path menempatkan direktori skrip di urutan pertama. Solusinya: cek nama sebelum menamai file baru, plus flag -P sebagai lapisan isolasi tambahan.
#python#tooling#debugging - 21.06seo
Membaca Tren Pencarian dari RSS Google Trends dan Suggest
RSS trends.google.com per negara dan endpoint Suggest memberi sinyal topik gratis. Filter kata sendiri mengubah noise jadi ide konten.
TL;DR: Google Trends punya RSS gratis yang bisa diambil tanpa API key, cukup ganti parameter geo untuk tiap negara. Kombinasikan dengan endpoint Suggest untuk mendapat variasi frasa long-tail, lalu filter sendiri sesuai niche blog. Angka traffic sifatnya relatif dan endpoint Suggest tak resmi, jadi simpan data mentah dan siapkan migrasi ke API resmi bila butuh skala besar.
#google-trends#rss#python - 21.06ai
Model Terbanyak Dipakai Bukan yang Terpintar di Benchmark
Leaderboard pemakaian OpenCode dipimpin model murah terbuka, bukan raja benchmark. Cara baca usage, retention, dan harga sebelum ganti model.
TL;DR: Peringkat satu pemakaian di OpenCode ditempati deepseek-v4-flash, bukan model benchmark terbaik seperti GPT-5.6, karena pemakaian agregat mencerminkan voting dompet: harga, kecepatan, dan retensi pengguna. Sebelum pindah model, cek tiga sinyal: volume plus momentum, retensi mingguan, dan benchmark sebagai filter kualitas minimal. Daftar rekomendasi resmi hanya titik mulai; validasi dengan data pemakaian dan uji kecil di repo sendiri.
#llm#benchmark#deepseek - 19.34ai
Poll jawaban baru di chat lama Qwen tanpa dapat yang basi
Pola record-then-poll di tools qwen-article: rekam jawaban lama sebelum kirim instruksi, poll sampai muncul jawaban baru yang bener-bener beda.
TL;DR: Otomasi chat UI sempat mengambil jawaban lama dari clipboard karena proses generasi model belum selesai. Solusinya pola record-then-poll: rekam jawaban lama sebagai baseline, beri jeda 25 detik, lalu poll tiap 15 detik sampai teks berubah. Pola ini mencegah sukses yang salah dan membuat pipeline artikel otomatis jadi lebih tangguh.
#automation#qwen#chat-ui - 19.06tooling
Satu chat Qwen untuk dua artikel: followup lewat chat URL
Opsi --chat-url bikin translate EN pakai chat Qwen lama, satu chat buat dua artikel, plus pelajaran caching fetch Next.js 15.
TL;DR: Pipeline translate blog penulis awalnya boros kuota karena Qwen membuka chat baru tiap generate. Solusinya opsi --chat-url yang melanjutkan sesi lama, jadi satu chat menghasilkan artikel dua bahasa sekaligus. Bonusnya, penulis belajar caching Next.js 15 yang tak lagi otomatis, sehingga pipeline makin hemat, stabil, dan mudah dirawat.
#automation#qwen#nextjs