<?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>Coding Archives | Ciprian Mandache</title>
<atom:link href="https://ciprian.51k.eu/coding/feed/" rel="self" type="application/rss+xml" /><link></link>
<description>Software Engineer and more</description>
<lastBuildDate>Wed, 22 Apr 2026 21:06:09 +0000</lastBuildDate>
<language>en-US</language>
<sy:updatePeriod>
hourly	</sy:updatePeriod>
<sy:updateFrequency>
1	</sy:updateFrequency><image>
<url>https://ciprian.51k.eu/wp-content/uploads/2019/02/cropped-terminal-icon-32x32.png</url><title>Coding Archives | Ciprian Mandache</title><link></link>
<width>32</width>
<height>32</height>
</image>
<item><title>aichteeteapee: A Go HTTP Library Named By Someone Who Thinks Spelling Things Out Is Funny</title><link>https://ciprian.51k.eu/aichteeteapee-a-go-http-library-named-by-someone-who-thinks-spelling-things-out-is-funny/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sat, 18 Apr 2026 04:24:37 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[go]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[http]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[middleware]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[server]]></category>
<category><![CDATA[websocket]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=1161</guid><description><![CDATA[<img
width="300" height="295" src="https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-300x295.webp" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" fetchpriority="high" srcset="https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-300x295.webp 300w, https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-1024x1005.webp 1024w, https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-768x754.webp 768w, https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef.webp 1200w" sizes="(max-width: 300px) 100vw, 300px" />Say it out loud: aichteeteapee. Go on. Sound it out. Aitch-tee-tee-pee. Yeah. That&#8217;s HTTP. I named my Go HTTP library by spelling &#8220;HTTP&#8221; phonetically and published it with a straight ...]]></description>
</item>
<item><title>hybrids3: S3-Compatible Object Storage That Doesn&#8217;t Require a PhD</title><link>https://ciprian.51k.eu/docker-hybrids3-s3-compatible-object-storage-that-doesnt-require-a-phd/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sat, 18 Apr 2026 01:48:54 +0000</pubDate>
<category><![CDATA[AI]]></category>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Python]]></category>
<category><![CDATA[boto3]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[object-storage]]></category>
<category><![CDATA[python]]></category>
<category><![CDATA[s3]]></category>
<category><![CDATA[self-hosted]]></category>
<category><![CDATA[sqlite]]></category>
<category><![CDATA[storage]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=1151</guid><description><![CDATA[<img
width="300" height="169" src="https://ciprian.51k.eu/wp-content/uploads/2026/04/gQRUXYrT9oz7nKxPhYFhwX-650-80.jpg-300x169.webp" 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/wp-content/uploads/2026/04/gQRUXYrT9oz7nKxPhYFhwX-650-80.jpg-300x169.webp 300w, https://ciprian.51k.eu/wp-content/uploads/2026/04/gQRUXYrT9oz7nKxPhYFhwX-650-80.jpg.webp 650w" sizes="(max-width: 300px) 100vw, 300px" />Put nginx in front of MinIO at a path prefix and try to use presigned URLs. Go ahead, I&#8217;ll wait. The problem is AWS Signature V4. The signature covers the ...]]></description>
</item>
<item><title>docker-planesnitch: Snitching on Every Aircraft That Dares Fly Near You</title><link>https://ciprian.51k.eu/docker-planesnitch-snitching-on-every-aircraft-that-dares-fly-near-you/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sun, 08 Mar 2026 04:00:57 +0000</pubDate>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Python]]></category>
<category><![CDATA[Radio]]></category>
<category><![CDATA[ads-b]]></category>
<category><![CDATA[adsb-fi]]></category>
<category><![CDATA[aircraft tracking]]></category>
<category><![CDATA[airplanes.live]]></category>
<category><![CDATA[aviation]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[devops]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[flight tracking]]></category>
<category><![CDATA[geolocation]]></category>
<category><![CDATA[military]]></category>
<category><![CDATA[monitoring]]></category>
<category><![CDATA[notifications]]></category>
<category><![CDATA[open data]]></category>
<category><![CDATA[plane spotting]]></category>
<category><![CDATA[python]]></category>
<category><![CDATA[real-time]]></category>
<category><![CDATA[squawk]]></category>
<category><![CDATA[surveillance]]></category>
<category><![CDATA[telegram]]></category>
<category><![CDATA[webhook]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/docker-planesnitch-snitching-on-every-aircraft-that-dares-fly-near-you/</guid><description><![CDATA[<img
width="300" height="276" src="https://ciprian.51k.eu/wp-content/uploads/2026/03/Screenshot_2026-03-11_01-15-08-300x276.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/wp-content/uploads/2026/03/Screenshot_2026-03-11_01-15-08-300x276.png 300w, https://ciprian.51k.eu/wp-content/uploads/2026/03/Screenshot_2026-03-11_01-15-08-768x708.png 768w, https://ciprian.51k.eu/wp-content/uploads/2026/03/Screenshot_2026-03-11_01-15-08.png 829w" sizes="(max-width: 300px) 100vw, 300px" />I live under a flight path. Military cargo planes, government jets, police helicopters, the occasional emergency squawk — all of it flying over my head and I had no idea ...]]></description>
</item>
<item><title>mt5-httpapi: MetaTrader 5 Running in Docker With a REST API Because MQL5 Can Go Fuck Itself</title><link>https://ciprian.51k.eu/mt5-httpapi-metatrader-5-running-in-docker-with-a-rest-api-because-mql5-can-go-fuck-itself/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sun, 15 Feb 2026 10:02:05 +0000</pubDate>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Python]]></category>
<category><![CDATA[Trading]]></category>
<category><![CDATA[ai skill]]></category>
<category><![CDATA[algorithmic trading]]></category>
<category><![CDATA[Automation]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[crypto]]></category>
<category><![CDATA[devops]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[flask]]></category>
<category><![CDATA[forex]]></category>
<category><![CDATA[kvm]]></category>
<category><![CDATA[market data]]></category>
<category><![CDATA[metatrader]]></category>
<category><![CDATA[metatrader5]]></category>
<category><![CDATA[mt5]]></category>
<category><![CDATA[openclaw]]></category>
<category><![CDATA[python]]></category>
<category><![CDATA[qemu]]></category>
<category><![CDATA[rest api]]></category>
<category><![CDATA[smart money concepts]]></category>
<category><![CDATA[technical analysis]]></category>
<category><![CDATA[trading]]></category>
<category><![CDATA[trading bot]]></category>
<category><![CDATA[windows]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/mt5-httpapi-metatrader-5-running-in-docker-with-a-rest-api-because-mql5-can-go-fuck-itself/</guid><description><![CDATA[<img
width="300" height="215" src="https://ciprian.51k.eu/wp-content/uploads/2026/02/fxall-metatrader-xx-for-desktop-300x215.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/wp-content/uploads/2026/02/fxall-metatrader-xx-for-desktop-300x215.png 300w, https://ciprian.51k.eu/wp-content/uploads/2026/02/fxall-metatrader-xx-for-desktop-768x550.png 768w, https://ciprian.51k.eu/wp-content/uploads/2026/02/fxall-metatrader-xx-for-desktop.png 860w" sizes="(max-width: 300px) 100vw, 300px" />MetaTrader 5 only runs on Windows. The official Python library only works on Windows. The MQL5 scripting language is a C++ knockoff from 2005 that makes you want to gouge ...]]></description>
</item>
<item><title>docker-stealthy-auto-browse: The Browser That Doesn&#8217;t Know It&#8217;s Being Automated</title><link>https://ciprian.51k.eu/docker-stealthy-auto-browse-the-browser-that-doesnt-know-its-being-automated/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Thu, 08 Jan 2026 03:14:27 +0000</pubDate>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Python]]></category>
<category><![CDATA[ai agent]]></category>
<category><![CDATA[ai automation]]></category>
<category><![CDATA[ai browser]]></category>
<category><![CDATA[anti-detection]]></category>
<category><![CDATA[authentication]]></category>
<category><![CDATA[bot detection]]></category>
<category><![CDATA[browser automation]]></category>
<category><![CDATA[camoufox]]></category>
<category><![CDATA[claude code]]></category>
<category><![CDATA[cloudflare bypass]]></category>
<category><![CDATA[cluster]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[fingerprint]]></category>
<category><![CDATA[firefox]]></category>
<category><![CDATA[haproxy]]></category>
<category><![CDATA[headless browser]]></category>
<category><![CDATA[http api]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[load balancing]]></category>
<category><![CDATA[mcp]]></category>
<category><![CDATA[model context protocol]]></category>
<category><![CDATA[openclaw]]></category>
<category><![CDATA[playwright]]></category>
<category><![CDATA[privacy]]></category>
<category><![CDATA[pyautogui]]></category>
<category><![CDATA[redis]]></category>
<category><![CDATA[scraping]]></category>
<category><![CDATA[selenium alternative]]></category>
<category><![CDATA[stealth]]></category>
<category><![CDATA[vnc]]></category>
<category><![CDATA[web scraping]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/docker-stealthy-auto-browse-the-browser-that-doesnt-know-its-being-automated/</guid><description><![CDATA[<img
width="300" height="200" src="https://ciprian.51k.eu/wp-content/uploads/2026/01/captcha-im-not-a-robot-robot-verification-recaptcha-captcha-with-buttons-for-start-testing-300x200.webp" 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/wp-content/uploads/2026/01/captcha-im-not-a-robot-robot-verification-recaptcha-captcha-with-buttons-for-start-testing-300x200.webp 300w, https://ciprian.51k.eu/wp-content/uploads/2026/01/captcha-im-not-a-robot-robot-verification-recaptcha-captcha-with-buttons-for-start-testing.webp 612w" sizes="(max-width: 300px) 100vw, 300px" />I&#8217;ve been automating browsers for years. Selenium, Puppeteer, Playwright — used them all, watched them all get caught. The arms race between bot detection and browser automation has been going ...]]></description>
</item>
<item><title>PIrateRF: Turning a $20 Raspberry Pi Zero Into an RF TX Swiss Army Knife</title><link>https://ciprian.51k.eu/piraterf-turning-a-20-raspberry-pi-zero-into-an-rf-tx-swiss-army-knife/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Mon, 06 Oct 2025 23:25:49 +0000</pubDate>
<category><![CDATA[Embedded]]></category>
<category><![CDATA[Golang]]></category>
<category><![CDATA[Radio]]></category>
<category><![CDATA[amateur radio]]></category>
<category><![CDATA[ham radio]]></category>
<category><![CDATA[pirate rf]]></category>
<category><![CDATA[pizero]]></category>
<category><![CDATA[pocket radio transmission]]></category>
<category><![CDATA[radio transmission]]></category>
<category><![CDATA[raspberry pi]]></category>
<category><![CDATA[rf tx]]></category>
<category><![CDATA[web ui]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=975</guid><description><![CDATA[<img
width="300" height="300" src="https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge-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/wp-content/uploads/2025/10/piraterf-huge-300x300.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge-150x150.png 150w, https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge-768x768.png 768w, https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />Remember when software-defined radio transmission required expensive hardware, complicated software, and a PhD to configure? Yeah, fuck that. I built PIrateRF to prove you can turn a $20 Raspberry Pi ...]]></description>
</item>
<item><title>servicepack: The Go Framework That Actually Understands How Real Development Works</title><link>https://ciprian.51k.eu/servicepack-the-go-framework-that-actually-understands-how-real-development-works/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Wed, 17 Sep 2025 21:02:53 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[architecture]]></category>
<category><![CDATA[boilerplate]]></category>
<category><![CDATA[code structure]]></category>
<category><![CDATA[framework]]></category>
<category><![CDATA[go]]></category>
<category><![CDATA[go framework]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[microservices]]></category>
<category><![CDATA[monolith]]></category>
<category><![CDATA[service-based]]></category>
<category><![CDATA[single-repo microservices]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=972</guid><description><![CDATA[<img
width="300" height="171" src="https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-300x171.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/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-300x171.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-1024x584.png 1024w, https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-768x438.png 768w, https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49.png 1238w" sizes="(max-width: 300px) 100vw, 300px" />Look, I&#8217;ve built a lot of shit in Go. Worked on microservices that were basically just glorified HTTP handlers talking to each other across Docker networks. Debugged race conditions at ...]]></description>
</item>
<item><title>gofindimpl: Stop Grep-ing for Go Interface Implementations Like a Damn Amateur</title><link>https://ciprian.51k.eu/gofindimpl-stop-grep-ing-for-go-interface-implementations-like-a-damn-amateur/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Thu, 11 Sep 2025 04:07:24 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[cli-tool]]></category>
<category><![CDATA[finder]]></category>
<category><![CDATA[go interface]]></category>
<category><![CDATA[go tool]]></category>
<category><![CDATA[implementation]]></category>
<category><![CDATA[interface]]></category>
<category><![CDATA[tool]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=963</guid><description><![CDATA[<img
width="300" height="124" src="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-11_07-06-31-300x124.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/wp-content/uploads/2025/09/Screenshot_2025-09-11_07-06-31-300x124.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-11_07-06-31.png 500w" sizes="(max-width: 300px) 100vw, 300px" />Look, if you&#8217;ve ever wasted more than 5 minutes trying to hunt down which structs actually implement a Go interface, you already know this pain. It&#8217;s like trying to debug ...]]></description>
</item>
<item><title>Commander: Bcuz Go&#8217;s os/exec Made Me Want to Shart on My Laptop&#8217;s Screen</title><link>https://ciprian.51k.eu/commander-bcuz-gos-os-exec-made-me-want-to-shart-on-my-laptops-screen/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sun, 07 Sep 2025 23:11:25 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[command execution]]></category>
<category><![CDATA[commander]]></category>
<category><![CDATA[exec wrapper]]></category>
<category><![CDATA[execution manager]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[process manager]]></category>
<category><![CDATA[shell]]></category>
<category><![CDATA[shell exec]]></category>
<category><![CDATA[stream]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=955</guid><description><![CDATA[<img
width="300" height="115" src="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-08_02-03-32-300x115.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/wp-content/uploads/2025/09/Screenshot_2025-09-08_02-03-32-300x115.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-08_02-03-32.png 627w" sizes="(max-width: 300px) 100vw, 300px" />Let&#8217;s be fucking honest here – if you&#8217;ve ever tried to do anything serious with Go&#8217;s&#160;os/exec&#160;package, you know it&#8217;s about as user-friendly as a cactus suppository. Want to stream output ...]]></description>
</item>
<item><title>ctxerrors: Because Go&#8217;s Error Handling Doesn&#8217;t Have to Be Complete Shit</title><link>https://ciprian.51k.eu/ctxerrors-because-gos-error-handling-doesnt-have-to-be-complete-shit/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sun, 07 Sep 2025 15:20:44 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[context]]></category>
<category><![CDATA[contexterrors]]></category>
<category><![CDATA[ctx]]></category>
<category><![CDATA[debugging]]></category>
<category><![CDATA[error]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[package]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=945</guid><description><![CDATA[<img
width="300" height="187" src="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-300x187.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/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-300x187.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-768x478.png 768w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-480x300.png 480w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-640x400.png 640w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01.png 870w" sizes="(max-width: 300px) 100vw, 300px" />Look, I&#8217;m gonna be straight with you. Go&#8217;s error handling is fucking verbose, and debugging without context is like trying to find your keys in a pitch-black room while drunk. ...]]></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.31% | Size before compression: 22055 bytes | Size after compression: 21325 bytes. ***
-->