<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Latent Space</title><description>Towards observable, reliable, scalable AI</description><link>https://jaesolshin.com/</link><language>en</language><copyright>Copyright 2026 Jaesol Shin</copyright><generator>Astro + @astrojs/rss</generator><item><title>Speeding up LLM inference with MTP and diffusion</title><link>https://jaesolshin.com/posts/mtp-diffusion-gemma4-qwen36/</link><guid isPermaLink="true">https://jaesolshin.com/posts/mtp-diffusion-gemma4-qwen36/</guid><description>MTP and diffusion inference on Gemma 4 and Qwen 3.6, fp8 on one H100</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><category>AI</category><category>LLM</category><category>vLLM</category><category>MTP</category><category>Speculative Decoding</category><category>Diffusion</category><category>Gemma</category><category>Qwen</category><category>Benchmark</category></item><item><title>Requirements as Latent State</title><link>https://jaesolshin.com/posts/requirements-as-latent-state/</link><guid isPermaLink="true">https://jaesolshin.com/posts/requirements-as-latent-state/</guid><description>Why spec-driven development is a requirements-inference architecture</description><pubDate>Wed, 27 May 2026 15:00:00 GMT</pubDate><category>AI</category><category>Agent</category><category>Requirements</category><category>Spec-Driven</category><category>Harness</category><category>Feedback</category><category>Control</category></item><item><title>Skill and Harness</title><link>https://jaesolshin.com/posts/skill-and-harness/</link><guid isPermaLink="true">https://jaesolshin.com/posts/skill-and-harness/</guid><description>Why skills and harnesses overlap in implementation</description><pubDate>Wed, 27 May 2026 15:00:00 GMT</pubDate><category>AI</category><category>Agent</category><category>Harness</category><category>Skills</category><category>Policy</category><category>Feedback</category></item><item><title>Harness as Environment</title><link>https://jaesolshin.com/posts/harness-layer/</link><guid isPermaLink="true">https://jaesolshin.com/posts/harness-layer/</guid><description>How harness design determines whether agents actually adapt.</description><pubDate>Tue, 26 May 2026 15:00:00 GMT</pubDate><category>AI</category><category>Agent</category><category>Harness</category><category>Memory</category><category>Adaptation</category><category>RAG</category><category>Skills</category><category>LLM</category></item><item><title>Memory as Adaptation</title><link>https://jaesolshin.com/posts/memory-as-adaptation/</link><guid isPermaLink="true">https://jaesolshin.com/posts/memory-as-adaptation/</guid><description>Why agent memory moved from RAG storage to the foundation of policy adaptation</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate><category>AI</category><category>Agent</category><category>Memory</category><category>RAG</category><category>Self-Improvement</category><category>POMDP</category><category>Episodic</category><category>Procedural</category></item><item><title>Weights, Prompts, Codes as Parameters</title><link>https://jaesolshin.com/posts/weights-prompts-codes-as-parameters/</link><guid isPermaLink="true">https://jaesolshin.com/posts/weights-prompts-codes-as-parameters/</guid><description>Weights, prompts, and code as parameters at different layers of a learnable policy space</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate><category>AI</category><category>Agent</category><category>LLM</category><category>POMDP</category><category>DSPy</category><category>Harness</category><category>Self-Improvement</category><category>RL</category></item><item><title>GraphDB Benchmark (2/2) — Workload Matrix and Final Recommendations</title><link>https://jaesolshin.com/posts/graph-db-benchmark-8-engines/</link><guid isPermaLink="true">https://jaesolshin.com/posts/graph-db-benchmark-8-engines/</guid><description>Eight graph engines measured across OLTP, memory, analytics, and differentiation queries</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>AI</category><category>GraphDB</category><category>PostgreSQL</category><category>RCTE</category><category>Neo4j</category><category>MemGraph</category><category>FalkorDB</category><category>pgRouting</category><category>GraphRAG</category><category>Benchmark</category><category>LightRAG</category></item><item><title>Comparing Four LightRAG Variants — Same Root, Different Production Strategies</title><link>https://jaesolshin.com/posts/lightrag-variants-comparison/</link><guid isPermaLink="true">https://jaesolshin.com/posts/lightrag-variants-comparison/</guid><description>Source-level comparison of RAG-Anything, ApeRAG, and EdgeQuake as LightRAG derivatives</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>AI</category><category>LightRAG</category><category>RAG-Anything</category><category>ApeRAG</category><category>EdgeQuake</category><category>GraphRAG</category><category>RAG</category><category>Graph</category></item><item><title>PG-Strom SSB Benchmark — Arrow FDW Comes Before GPU</title><link>https://jaesolshin.com/posts/pgstrom-ssb-benchmark/</link><guid isPermaLink="true">https://jaesolshin.com/posts/pgstrom-ssb-benchmark/</guid><description>Why Arrow+GPU achieves 10x at SF=100 and Heap+GPU loses to CPU on wide tables</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>DB</category><category>PG-Strom</category><category>PostgreSQL</category><category>GPU</category><category>OLAP</category><category>Benchmark</category><category>Arrow</category><category>SSB</category><category>cuVS</category><category>pgvector</category></item><item><title>PostgreSQL Lakehouse (2/2) — Distributed Processing and Citus Integration</title><link>https://jaesolshin.com/posts/postgres-lakehouse-arch/</link><guid isPermaLink="true">https://jaesolshin.com/posts/postgres-lakehouse-arch/</guid><description>Distributed processing (Ray/Daft/Smallpond) and Citus + pg_lake FDW integration</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>DB</category><category>PostgreSQL</category><category>Lakehouse</category><category>pg_lake</category><category>Iceberg</category><category>Citus</category><category>Ray</category><category>DuckDB</category><category>Daft</category><category>postgres_fdw</category></item><item><title>PostgreSQL Lakehouse (1/2) — When DuckLake Hit a Wall, pg_lake Was There</title><link>https://jaesolshin.com/posts/postgres-lakehouse-pglake/</link><guid isPermaLink="true">https://jaesolshin.com/posts/postgres-lakehouse-pglake/</guid><description>Eight phases building a PostgreSQL-centered Lakehouse: DuckLake&apos;s libpq collision and pg_lake</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>DB</category><category>PostgreSQL</category><category>Lakehouse</category><category>DuckLake</category><category>Iceberg</category><category>pg_lake</category><category>DuckDB</category><category>Parquet</category><category>Snowflake</category></item><item><title>PDF to Markdown — Five Tools Compared</title><link>https://jaesolshin.com/posts/pdf-to-markdown-comparison/</link><guid isPermaLink="true">https://jaesolshin.com/posts/pdf-to-markdown-comparison/</guid><description>Five PDF-to-Markdown converters (markitdown, pdftotext, pymupdf, mineru, opendataloader-pdf) scored against a seven-criterion 100-point rubric</description><pubDate>Wed, 20 May 2026 11:40:00 GMT</pubDate><category>AI</category><category>PDF</category><category>Markdown</category><category>RAG</category><category>Ingestion</category><category>mineru</category><category>markitdown</category><category>pymupdf</category><category>pdftotext</category><category>opendataloader-pdf</category><category>Benchmark</category></item><item><title>Markdown to Slides and PDF — A zsh Pipeline</title><link>https://jaesolshin.com/posts/markdown-slide-pdf-pipeline/</link><guid isPermaLink="true">https://jaesolshin.com/posts/markdown-slide-pdf-pipeline/</guid><description>Pandoc plus LaTeX Beamer and macOS screenshot settings wired as zsh aliases — one markdown file emits slide PDF, document PDF, and configurable screenshots</description><pubDate>Wed, 20 May 2026 11:39:11 GMT</pubDate><category>Development</category><category>zsh</category><category>Markdown</category><category>Pandoc</category><category>PDF</category><category>Slides</category><category>LaTeX</category><category>Content Workflow</category><category>Dotfiles</category></item><item><title>Sharing Claude Code Sessions via Symlinked .jsonl</title><link>https://jaesolshin.com/posts/claude-code-session-sharing/</link><guid isPermaLink="true">https://jaesolshin.com/posts/claude-code-session-sharing/</guid><description>Resume the same Claude Code session across accounts by pointing every projects directory at one shared physical path</description><pubDate>Wed, 20 May 2026 11:30:37 GMT</pubDate><category>AI</category><category>Claude Code</category><category>Multi-account</category><category>Session Sharing</category><category>Symlink</category><category>.jsonl</category><category>Configuration</category><category>Developer Workflow</category></item><item><title>Apple Silicon LLM Inference — Five Backends Compared</title><link>https://jaesolshin.com/posts/apple-silicon-llm-backends/</link><guid isPermaLink="true">https://jaesolshin.com/posts/apple-silicon-llm-backends/</guid><description>Benchmarking Qwen3.5-9B on Apple Silicon across MLX, llama.cpp, Ollama, omlx, and vLLM Metal — single-request throughput, prefill scaling, decode vs input length, and concurrency response</description><pubDate>Wed, 20 May 2026 08:36:00 GMT</pubDate><category>AI</category><category>LLM</category><category>Apple Silicon</category><category>MLX</category><category>llama.cpp</category><category>Ollama</category><category>omlx</category><category>vLLM</category><category>Benchmark</category><category>Inference</category><category>Qwen3.5</category><category>GatedDeltaNet</category></item><item><title>LightRAG Without Apache AGE — Graph Storage in Recursive CTE</title><link>https://jaesolshin.com/posts/lightrag-pg-rcte/</link><guid isPermaLink="true">https://jaesolshin.com/posts/lightrag-pg-rcte/</guid><description>Implementing LightRAG&apos;s BaseGraphStorage on plain PostgreSQL with RCTE — why a 1-hop-dominant retrieval pattern fits flat SQL</description><pubDate>Wed, 20 May 2026 08:35:02 GMT</pubDate><category>AI</category><category>LightRAG</category><category>PostgreSQL</category><category>RAG</category><category>GraphRAG</category><category>Apache AGE</category><category>Recursive CTE</category><category>Graph Storage</category><category>Benchmark</category></item><item><title>Codex App Server Python SDK — JSON-RPC v2 over stdio</title><link>https://jaesolshin.com/posts/codex-app-server-sdk/</link><guid isPermaLink="true">https://jaesolshin.com/posts/codex-app-server-sdk/</guid><description>A Python SDK over the codex app-server stdio interface — install, first call, thread model, main methods</description><pubDate>Wed, 20 May 2026 08:13:38 GMT</pubDate><category>AI</category><category>Codex</category><category>OpenAI</category><category>Python SDK</category><category>JSON-RPC</category><category>GPT-5</category><category>Coding Agent</category><category>stdio</category></item><item><title>Running Multiple Claude Code Accounts on One Machine</title><link>https://jaesolshin.com/posts/claude-code-multi-account/</link><guid isPermaLink="true">https://jaesolshin.com/posts/claude-code-multi-account/</guid><description>Run isolated Claude Code accounts on the same Mac with one env var and a small zsh function</description><pubDate>Wed, 20 May 2026 08:01:28 GMT</pubDate><category>AI</category><category>Claude Code</category><category>Multi-account</category><category>zsh</category><category>Dotfiles</category><category>Productivity</category><category>Configuration</category><category>Developer Workflow</category></item><item><title>Long-Context Evaluation — NIAH and Lost in the Middle</title><link>https://jaesolshin.com/posts/niah-lost-in-the-middle/</link><guid isPermaLink="true">https://jaesolshin.com/posts/niah-lost-in-the-middle/</guid><description>NIAH limits, the Lost in the Middle effect, alternative benchmarks, and measured recall across four reasoning-effort modes</description><pubDate>Wed, 20 May 2026 07:56:10 GMT</pubDate><category>AI</category><category>LLM</category><category>Long-context</category><category>NIAH</category><category>Benchmark</category><category>Lost-in-the-Middle</category><category>RULER</category><category>LongBench</category><category>Evaluation</category><category>Reasoning</category></item><item><title>Should Databases Handle AI Too?</title><link>https://jaesolshin.com/posts/in-db-ai-five-systems/</link><guid isPermaLink="true">https://jaesolshin.com/posts/in-db-ai-five-systems/</guid><description>Oracle 23ai, EDB AIDB, PostgresML, Timescale pgai, pg_aidb — five systems and the abstraction-boundary discussion</description><pubDate>Wed, 20 May 2026 07:39:17 GMT</pubDate><category>DB</category><category>PostgreSQL</category><category>AI</category><category>RAG</category><category>in-db-ai</category><category>pgai</category><category>Oracle</category><category>EnterpriseDB</category><category>Timescale</category><category>Supabase</category><category>MongoDB</category><category>ClickHouse</category><category>architecture</category></item><item><title>autocorrect.zsh — 167 lines of zsh that fix failed commands</title><link>https://jaesolshin.com/posts/autocorrect-zsh/</link><guid isPermaLink="true">https://jaesolshin.com/posts/autocorrect-zsh/</guid><description>Gemini Flash structured output and zsh preexec/precmd hooks — failed commands fixed in place, no new terminal app</description><pubDate>Wed, 20 May 2026 07:29:17 GMT</pubDate><category>Development</category><category>zsh</category><category>Gemini</category><category>Terminal</category><category>AI</category><category>Shell</category><category>Productivity</category><category>Hooks</category><category>structured-output</category></item><item><title>Replacing Elasticsearch with PostgreSQL</title><link>https://jaesolshin.com/posts/postgresql-replaces-elasticsearch/</link><guid isPermaLink="true">https://jaesolshin.com/posts/postgresql-replaces-elasticsearch/</guid><description>textsearch_ko (MeCab) + pg_textsearch BM25 + pgvector HNSW + DB-side RRF matches Elasticsearch on Korean search quality and runs 2–5× faster on a single node. Eight phases of measurement, head-to-head against ES, Qdrant, and Vespa.</description><pubDate>Wed, 20 May 2026 07:10:58 GMT</pubDate><category>DB</category><category>PostgreSQL</category><category>Elasticsearch</category><category>Korean</category><category>BM25</category><category>pgvector</category><category>Hybrid Search</category><category>RRF</category><category>MeCab</category><category>Qdrant</category><category>Vespa</category><category>RAG</category></item><item><title>NVIDIA NIM API — Free Inference for GLM, Kimi, Nemotron, and Gemma 4</title><link>https://jaesolshin.com/posts/nvidia-nim-api/</link><guid isPermaLink="true">https://jaesolshin.com/posts/nvidia-nim-api/</guid><description>NVIDIA&apos;s build.nvidia.com offers 100+ models on H100 infrastructure for free. Plug it directly into Claude Code, Cursor, or any OpenAI-compatible coding agent.</description><pubDate>Wed, 20 May 2026 02:34:05 GMT</pubDate><category>AI</category><category>NVIDIA</category><category>NIM</category><category>API</category><category>DeepSeek</category><category>free</category><category>inference</category><category>LLM</category><category>coding agent</category></item><item><title>Claude Code Settings Sync and Troubleshooting</title><link>https://jaesolshin.com/posts/claude-code-sync-settings/</link><guid isPermaLink="true">https://jaesolshin.com/posts/claude-code-sync-settings/</guid><description>Sync matrix, migration steps, common failures, and diagnostic commands for running multiple Claude Code accounts on one machine</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><category>AI</category><category>Claude Code</category><category>Multi-account</category><category>Settings Sync</category><category>Troubleshooting</category><category>Configuration</category><category>MCP</category><category>Developer Workflow</category></item><item><title>Disk Utilities Through Two Surfaces — zsh Aliases and a Claude Skill</title><link>https://jaesolshin.com/posts/disk-utils-zsh-and-claude-skill/</link><guid isPermaLink="true">https://jaesolshin.com/posts/disk-utils-zsh-and-claude-skill/</guid><description>The same disk-management logic exposed as zsh aliases (dh/dl/dol) and as a Claude Skill, with stale-while-revalidate caching in the shell</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><category>Development</category><category>zsh</category><category>Claude Code</category><category>Skill</category><category>Dotfiles</category><category>Disk Management</category><category>stale-while-revalidate</category><category>Dev Workflow</category></item><item><title>GraphDB Benchmark, Eight Engines (Part 1) — Decomposing the RCTE 290x Gap</title><link>https://jaesolshin.com/posts/graph-db-benchmark-rcte-vs-age/</link><guid isPermaLink="true">https://jaesolshin.com/posts/graph-db-benchmark-rcte-vs-age/</guid><description>On a 1.14M-edge knowledge-graph workload, PostgreSQL RCTE beats Apache AGE by 290x — tracing the cypher() wrapper&apos;s 13ms cost and PG plan generation accumulation</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><category>AI</category><category>GraphDB</category><category>PostgreSQL</category><category>RCTE</category><category>Apache AGE</category><category>Neo4j</category><category>GraphRAG</category><category>Benchmark</category><category>LightRAG</category><category>Recursive CTE</category></item><item><title>10 OpenAI Models Through Quick Benchmarks — The Model Isn&apos;t as Smart as You Pay</title><link>https://jaesolshin.com/posts/openai-models-comparison/</link><guid isPermaLink="true">https://jaesolshin.com/posts/openai-models-comparison/</guid><description>I ran 30 trials per configuration across GPT-4, GPT-5, and o-series models using three reasoning problems. gpt-5-nano on minimal scored 4.4%. o1 scored lower than gpt-4o.</description><pubDate>Fri, 15 May 2026 18:46:52 GMT</pubDate><category>AI</category><category>OpenAI</category><category>GPT</category><category>model comparison</category><category>language models</category><category>reasoning models</category><category>performance analysis</category></item><item><title>GitHub Models Inference API — Free Model Access Tested</title><link>https://jaesolshin.com/posts/github-inference-api/</link><guid isPermaLink="true">https://jaesolshin.com/posts/github-inference-api/</guid><description>How to easily call modern AI models such as GPT-4.1 and DeepSeek R1 through GitHub&apos;s free model inference API</description><pubDate>Fri, 15 May 2026 18:43:29 GMT</pubDate><category>AI</category><category>GitHub</category><category>Inference API</category><category>API</category><category>machine learning</category><category>GPT-4</category><category>DeepSeek</category><category>OpenAI</category></item><item><title>Experimenting with the GPT-5 Responses API Web Search Tool</title><link>https://jaesolshin.com/posts/gpt5-web-search-api/</link><guid isPermaLink="true">https://jaesolshin.com/posts/gpt5-web-search-api/</guid><description>An experimental record of implementing web search with OpenAI&apos;s GPT-5 Responses API, focused on tool-support differences between models and how parameters shape responses. The analysis centers on web search tool compatibility between gpt-5 and gpt-5-chat-latest.</description><pubDate>Fri, 15 May 2026 18:43:29 GMT</pubDate><category>AI</category><category>GPT-5</category><category>API</category><category>web search</category><category>OpenAI</category><category>tutorial</category></item><item><title>Life As It Could Be</title><link>https://jaesolshin.com/posts/alife_summary/</link><guid isPermaLink="true">https://jaesolshin.com/posts/alife_summary/</guid><description>A guide to the field of Artificial Life, introduced at the ALife 2025 conference exhibition &apos;Life As It Could Be&apos;.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate><category>Research</category><category>artificial life</category><category>alife</category><category>complexity science</category><category>emergence</category><category>conference</category></item></channel></rss>