Blog
Catatan teknis seputar web development, DevOps, dan integrasi AI.
131 artikel
- 04.43ai
Scraper Jawaban Chat AI Nyangkut di Gema Prompt
Capture scraper chat AI malah menangkap prompt sendiri. Solusinya: filter gema, klik Copy lalu baca clipboard, plus sidecar URL untuk recover jawaban.
TL;DR: Scraper sempat menangkap gema prompt sendiri karena anchor cocok di bubble prompt, lalu diperbaiki dengan filter marker dan syarat panjang minimal. Karena DOM chat tervirtualisasi, ekstraksi dipindah ke clipboard: tombol Copy diklik Playwright lalu teksnya dibaca lewat clipboard API. File sidecar URL menyediakan mode recover, menguatkan prinsipnya: ambil data dari clipboard, bukan render, dan siapkan jalur pemulihan sejak awal.
#automation#playwright#qwen - 02.40frontend
DOM Chat AI Cuma Nyimpen Setengah Jawaban
Scraping jawaban chat AI dari DOM cuma dapat setengah karena virtualisasi. Jalur utuhnya: klik Copy, baca clipboard, plus kontrak output ke model.
TL;DR: Chat modern pakai virtualisasi, jadi DOM cuma snapshot yang terus berubah dan scraping innerText selalu kepotong. Solusinya klik tombol Copy lalu baca clipboard, dilapis accessibility tree dan innerText, dengan polling di tab baru biar stabil. Paling murah, kasih kontrak ke model: bungkus jawaban dalam blok kode ditutup sentinel ===SELESAI===.
#automation#playwright#llm - 02.34security
DNS ISP Meracuni Riset Online, Anti-bot Jadi Kambing
Bulan-bulan salah duga anti-bot; pelakunya DNS ISP Indonesia yang mengalihkan resolusi duckduckgo.com ke blok Trustpositif.
TL;DR: Kegagalan browser headless di Docker buka DuckDuckGo ternyata bukan ulah anti-bot, melainkan DNS ISP yang meracuni resolusi domain lewat mekanisme TrustPositif sejak mandat Kominfo 2015. Diagnosa nslookup membuktikan IP jawaban bukan milik DDG. Solusinya satu flag: jalankan container dengan --dns 1.1.1.1, langsung normal tanpa sentuh kode.
#dns#doh#cloudflare - 02.34ai
AI Agent Publish Full-Auto: Rem Lebih Penting dari Gas
Pipeline artikel otomatis dari riset sampai publish, dan empat gerbang pengaman yang membuatnya layak dipercaya.
TL;DR: Blog ini jalan penuh otomatis lewat cron 2 jam, tapi disebut workflow, bukan agen liar, supaya determinis. Rem-nya dibangun lebih kuat dari gas: kepercayaan diberikan bertahap, verifikasi yang bisa menolak dengan rollback otomatis, dan riset wajib minimal tiga sumber resmi. Tugas mekanis diserahkan ke mesin, sedangkan selera, fakta baru, dan keputusan editorial tetap di tangan manusia.
#ai-agents#automation#ci-cd - 02.34backend
Semantic Search di VPS 1GB Tanpa Vector DB
Cosine pure-Python, vektor di postmeta MariaDB, embedding di mesin lokal. Fitur semantik tanpa service baru di server 1GB.
TL;DR: VPS 1GB tak kuat menjalankan vector database plus model embedding, jadi bebannya dipecah. Embedding dihitung di mesin lokal via Ollama, vektor disimpan sebagai JSON di postmeta MariaDB, dan cosine similarity pakai pure Python tanpa numpy untuk deteksi duplikat. Skema ini efisien untuk puluhan artikel, tapi mulai jebol saat katalog ribuan atau QPS tinggi.
#python#fastapi#embedding - 02.33seo
Sitemap "Tidak Dapat Mengambil" di GSC: Diagnosa Sebelum Panik
Status merah "Tidak dapat mengambil" di GSC bukan berarti sitemap 404. Begini urutan diagnosa dari sisi server sebelum putuskan apa pun.
TL;DR: Sitemap merah di Search Console ternyata bukan berarti file-nya rusak; semua 147 URL balas 200 dan Cloudflare tidak memblokir. Pesan "Couldn't fetch" murni berarti Google belum berhasil menarik data saat percobaan terakhir dan akan retry dalam beberapa hari. Jangan resubmit berulang-ulang; tunggu, cek pakai Test live URL, dan investigasi lebih dalam kalau seminggu masih gagal.
#seo#search-console#cloudflare - 02.19ai
Cron Artikel Ganti Mesin: Chat Gratis Utama, LLM Lokal Cadangan
Cron artikel adityo.web.id kini generate draft lewat chat AI gratis via browser automation, dengan LLM lokal router9 sebagai fallback circuit breaker.
TL;DR: Penulis pakai chat.qwen.ai gratis via Playwright untuk draft artikel, tapi jalur ini rapuh dan free tier-nya bisa dicabut kapan saja. Karena itu Qwen cuma jadi jalur utama dengan fallback kaku ke router9: satu retry, dua kegagalan beruntun, langsung pindah jalur, circuit breaker sederhana. Failure domain keduanya beda, jadi pipeline tetap jalan walau satu mati.
#automation#llm#playwright - 00.33tooling
Skrip Riset Tahan Gagal: Rotasi API Key Dua Provider
Rotasi API key dua lapis, fallback provider, dan DoH buat DNS ISP yang dibelokkan: pelajaran bikin skrip riset yang nggak gampang mati.
TL;DR: Firecrawl tanpa API key balikin 403 permanen, jadi penulis bikin web-direct.py, skrip 125 baris stdlib dengan rotasi dua lapis: putar key dalam satu provider, lalu pindah ke Tavily. Subcommand health ngecek semua key sekaligus biar kuota habis ketahuan sebelum dipakai. Untuk domain yang dibelokkan ISP, verifikasi lewat Cloudflare DoH dulu, lalu paksa curl ke IP benar dengan --resolve.
#automation#tooling#rest-api - 23.44seo
Asisten AI Terbaik 2026: Pilihan Tepat & Tren Agent Runtime
Perbandingan ChatGPT, Claude, Gemini, dan Perplexity per kebutuhan, plus titik temu asisten konsumen dengan agent runtime self-hosted: OpenClaw, Hermes Agent, dan Agent Zero.
TL;DR: Asisten AI 2026 bukan lagi sekadar chatbot pintar, tapi sistem yang ingat konteks dan bertindak otonom. ChatGPT, Claude, Gemini, dan Perplexity tetap unggul sebagai otak sesuai kebutuhan, tapi sifatnya session-based dan datanya di server vendor. Solusinya hibrida: sambungkan ke agent runtime self-hosted seperti OpenClaw, Hermes Agent, atau Agent Zero untuk memori persisten dan kendali data penuh.
#seo#ai#agent-runtime