In a previous post, Automatic Enum Stringification in C via Build-Time Code Generation, I described how to extract enum labels and values directly from DWARF debug information at build time. enum color { C_NONE, C_RED, C_YELLOW, C_GREEN } ; // Request enum descriptor for e_color ENUM_DESCRIBE(e_color, enum color) void foo(enum color c) { printf("Color=%s(%d)\n", ENUM_LABEL_OF(e_color, c), c)
When you first learn to write software, you are building in a utopia. On your laptop, the database is always online. The network has zero latency. The third-party API always responds in exactly 12 milliseconds. You write a function, you hit run, and the data flows perfectly from point A to point B. In the industry, we call this the "Happy Path." It is the magical scenario in which every piece of t
Stop Using Hacks for Transparent Cutouts Imagine this scenario: your designer hands you a Figma file where a beautiful hero image fades into the background via a complex grunge texture or a smooth radial gradient. Or better yet, a scrollable list that subtly vanishes at the bottom to hint at more content. Ten years ago, we would probably have reached for a glass of whiskey and started hacking toge
So far, we’ve covered: why MCP exists what MCP is what tools are Now let’s answer a key question: When the model decides to use a tool… who actually runs it? An MCP server is: The component that exposes tools and executes them. An MCP server is not just your backend. It is: a layer on top of your backend designed specifically for LLM interaction It has three main responsibilities: It tells the sys
Lately, I’ve been reflecting on something: The question for most developers is no longer "Are you using AI?", but rather "How and why are you using AI?". I’ve noticed AI tooling becoming increasingly embedded in my daily workflow. At this time last year, my usage of AI was limited to code autocomplete suggestions in my IDE that I would manually validate. Now I am using coding assistants to help id
Today I started learning Python, and I explored some fundamental concepts that helped me understand how Python actually works behind the scenes. Python is a high-level, interpreted programming language. Being high-level means it is easy to read and write, as it is closer to human language and abstracts away hardware complexity. This makes it very different from low-level languages like assembly or
I wanted to figure out how people build payment systems without losing everyone's money. It turns out, my first attempt was a great way to lose a lot of it. I started with what felt like a simple Go service. One endpoint, one database table, and a third-party provider to handle the actual charging. The plan was straightforward: Decode the request. Call the provider to charge the user. Save the res
If this is useful, a ❤️ helps others find it. I've shipped multiple apps with AI features. My AI infrastructure cost: $0/month. Here's exactly how — every tool, every limit, every workaround. Free tier: 500 req/day (Gemini 2.5 Flash), no credit card Best for: Strong reasoning, document analysis, code debugging Get it: aistudio.google.com 2. Ollama — Local LLMs Free tier: Unlimited