<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>duakilo.net</title><link>https://duakilo.net/</link><description>Writing about Python, Django and AI engineering.</description><atom:link href="https://duakilo.net/rss.xml" rel="self" type="application/rss+xml"/><item><title>A2A Protocol v1.0: Agent-to-Agent Interoperability with Python's a2a-sdk</title><link>https://duakilo.net/blog/a2a-protocol-python-agent-interoperability/</link><guid isPermaLink="true">https://duakilo.net/blog/a2a-protocol-python-agent-interoperability/</guid><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><description>Panduan lengkap A2A Protocol v1.0 untuk developer Python/Django: Agent Card, AgentExecutor, client-server architecture, dan kode kerja dengan a2a-sdk 1.2.2.</description><category>python</category><category>django</category><category>a2a</category><category>agent-to-agent</category><category>ai-agents</category><category>mcp</category><category>protocol</category></item><item><title>Integrasi AI Agents ke Django dengan PydanticAI: 4 Pola Praktis</title><link>https://duakilo.net/blog/django-pydanticai-agent-integration/</link><guid isPermaLink="true">https://duakilo.net/blog/django-pydanticai-agent-integration/</guid><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><description>Empat pola integrasi AI agents ke Django pakai PydanticAI: streaming endpoint, persistent memory, service-layer tools, dan model-aware agents - plus pertimbangan keamanan untuk production.</description><category>python</category><category>django</category><category>pydantic-ai</category><category>ai-agents</category><category>tutorial</category></item><item><title>Django 6.1 CSP: Terapkan Nonce dengan Aman di Template</title><link>https://duakilo.net/blog/django-61-csp-nonce-template-hardening/</link><guid isPermaLink="true">https://duakilo.net/blog/django-61-csp-nonce-template-hardening/</guid><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><description>Panduan menerapkan CSP bertahap di Django 6.1, memakai nonce pada template, dan menghindari reuse nonce akibat cache.</description><category>django</category><category>python</category><category>security</category><category>csp</category></item><item><title>Lazy Import Python 3.15: Dampak dan Hal yang Perlu Diuji Tim Django</title><link>https://duakilo.net/blog/python-315-explicit-lazy-imports/</link><guid isPermaLink="true">https://duakilo.net/blog/python-315-explicit-lazy-imports/</guid><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><description>Python 3.15 menambahkan lazy import opsional. Pelajari cara kerjanya, kapan fitur ini berguna, dan apa yang perlu diuji sebelum dipakai di proyek Django.</description><category>python</category><category>django</category><category>performance</category><category>imports</category></item><item><title>Semantic Search di Django Tanpa Vector Database: pgvector dengan Benar</title><link>https://duakilo.net/blog/pgvector-django-semantic-search/</link><guid isPermaLink="true">https://duakilo.net/blog/pgvector-django-semantic-search/</guid><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate><description>Bangun semantic search di Django dengan pgvector dan PostgreSQL: dari embedding, HNSW, filtered recall, hingga hybrid search dengan RRF.</description><category>python</category><category>django</category><category>postgresql</category><category>pgvector</category><category>semantic-search</category></item><item><title>Free-Threaded Python Resmi Didukung: Arti Python 3.14t untuk Django pada 2026</title><link>https://duakilo.net/blog/free-threaded-python-314t-django-2026/</link><guid isPermaLink="true">https://duakilo.net/blog/free-threaded-python-314t-django-2026/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><description>Panduan praktis menguji Python 3.14t pada backend Django dan GraphQL, dari audit dependensi sampai worker CPU-bound.</description><category>Python</category><category>Django</category><category>GraphQL</category><category>free-threading</category><category>backend</category></item><item><title>Composite Primary Keys di Django 5.2: Panduan Praktis dan Batasannya</title><link>https://duakilo.net/blog/django-52-composite-primary-key/</link><guid isPermaLink="true">https://duakilo.net/blog/django-52-composite-primary-key/</guid><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate><description>Pelajari CompositePrimaryKey di Django 5.2, tuple pk, batasan relasi, workaround, dan kapan fitur ini cocok untuk model kamu.</description><category>python</category><category>django</category><category>database</category><category>orm</category><category>graphql</category></item><item><title>Optimasi Query Django ORM: Hentikan N+1, Ukur Dulu</title><link>https://duakilo.net/blog/django-orm-query-optimization/</link><guid isPermaLink="true">https://duakilo.net/blog/django-orm-query-optimization/</guid><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate><description>Panduan praktis mengukur dan memperbaiki N+1 di Django ORM dengan eager loading, field selection, agregasi, index, dan EXPLAIN.</description><category>python</category><category>django</category><category>orm</category><category>performance</category><category>postgresql</category><category>database</category></item><item><title>Django 6.0 Tasks: Background Jobs Tanpa Celery — @task, Backends &amp; Pitfalls</title><link>https://duakilo.net/blog/django-6-tasks-background-jobs-without-celery/</link><guid isPermaLink="true">https://duakilo.net/blog/django-6-tasks-background-jobs-without-celery/</guid><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><description>Django 6.0 punya tasks framework bawaan: @task, enqueue, dan backends. Cara kerjanya, cara migrasi dari Celery, dan pitfalls yang paling sering menggigit.</description><category>python</category><category>django</category><category>backend</category><category>background-jobs</category></item><item><title>LangGraph 1.0: Stateful AI Agents sebagai Graph di Python</title><link>https://duakilo.net/blog/langgraph-1-stateful-agents-python/</link><guid isPermaLink="true">https://duakilo.net/blog/langgraph-1-stateful-agents-python/</guid><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><description>Linear prompt chains tidak cukup untuk agent kompleks. LangGraph 1.0: StateGraph, conditional edges, checkpointing, dan human-in-the-loop dengan interrupt().</description><category>python</category><category>ai-agents</category><category>langgraph</category><category>langchain</category><category>tutorial</category></item><item><title>MCP untuk Tim Django/FastAPI: Server Pertamamu dengan Python SDK v2</title><link>https://duakilo.net/blog/mcp-python-sdk-v2/</link><guid isPermaLink="true">https://duakilo.net/blog/mcp-python-sdk-v2/</guid><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><description>Python SDK MCP v2.0.0 rilis 28 Juli 2026 dan mematahkan semua tutorial lama. Ini panduan membangun MCP server pertama untuk tim Django/FastAPI — dengan tabel migrasi v1→v2.</description><category>python</category><category>django</category><category>fastapi</category><category>mcp</category><category>ai-dev</category><category>agents</category></item><item><title>Pydantic AI: Langkah Natural Berikutnya Setelah Pydantic v2</title><link>https://duakilo.net/blog/pydantic-ai-type-safe-agents/</link><guid isPermaLink="true">https://duakilo.net/blog/pydantic-ai-type-safe-agents/</guid><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><description>Kamu sudah pakai Pydantic v2 untuk validasi data. Sekarang pakai model yang sama untuk validasi output LLM — type-safe, testable, tanpa overhead LangChain.</description><category>python</category><category>pydantic</category><category>ai-dev</category><category>agents</category></item><item><title>DSPy: Programming, Not Prompting</title><link>https://duakilo.net/blog/dspy-programming-not-prompting/</link><guid isPermaLink="true">https://duakilo.net/blog/dspy-programming-not-prompting/</guid><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate><description>DSPy mengubah prompt string yang rapuh menjadi typed signatures, composable modules, dan optimizable programs; ORM untuk pipeline LLM.</description><category>python</category><category>dspy</category><category>llm</category><category>ai-dev</category></item><item><title>Pydantic v2 untuk Production Python — Advanced Patterns</title><link>https://duakilo.net/blog/pydantic-v2-production-patterns/</link><guid isPermaLink="true">https://duakilo.net/blog/pydantic-v2-production-patterns/</guid><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate><description>Beyond basic validation: custom validators, discriminated unions, computed fields, dan performance patterns yang benar-benar dipakai di production.</description><category>python</category><category>pydantic</category><category>validation</category><category>data-modeling</category></item><item><title>Kapan (dan Kapan Tidak) Migrasi Django ke Async</title><link>https://duakilo.net/blog/django-async-migration-guide/</link><guid isPermaLink="true">https://duakilo.net/blog/django-async-migration-guide/</guid><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><description>Decision guide untuk developer Django: kapan async benar-benar memberikan keuntungan, kapan sync lebih baik, dan bagaimana mengevaluasi trade-off sebelum migrasi.</description><category>python</category><category>django</category><category>async</category><category>performance</category></item><item><title>alook.ai: Bangun Tim AI Personal Kamu</title><link>https://duakilo.net/blog/alook-ai-personal-agent-platform/</link><guid isPermaLink="true">https://duakilo.net/blog/alook-ai-personal-agent-platform/</guid><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><description>Build tim AI virtual dengan alook.ai — multi-agent workflow, email delegation, memory persisten, dan scheduling. Open-source, self-hosted gratis untuk solo developer.</description><category>ai-dev</category><category>agent</category><category>alook</category><category>automation</category><category>tutorial</category></item><item><title>Stack AI Gratis untuk Developer: 9router + opencode</title><link>https://duakilo.net/blog/9router-opencode-free-ai-stack/</link><guid isPermaLink="true">https://duakilo.net/blog/9router-opencode-free-ai-stack/</guid><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><description>Tutorial end-to-end setup 9router + opencode: stack AI coding gratis, tanpa rate limit, fallback otomatis ke 40+ provider, dan hemat token 20-40% dengan RTK Token Saver.</description><category>dev-tools</category><category>opencode</category><category>9router</category><category>ai</category><category>tutorial</category></item><item><title>Dari REST ke GraphQL dengan Strawberry + Django</title><link>https://duakilo.net/blog/graphql-strawberry-django/</link><guid isPermaLink="true">https://duakilo.net/blog/graphql-strawberry-django/</guid><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><description>Panduan praktis migrasi REST API Django ke GraphQL pakai Strawberry — setup, schema, resolver, DataLoader, autentikasi, file upload, plus perbandingan dengan Graphene.</description><category>python</category><category>django</category><category>graphql</category><category>strawberry</category><category>api</category><category>tutorial</category></item><item><title>Strategi Caching untuk FastAPI: dari Memori Lokal sampai Redis</title><link>https://duakilo.net/blog/caching-strategies-fastapi/</link><guid isPermaLink="true">https://duakilo.net/blog/caching-strategies-fastapi/</guid><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate><description>Perbandingan empat layer caching untuk FastAPI: in-process, Redis, HTTP headers, dan query cache — strategi invalidasi dan jebakan production.</description><category>python</category><category>fastapi</category><category>caching</category><category>redis</category><category>performance</category><category>backend</category></item><item><title>Type Hints di Python: dari Dasar hingga Pola Backend yang Praktis</title><link>https://duakilo.net/blog/python-type-hints-basics-to-practical/</link><guid isPermaLink="true">https://duakilo.net/blog/python-type-hints-basics-to-practical/</guid><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><description>Panduan bertahap memakai type hints Python untuk backend: mulai dari annotation sederhana, TypedDict, Protocol, generics, hingga integrasi mypy, Pyright, dan Pydantic v2.</description><category>python</category><category>typing</category><category>mypy</category><category>pydantic</category><category>type-hints</category><category>backend</category></item><item><title>Bangun Local RAG App dengan LlamaIndex dan Ollama</title><link>https://duakilo.net/blog/local-rag-llamaindex-ollama/</link><guid isPermaLink="true">https://duakilo.net/blog/local-rag-llamaindex-ollama/</guid><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate><description>Tutorial praktis RAG lokal dengan LlamaIndex dan Ollama: arsitektur, kode, dan batasan sebelum dipakai production.</description><category>python</category><category>rag</category><category>llamaindex</category><category>ollama</category><category>llm</category><category>local-ai</category></item><item><title>5 Ekstensi VS Code yang Benar-Benar Berguna untuk Python Developer</title><link>https://duakilo.net/blog/vscode-extensions-python-developers/</link><guid isPermaLink="true">https://duakilo.net/blog/vscode-extensions-python-developers/</guid><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate><description>Panduan memilih ekstensi VS Code untuk workflow Python 2026: Python, Pylance, Ruff, debugpy, Mypy — integrasi dengan uv dan virtual environment.</description><category>python</category><category>vscode</category><category>tooling</category><category>ruff</category><category>mypy</category><category>productivity</category></item><item><title>Pola PostgreSQL + Python: Indexing, Connection Pooling, JSONB, dan Async Query</title><link>https://duakilo.net/blog/postgresql-python-patterns/</link><guid isPermaLink="true">https://duakilo.net/blog/postgresql-python-patterns/</guid><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><description>Empat pola PostgreSQL yang paling sering bikin aplikasi Python lambat kalau diabaikan: strategi index yang tepat, connection pooling yang benar, JSONB sebagai pengganti EAV, dan async query dengan asyncpg/SQLAlchemy.</description><category>postgresql</category><category>python</category><category>asyncpg</category><category>sqlalchemy</category><category>database</category><category>performance</category></item><item><title>FastAPI vs Django REST Framework: Mana yang Dipilih di 2025?</title><link>https://duakilo.net/blog/fastapi-vs-django-rest/</link><guid isPermaLink="true">https://duakilo.net/blog/fastapi-vs-django-rest/</guid><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><description>Perbandingan praktis FastAPI dan Django REST Framework dari sisi performa, async, ORM, validasi, dan ekosistem — supaya keputusan stack API kamu tidak cuma ikut tren.</description><category>python</category><category>fastapi</category><category>django</category><category>drf</category><category>rest-api</category><category>backend</category></item><item><title>Setup Environment Python Dev Modern: pyenv + uv + VS Code</title><link>https://duakilo.net/blog/python-dev-environment-2025/</link><guid isPermaLink="true">https://duakilo.net/blog/python-dev-environment-2025/</guid><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate><description>Panduan praktis menyusun environment Python dev yang cepat dan rapi: pyenv untuk version management, uv untuk dependency &amp; virtualenv, VS Code untuk editor — lengkap dengan konfigurasi siap pakai.</description><category>python</category><category>pyenv</category><category>uv</category><category>vscode</category><category>developer-tools</category><category>productivity</category></item><item><title>Claude API vs OpenAI API: A Python Developer's Honest Comparison</title><link>https://duakilo.net/blog/claude-api-vs-openai-api/</link><guid isPermaLink="true">https://duakilo.net/blog/claude-api-vs-openai-api/</guid><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate><description>Perbandingan langsung antara Claude API dan OpenAI API untuk developer Python — dari setup, streaming, hingga tool use dan pricing.</description><category>claude</category><category>openai</category><category>llm-api</category><category>python</category><category>ai-tools</category></item><item><title>Git Rebase vs Merge: Stop Guessing, Start Choosing</title><link>https://duakilo.net/blog/git-rebase-vs-merge/</link><guid isPermaLink="true">https://duakilo.net/blog/git-rebase-vs-merge/</guid><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate><description>Both merge and rebase integrate changes between branches — but they leave very different histories. Here's exactly when to use each, and why it matters.</description><category>git</category><category>workflow</category><category>version-control</category><category>tutorial</category></item><item><title>Hello, World — Why I Started This Blog</title><link>https://duakilo.net/blog/hello-world/</link><guid isPermaLink="true">https://duakilo.net/blog/hello-world/</guid><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate><description>Every developer's first post. Why duakilo.net exists, what I plan to write about, and what you can expect here.</description><category>meta</category><category>intro</category><category>writing</category></item><item><title>uv: Satu Tool untuk Semua Kebutuhan Python Dev</title><link>https://duakilo.net/blog/uv-python-package-manager/</link><guid isPermaLink="true">https://duakilo.net/blog/uv-python-package-manager/</guid><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate><description>uv dari Astral bukan sekadar pengganti pip yang lebih cepat — ia menyatukan seluruh toolchain Python (pip, pyenv, virtualenv, poetry, pipx) menjadi satu alat tunggal.</description><category>uv</category><category>python</category><category>packaging</category><category>developer-tools</category><category>productivity</category></item></channel></rss>