Skip to content

Ciprian Mandache

Mostly writing code that does stuff…

Menu
  • Coding
    • Golang
    • Python
    • PHP
    • Bash
    • MQL
  • AI
    • Assistants
    • Agents
    • Tooling
    • Opinion
  • Containers
  • Embedded
  • Radio
  • Trading
  • Art
    • Music
    • Painting
    • Poetry
  • Services
  • Links
go-asyncapi: load AsyncAPI 3 specs in Go
Golang

go-asyncapi: load AsyncAPI 3 specs in Go

go-asyncapi reads AsyncAPI 3 documents in Go and hands you servers, channels, operations and messages as plain structs, with every $ref followed across files, every trait merged in, and everything …

RO FR ES DE NL

Why am I still hand-typing WebSocket structs from an AsyncAPI spec?
Golang

Why am I still hand-typing WebSocket structs from an AsyncAPI spec?

You shouldn’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 …

RO FR ES DE NL

docker-mql-compiler: reading compile_one, the function that runs MetaEditor under Wine
Containers / MQL / Trading

docker-mql-compiler: reading compile_one, the function that runs MetaEditor under Wine

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 …

RO FR ES DE NL

dikciz-launcher versus a Stock Launcher With Tasker Bolted On
AI Tooling / Containers

dikciz-launcher versus a Stock Launcher With Tasker Bolted On

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 …

RO FR ES DE NL

A Zoo Enclosure for the Android SDK: android-lab
Bash / Containers

A Zoo Enclosure for the Android SDK: android-lab

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, …

RO FR ES DE NL

decidealot: Stop Making a Chatbot Write an Essay When You Needed a Fucking Yes or No
AI Tooling / Containers / Python

decidealot: Stop Making a Chatbot Write an Essay When You Needed a Fucking Yes or No

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 …

FR ES NL DE RO

chatz: A Self-Hosted AI Chat Where the Assistant Draws the Fucking Dashboard
AI / Containers / Golang

chatz: A Self-Hosted AI Chat Where the Assistant Draws the Fucking Dashboard

Every self-hosted chat UI hands you the same thing: a wall of markdown. You ask the model for last quarter’s numbers, it writes you a table in monospace, and if …

RO FR ES DE NL

pr0xteus: Disposable VPN Exits for Apps You Wouldn’t Trust With Your Password
Containers / Golang

pr0xteus: Disposable VPN Exits for Apps You Wouldn’t Trust With Your Password

You’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 …

ctxscope: Stop Threading request_id Through Every Function Signature
Golang

ctxscope: Stop Threading request_id Through Every Function Signature

Here’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) …

slogging: Delete Twenty Lines of slog Boilerplate With One Blank Import
Golang

slogging: Delete Twenty Lines of slog Boilerplate With One Blank Import

Go 1.21 shipped log/slog and it’s good. What it doesn’t ship is any way to configure it, so every service starts with a version of this: var level slog.Level switch …

Posts navigation

Further back

Latest Music

devourer_of_time_and_space
a1800269911_16 (1)
space_rocker
the_funeral_march
HardAssFuX_cover-800×800
Music release cover
Music release cover
Music release cover
Music release cover
Notes