<?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>Mon, 17 Aug 2026 22:25:41 +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>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[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[streaming]]></category>
<category><![CDATA[structured output]]></category>
<category><![CDATA[tokenizer]]></category>
<category><![CDATA[tool calling]]></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 six files and does nothing. That&#8217;s the post. Two dozen of my projects ship an .agents/ directory — a skill that teaches an agent to drive the ...]]></description>
</item>
<item><title>codexbox: Four Environment Variables and a mkdir Standing Between You and OpenAI&#8217;s CLI</title><link>https://ciprian.51k.eu/codexbox-four-environment-variables-and-a-mkdir-standing-between-you-and-openais-cli/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Thu, 23 Jul 2026 09:00:00 +0000</pubDate>
<category><![CDATA[AI Agents]]></category>
<category><![CDATA[Bash]]></category>
<category><![CDATA[Containers]]></category>
<category><![CDATA[adapter]]></category>
<category><![CDATA[agentic coding]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[ai agent]]></category>
<category><![CDATA[aicodebox]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[codex]]></category>
<category><![CDATA[codex cli]]></category>
<category><![CDATA[codexbox]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[cron]]></category>
<category><![CDATA[developer tools]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[makefile]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[openai]]></category>
<category><![CDATA[openai compatible]]></category>
<category><![CDATA[rest api]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[telegram]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/codexbox-four-environment-variables-and-a-mkdir-standing-between-you-and-openais-cli/</guid><description><![CDATA[<img
width="300" height="300" src="https://ciprian.51k.eu/upld/2026/07/codexbox-300x300.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/codexbox-300x300.png 300w, https://ciprian.51k.eu/upld/2026/07/codexbox-150x150.png 150w, https://ciprian.51k.eu/upld/2026/07/codexbox-768x768.png 768w, https://ciprian.51k.eu/upld/2026/07/codexbox.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />I already wrote the &#8220;why I ripped the plumbing out of my own repos and built a base image&#8221; rant in the aicodebox post, so I&#8217;m not doing it again ...]]></description>
</item>
<item><title>Grai fără alai</title><link>https://ciprian.51k.eu/grai-fara-alai/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Tue, 21 Jul 2026 21:36:09 +0000</pubDate>
<category><![CDATA[Poetry]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/grai-fara-alai/</guid><description><![CDATA[<img
width="300" height="258" src="https://ciprian.51k.eu/upld/2026/07/sea-worm-for-fishing-300x258.jpg" 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/sea-worm-for-fishing-300x258.jpg 300w, https://ciprian.51k.eu/upld/2026/07/sea-worm-for-fishing.jpg 612w" sizes="(max-width: 300px) 100vw, 300px" />Am privit de pe sus și am tăcut, căci tot ce-am fost s-a dus, s-a dus, s-a dus, pe drumuri strâmbe, cioplite-n os de sfânt, mergeam spre nicăieri cântând un ...]]></description>
</item>
<item><title>flickies: A Video Toolbox That Happens to Do Lipsync</title><link>https://ciprian.51k.eu/flickies-a-video-toolbox-that-happens-to-do-lipsync/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Tue, 23 Jun 2026 09:00:00 +0000</pubDate>
<category><![CDATA[AI]]></category>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Python]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[async jobs]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[cuda]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[face restore]]></category>
<category><![CDATA[ffmpeg]]></category>
<category><![CDATA[flickies]]></category>
<category><![CDATA[gfpgan]]></category>
<category><![CDATA[gpu]]></category>
<category><![CDATA[latentsync]]></category>
<category><![CDATA[lipsync]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[openapi]]></category>
<category><![CDATA[python]]></category>
<category><![CDATA[rest api]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[video processing]]></category>
<category><![CDATA[webhooks]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/flickies-four-engines-to-make-anyone-say-whatever-the-fuck-i-want/</guid><description><![CDATA[<img
width="300" height="300" src="https://ciprian.51k.eu/upld/2026/06/flickies2-300x300.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/06/flickies2-300x300.png 300w, https://ciprian.51k.eu/upld/2026/06/flickies2-150x150.png 150w, https://ciprian.51k.eu/upld/2026/06/flickies2-768x768.png 768w, https://ciprian.51k.eu/upld/2026/06/flickies2.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />I was neck-deep in an avatar pipeline and needed two unglamorous things at once: a lipsync pass, and a fistful of ffmpeg operations around it — trim the source, mux ...]]></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.507% | Size before compression: 21270 bytes | Size after compression: 20524 bytes. ***
-->