<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Ciprian Mandache</title>
<atom:link href="https://ciprian.51k.eu/feed/" rel="self" type="application/rss+xml" /><link></link>
<description>Mostly writing code that does stuff...</description>
<lastBuildDate>Tue, 29 Sep 2026 09:38:17 +0000</lastBuildDate>
<language>en-US</language>
<sy:updatePeriod>
hourly	</sy:updatePeriod>
<sy:updateFrequency>
1	</sy:updateFrequency><image>
<url>https://ciprian.51k.eu/upld/2019/02/cropped-terminal-icon-32x32.png</url><title>Ciprian Mandache</title><link></link>
<width>32</width>
<height>32</height>
</image>
<item><title>decidealot: Stop Making a Chatbot Write an Essay When You Needed a Fucking Yes or No</title><link>https://ciprian.51k.eu/decidealot-stop-making-a-chatbot-write-an-essay-when-you-needed-a-yes-or-no/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Wed, 23 Sep 2026 23:12:51 +0000</pubDate>
<category><![CDATA[AI Tooling]]></category>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Python]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[ai agent]]></category>
<category><![CDATA[ai skill]]></category>
<category><![CDATA[classification]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[cuda]]></category>
<category><![CDATA[decidealot]]></category>
<category><![CDATA[decision model]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[fastapi]]></category>
<category><![CDATA[gpu]]></category>
<category><![CDATA[huggingface]]></category>
<category><![CDATA[jev]]></category>
<category><![CDATA[jev alternative]]></category>
<category><![CDATA[laya]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[local ai]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[privacy]]></category>
<category><![CDATA[python]]></category>
<category><![CDATA[pytorch]]></category>
<category><![CDATA[rest api]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[structured output]]></category>
<category><![CDATA[system one]]></category>
<category><![CDATA[system one model]]></category>
<category><![CDATA[typesafe]]></category>
<category><![CDATA[typesafe ai]]></category>
<category><![CDATA[von]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/decidealot-stop-making-a-chatbot-write-an-essay-when-you-needed-a-yes-or-no/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3-300x150.png 300w, https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3-768x384.png 768w, https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3-600x300.png 600w, https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />TypeSafe dropped Jev and my whole feed lost its shit over it. They call it a System One model: you hand it messy state plus a few typed questions, and ...]]></description>
</item>
<item><title>Self-Hosted AIOps Agent: Watches Your Systems, Finds What Broke</title><link>https://ciprian.51k.eu/self-hosted-aiops-agent/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Sun, 30 Aug 2026 13:44:28 +0000</pubDate>
<category><![CDATA[Services]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/autonomous-ai-agent-that-watches-your-business/</guid><description><![CDATA[<img
width="300" height="225" src="https://ciprian.51k.eu/upld/2026/08/aiops-agent-cover-300x225.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="AIOps agent: ask your whole stack anything, or let it watch and tell you first" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" fetchpriority="high" srcset="https://ciprian.51k.eu/upld/2026/08/aiops-agent-cover-300x225.jpg 300w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-cover-1024x768.jpg 1024w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-cover-768x576.jpg 768w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-cover-1536x1152.jpg 1536w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-cover.jpg 1600w" sizes="(max-width: 300px) 100vw, 300px" />A custom AI agent wired into your logs, metrics, code and internal APIs. Ask it anything in plain language, and it watches your systems and alerts you before you even look.]]></description>
</item>
<item><title>chatz: A Self-Hosted AI Chat Where the Assistant Draws the Fucking Dashboard</title><link>https://ciprian.51k.eu/chatz-generative-ui-ai-chat/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Sun, 16 Aug 2026 07:22:33 +0000</pubDate>
<category><![CDATA[AI]]></category>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Golang]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[ai chat]]></category>
<category><![CDATA[anthropic]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[chatz]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[generative ui]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[openai]]></category>
<category><![CDATA[postgres]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[sqlite]]></category>
<category><![CDATA[sse]]></category>
<category><![CDATA[streaming]]></category>
<category><![CDATA[svelte]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/chatz-generative-ui-ai-chat/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/08/chatz-1-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/08/chatz-1-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/chatz-1-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/chatz-1-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/chatz-1.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />Every self-hosted chat UI hands you the same thing: a wall of markdown. You ask the model for last quarter&#8217;s numbers, it writes you a table in monospace, and if ...]]></description>
</item>
<item><title>pr0xteus: Disposable VPN Exits for Apps You Wouldn&#8217;t Trust With Your Password</title><link>https://ciprian.51k.eu/pr0xteus-disposable-vpn-exits/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Fri, 14 Aug 2026 15:15:12 +0000</pubDate>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Golang]]></category>
<category><![CDATA[ai skill]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[clawhub]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[networking]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[pr0xteus]]></category>
<category><![CDATA[proxy]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[servicepack]]></category>
<category><![CDATA[socks5]]></category>
<category><![CDATA[tailscale]]></category>
<category><![CDATA[vpn]]></category>
<category><![CDATA[wireguard]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/pr0xteus-disposable-vpn-exits/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/08/pr0xteus-1-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/08/pr0xteus-1-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/pr0xteus-1-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/pr0xteus-1-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/pr0xteus-1.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />You&#8217;ve got some app that needs to leave the building through a VPN. A scraper, a browser bot, some agent poking at sites that would rather it came from somewhere ...]]></description>
</item>
<item><title>ctxscope: Stop Threading request_id Through Every Function Signature</title><link>https://ciprian.51k.eu/ctxscope-context-scoped-log-attributes-go/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Sat, 08 Aug 2026 20:00:42 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[common-go]]></category>
<category><![CDATA[context]]></category>
<category><![CDATA[ctxerrors]]></category>
<category><![CDATA[ctxscope]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[logging]]></category>
<category><![CDATA[observability]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[request context]]></category>
<category><![CDATA[slog]]></category>
<category><![CDATA[structured logging]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/ctxscope-context-scoped-log-attributes-go/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/08/ctxscope-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/08/ctxscope-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/ctxscope-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/ctxscope-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/ctxscope.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />Here&#8217;s the code everybody writes. A request comes in, you generate an id, and something a few calls down needs to log it: func handleOrder(ctx context.Context, requestID string, o Order) ...]]></description>
</item>
<item><title>slogging: Delete Twenty Lines of slog Boilerplate With One Blank Import</title><link>https://ciprian.51k.eu/slogging-configure-search-ship-slog/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Sat, 08 Aug 2026 09:20:58 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[ctxerrors]]></category>
<category><![CDATA[environment]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[handler]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[logging]]></category>
<category><![CDATA[loki]]></category>
<category><![CDATA[observability]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[slog]]></category>
<category><![CDATA[slogging]]></category>
<category><![CDATA[structured logging]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=1385</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/08/slogging-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/08/slogging-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/slogging-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/slogging-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/slogging.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />Go 1.21 shipped log/slog and it&#8217;s good. What it doesn&#8217;t ship is any way to configure it, so every service starts with a version of this: var level slog.Level switch ...]]></description>
</item>
<item><title>essessey: Stream a Turn Anywhere Without Rewriting It</title><link>https://ciprian.51k.eu/essessey-stream-a-turn-anywhere-without-rewriting-it/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Wed, 05 Aug 2026 15:52:01 +0000</pubDate>
<category><![CDATA[AI Tooling]]></category>
<category><![CDATA[Golang]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[elelem]]></category>
<category><![CDATA[essessey]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[nats]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[protocol]]></category>
<category><![CDATA[reasoning]]></category>
<category><![CDATA[sse]]></category>
<category><![CDATA[streaming]]></category>
<category><![CDATA[websocket]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=1364</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/08/essessey-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/08/essessey-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/essessey-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/essessey-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/essessey.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />The first version streamed over SSE. Then something needed the same turn over NATS, and I found out I&#8217;d built the framing into the wrong layer. event: / data: / ...]]></description>
</item>
<item><title>elelem: Say It Out Loud, You&#8217;ll Get It</title><link>https://ciprian.51k.eu/elelem-say-it-out-loud-youll-get-it/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Tue, 04 Aug 2026 23:53:53 +0000</pubDate>
<category><![CDATA[AI Tooling]]></category>
<category><![CDATA[Golang]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[anthropic]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[elelem]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[openai]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[queue]]></category>
<category><![CDATA[streaming]]></category>
<category><![CDATA[structured output]]></category>
<category><![CDATA[tokenizer]]></category>
<category><![CDATA[tool calling]]></category>
<category><![CDATA[z.ai]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/elelem-say-it-out-loud-youll-get-it/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/08/elelem-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/08/elelem-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/elelem-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/elelem-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/elelem.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />The moment that decides what kind of library you&#8217;re writing is the one where a human has to approve a tool call. Everything is lovely right up until then. The ...]]></description>
</item>
<item><title>rankrat: Ram One Rat Up Every SEO Console Cockblocking Your Rankings</title><link>https://ciprian.51k.eu/rankrat-one-rat-for-every-seo-console/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Mon, 03 Aug 2026 12:29:06 +0000</pubDate>
<category><![CDATA[AI]]></category>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Python]]></category>
<category><![CDATA[agents]]></category>
<category><![CDATA[ai skill]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[bing]]></category>
<category><![CDATA[clawhub]]></category>
<category><![CDATA[cloudflare]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[google]]></category>
<category><![CDATA[google analytics]]></category>
<category><![CDATA[lighthouse]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[openclaw]]></category>
<category><![CDATA[python]]></category>
<category><![CDATA[rankrat]]></category>
<category><![CDATA[search console]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[SEO]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/rankrat-its-a-rat-not-a-burglar/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/08/rankrat-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/08/rankrat-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/rankrat-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/rankrat-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/rankrat.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />A page falls out of Google&#8217;s index. Now you get to find out why. Open Search Console to confirm it&#8217;s actually gone. GA4, to see if the traffic died or ...]]></description>
</item>
<item><title>agents: One Marketplace, Because Names Collide</title><link>https://ciprian.51k.eu/agents-one-marketplace-because-names-collide/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Tue, 28 Jul 2026 01:49:19 +0000</pubDate>
<category><![CDATA[AI Agents]]></category>
<category><![CDATA[agents]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[ai skill]]></category>
<category><![CDATA[claude]]></category>
<category><![CDATA[claude code]]></category>
<category><![CDATA[clawhub]]></category>
<category><![CDATA[codex]]></category>
<category><![CDATA[marketplace]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[plugin]]></category>
<category><![CDATA[Skills]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/agents-one-marketplace-because-names-collide/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/07/agents-300x150.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/07/agents-300x150.png 300w, https://ciprian.51k.eu/upld/2026/07/agents-768x384.png 768w, https://ciprian.51k.eu/upld/2026/07/agents-600x300.png 600w, https://ciprian.51k.eu/upld/2026/07/agents.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />This repo is a dozen files and does nothing. That&#8217;s the post. Nearly thirty of my projects ship an .agents/ directory — a skill that teaches an agent to drive ...]]></description>
</item>
</channel>
</rss>
<!--
*** This site runs WP Super Minify plugin v2.0.1 - http://wordpress.org/plugins/wp-super-minify ***
*** Total size saved: 3.457% | Size before compression: 22213 bytes | Size after compression: 21445 bytes. ***
-->