<?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>Wed, 21 Oct 2026 15:46:27 +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>AI Stack Audit: What You Are Running, What It Costs, What To Kill</title><link>https://ciprian.51k.eu/ai-stack-audit/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Mon, 19 Oct 2026 18:20:00 +0000</pubDate>
<category><![CDATA[Services]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[ai consulting]]></category>
<category><![CDATA[ai stack audit]]></category>
<category><![CDATA[architecture]]></category>
<category><![CDATA[devops]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[optimization]]></category>
<category><![CDATA[privacy]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[shadow it]]></category>
<category><![CDATA[Strategy]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=2511</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/sa-cover-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/10/sa-cover-300x150.png 300w, https://ciprian.51k.eu/upld/2026/10/sa-cover-1024x512.png 1024w, https://ciprian.51k.eu/upld/2026/10/sa-cover-768x384.png 768w, https://ciprian.51k.eu/upld/2026/10/sa-cover-1536x768.png 1536w, https://ciprian.51k.eu/upld/2026/10/sa-cover-600x300.png 600w, https://ciprian.51k.eu/upld/2026/10/sa-cover.png 1600w" sizes="(max-width: 300px) 100vw, 300px" />For companies that bought AI faster than they organised it, and cannot say what it costs, who owns it, or where the data goes.]]></description>
</item>
<item><title>AI Build Plan: What To Build, What To Skip, And What Each One Costs</title><link>https://ciprian.51k.eu/ai-build-plan/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Mon, 19 Oct 2026 17:56:00 +0000</pubDate>
<category><![CDATA[Services]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[ai build plan]]></category>
<category><![CDATA[ai consulting]]></category>
<category><![CDATA[anthropic]]></category>
<category><![CDATA[architecture]]></category>
<category><![CDATA[Automation]]></category>
<category><![CDATA[build vs buy]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[openai]]></category>
<category><![CDATA[optimization]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[Strategy]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/ai-consultancy/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/ai-consultancy-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/10/ai-consultancy-300x150.png 300w, https://ciprian.51k.eu/upld/2026/10/ai-consultancy-1024x512.png 1024w, https://ciprian.51k.eu/upld/2026/10/ai-consultancy-768x384.png 768w, https://ciprian.51k.eu/upld/2026/10/ai-consultancy-1536x768.png 1536w, https://ciprian.51k.eu/upld/2026/10/ai-consultancy-600x300.png 600w, https://ciprian.51k.eu/upld/2026/10/ai-consultancy.png 1600w" sizes="(max-width: 300px) 100vw, 300px" />For companies under pressure to do something with AI and short of anyone who can say what, or whether it pays.]]></description>
</item>
<item><title>Support Bot On Your Own Content: Answers From Your Docs, Cites Every Source</title><link>https://ciprian.51k.eu/support-bot-on-your-own-content/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Sun, 18 Oct 2026 15:37:54 +0000</pubDate>
<category><![CDATA[Services]]></category>
<category><![CDATA[ai]]></category>
<category><![CDATA[ai chat]]></category>
<category><![CDATA[Automated Support]]></category>
<category><![CDATA[chatbot]]></category>
<category><![CDATA[Customer Support]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[Knowledge Base]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[pgvector]]></category>
<category><![CDATA[postgres]]></category>
<category><![CDATA[privacy]]></category>
<category><![CDATA[rag]]></category>
<category><![CDATA[self-hosted]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/support-bot-on-your-own-content/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/support-bot-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/10/support-bot-300x150.png 300w, https://ciprian.51k.eu/upld/2026/10/support-bot-1024x512.png 1024w, https://ciprian.51k.eu/upld/2026/10/support-bot-768x384.png 768w, https://ciprian.51k.eu/upld/2026/10/support-bot-1536x768.png 1536w, https://ciprian.51k.eu/upld/2026/10/support-bot-600x300.png 600w, https://ciprian.51k.eu/upld/2026/10/support-bot.png 1600w" sizes="(max-width: 300px) 100vw, 300px" />For teams whose support queue is mostly questions their own content already answers.]]></description>
</item>
<item><title>go-asyncapi: load AsyncAPI 3 specs in Go</title><link>https://ciprian.51k.eu/go-asyncapi-load-asyncapi-3-specs-in-go/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Thu, 15 Oct 2026 21:06:39 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[asyncapi]]></category>
<category><![CDATA[claude code]]></category>
<category><![CDATA[code generation]]></category>
<category><![CDATA[ctxerrors]]></category>
<category><![CDATA[event-driven]]></category>
<category><![CDATA[go-asyncapi]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[json]]></category>
<category><![CDATA[json schema]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[parser]]></category>
<category><![CDATA[websocket]]></category>
<category><![CDATA[yaml]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/go-asyncapi-your-asyncapi-spec-is-a-fucking-graph-wearing-a-yaml-costume/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2-300x150.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/10/go-asyncapi-linocut-2-300x150.jpg 300w, https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2-768x384.jpg 768w, https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2-600x300.jpg 600w, https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />go-asyncapi reads AsyncAPI 3 documents in Go and hands you servers, channels, operations and messages as plain structs, with every $ref on the way to them followed across files, every ...]]></description>
</item>
<item><title>Why am I still hand-typing WebSocket structs from an AsyncAPI spec?</title><link>https://ciprian.51k.eu/gen-asyncapi-why-am-i-still-hand-typing-websocket-structs/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Thu, 15 Oct 2026 18:25:51 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[asyncapi]]></category>
<category><![CDATA[cli-tool]]></category>
<category><![CDATA[code generation]]></category>
<category><![CDATA[ctxerrors]]></category>
<category><![CDATA[gen-asyncapi]]></category>
<category><![CDATA[go generate]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[go-asyncapi]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[json]]></category>
<category><![CDATA[json schema]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[typescript]]></category>
<category><![CDATA[validation]]></category>
<category><![CDATA[websocket]]></category>
<category><![CDATA[websocket client]]></category>
<category><![CDATA[yaml]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/gen-asyncapi-stop-hand-typing-your-fucking-websocket-structs/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11-300x150.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/10/gen-asyncapi-noir-s11-300x150.jpg 300w, https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11-768x384.jpg 768w, https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11-600x300.jpg 600w, https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />You shouldn&#8217;t be, because the AsyncAPI spec already says exactly what every message looks like and a machine can retype it better than you. I wrote gen-asyncapi so an AsyncAPI ...]]></description>
</item>
<item><title>docker-mql-compiler: reading compile_one, the function that runs MetaEditor under Wine</title><link>https://ciprian.51k.eu/docker-mql-compiler-reading-compile-one/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Sat, 10 Oct 2026 05:56:44 +0000</pubDate>
<category><![CDATA[Containers]]></category>
<category><![CDATA[MQL]]></category>
<category><![CDATA[Trading]]></category>
<category><![CDATA[bash]]></category>
<category><![CDATA[cli-tool]]></category>
<category><![CDATA[compiler]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[docker-mql-compiler]]></category>
<category><![CDATA[expert advisor]]></category>
<category><![CDATA[github actions]]></category>
<category><![CDATA[json]]></category>
<category><![CDATA[linux]]></category>
<category><![CDATA[metaeditor]]></category>
<category><![CDATA[metaquotes]]></category>
<category><![CDATA[metatrader]]></category>
<category><![CDATA[mql]]></category>
<category><![CDATA[mql4]]></category>
<category><![CDATA[mql5]]></category>
<category><![CDATA[mt4]]></category>
<category><![CDATA[mt5]]></category>
<category><![CDATA[trading]]></category>
<category><![CDATA[wine]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/docker-mql-compiler-compile-mql4-and-mql5-on-linux-without-windows/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/dmc-macro2-300x150.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/10/dmc-macro2-300x150.jpg 300w, https://ciprian.51k.eu/upld/2026/10/dmc-macro2-768x384.jpg 768w, https://ciprian.51k.eu/upld/2026/10/dmc-macro2-600x300.jpg 600w, https://ciprian.51k.eu/upld/2026/10/dmc-macro2.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />These are the lines the whole project exists to run. Everything else in docker-mql-compiler is setup for them, or cleanup after them: # MetaEditor's exit code is backwards (1 usually ...]]></description>
</item>
<item><title>Dikciz Launcher versus a Stock Launcher With Tasker Bolted On</title><link>https://ciprian.51k.eu/dikciz-launcher-versus-a-stock-launcher-with-tasker-bolted-on/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Wed, 07 Oct 2026 19:06:22 +0000</pubDate>
<category><![CDATA[AI Tooling]]></category>
<category><![CDATA[Mobile]]></category>
<category><![CDATA[adb]]></category>
<category><![CDATA[ai agent]]></category>
<category><![CDATA[android]]></category>
<category><![CDATA[android app]]></category>
<category><![CDATA[android lab]]></category>
<category><![CDATA[Automation]]></category>
<category><![CDATA[dikciz]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[emulator]]></category>
<category><![CDATA[fossify]]></category>
<category><![CDATA[gradle]]></category>
<category><![CDATA[home screen]]></category>
<category><![CDATA[html widgets]]></category>
<category><![CDATA[javascript]]></category>
<category><![CDATA[kotlin]]></category>
<category><![CDATA[launcher]]></category>
<category><![CDATA[lua]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[mobile]]></category>
<category><![CDATA[sandbox]]></category>
<category><![CDATA[sqlite]]></category>
<category><![CDATA[tasker]]></category>
<category><![CDATA[websocket]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/dikciz-launcher-an-android-launcher-you-can-script-grep-and-hand-to-a-fucking-ai-agent/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/dikciz-logo-featured-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/10/dikciz-logo-featured-300x150.png 300w, https://ciprian.51k.eu/upld/2026/10/dikciz-logo-featured-768x384.png 768w, https://ciprian.51k.eu/upld/2026/10/dikciz-logo-featured-600x300.png 600w, https://ciprian.51k.eu/upld/2026/10/dikciz-logo-featured.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />The normal way to get a programmable Android home screen is to keep whatever launcher came with the phone and bolt an automation app like Tasker onto the side of ...]]></description>
</item>
<item><title>A Zoo Enclosure for the Android SDK: Android Lab</title><link>https://ciprian.51k.eu/android-lab-a-zoo-enclosure-for-the-android-sdk/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Wed, 07 Oct 2026 19:04:09 +0000</pubDate>
<category><![CDATA[Bash]]></category>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Mobile]]></category>
<category><![CDATA[adb]]></category>
<category><![CDATA[agent skills]]></category>
<category><![CDATA[android]]></category>
<category><![CDATA[android app]]></category>
<category><![CDATA[android emulator]]></category>
<category><![CDATA[android lab]]></category>
<category><![CDATA[android sdk]]></category>
<category><![CDATA[apk]]></category>
<category><![CDATA[Automation]]></category>
<category><![CDATA[bash]]></category>
<category><![CDATA[containers]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[emulator]]></category>
<category><![CDATA[gradle]]></category>
<category><![CDATA[kotlin]]></category>
<category><![CDATA[kvm]]></category>
<category><![CDATA[makefile]]></category>
<category><![CDATA[mobile]]></category>
<category><![CDATA[novnc]]></category>
<category><![CDATA[sandbox]]></category>
<category><![CDATA[security]]></category>
<category><![CDATA[Skills]]></category>
<category><![CDATA[testing]]></category>
<category><![CDATA[ui automation]]></category>
<category><![CDATA[uiautomator]]></category>
<category><![CDATA[vnc]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/android-lab-lock-the-android-sdk-in-docker-and-poke-the-phone-from-a-browser/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/android-lab-zoo-300x150.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/10/android-lab-zoo-300x150.jpg 300w, https://ciprian.51k.eu/upld/2026/10/android-lab-zoo-768x384.jpg 768w, https://ciprian.51k.eu/upld/2026/10/android-lab-zoo-600x300.jpg 600w, https://ciprian.51k.eu/upld/2026/10/android-lab-zoo.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />The Android SDK is a wild animal. Let it loose in your house and it marks territory everywhere: an SDK, a pile of build tools, an emulator, a system image, ...]]></description>
</item>
<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.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/09/decidealot-robot-3-300x150.jpg 300w, https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3-768x384.jpg 768w, https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3-600x300.jpg 600w, https://ciprian.51k.eu/upld/2026/09/decidealot-robot-3.jpg 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="150" src="https://ciprian.51k.eu/upld/2026/08/aiops-agent-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/aiops-agent-300x150.png 300w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-1024x512.png 1024w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-768x384.png 768w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-1536x768.png 1536w, https://ciprian.51k.eu/upld/2026/08/aiops-agent-600x300.png 600w, https://ciprian.51k.eu/upld/2026/08/aiops-agent.png 1600w" sizes="(max-width: 300px) 100vw, 300px" />For teams running enough infrastructure that something can break and nobody notices for hours.]]></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.356% | Size before compression: 23184 bytes | Size after compression: 22406 bytes. ***
-->