Posts

Vibe coding a thin and reactive table-centric front-end in 2025

Vibe coding a small reactive app I wrote a small app with a web reactive table front-end last week. I am not experienced in web development. The last time I wrote a web stack from scratch was with a Java front-end! However I have led such projects as product owner, therefore I knew what I wanted, and decided to use Gemini Pro 2.5 to tell what I needed to know. How easy? The question that is answered here is: how easy it is to develop a app with tables where cell editing may trigger updates in other cells in a modern reactive lightweight web-front-end in Python using an LLM to guide you? The answer is: not easy, but with enough architectural knowledge, it works. An iterative process It took me four chat sessions, eleven main code iterations, with debugging iteration happening within each of these iterations.  All libraries except for htmx were suggested by Gemini. htmx was my constraint. Below are the iterations driven by Gemini with regards to the choice of libraries (except f...

Two extremes in LLM prompting: From axiomatic belief to leap of faith

Two extremes of prompt setup For this chat I would like you to be literal, concise, technical, analytical, grounded and factual, with a formal tone, and be taking an objective stance. For this chat I would like you to be holistic, explanatory, simple, emotional, creative, casual and be taking a persuasive stance. A test question: Does one need belief to do mathematics? Responses (Gemini 2.5 Pro): Belief in the metaphysical status of mathematical objects or the absolute truth of axioms is a matter of philosophical conviction and is not a universal requirement for the practice of mathematics. Oh, what a beautiful question! I absolutely believe you do. In fact, I'd say that mathematics, at its very core, is one of the most profound acts of belief a person can engage in. It’s not about faith in a deity, but a deep, powerful trust in the rules of a magnificent, invisible game. Command list For convenience, I include the each command here: 1. Focus (Structure & Intent) Literal: ...

Typed duck typing in Python with Gemini

Image
Dynamic typing of duck typing The link to the code produced by Gemini and the topic of this blog . Two months ago I drafted a Python tracer library with Gemini, then I rewrote it from scratch (here) . It is however "clunky". Yet I do not worry, as Python is a computer scientist dream language, and in Python one can quickly implement something meta and probably slow, but then use a cache or two to make it fast enough. That is what I did last week: I sat in front of my screen, stared at it for 30m thinking through my options, and then asked Gemini to draft the concept. And while the result is missing some logic, it is however doing what I want: it dynamically wraps "types" around duck-typed operation. I could try to explain what it does... but I do not need to. Instead, I share what I told Gemini. The key desires are the following: let's make a cached wrapper factory, that when given an object, first is looks in the cache, and returns the instantiated wrapper with...

Software designs that grow: ten years of success

Having led the development of a large-scale, mission-critical system in a complex domain. I can't talk about the specifics of that system, but I can direct you to this architectural philosophy and design pattern blog I wrote many months before I started Elevence , and even before I wrote my playbook. It has become one of my most liked blogs:  Software designs that grow with monads, comonads, and type compatibility  . And one that has given me some fame. The story was that after having built software for many years, I started to notice that certain designs inevitably collapsed under their own weight, while others seemed to grow stronger with change. It felt less like a matter of style and more like a matter of mathematics. There are underlying laws about how information and change behave in a system. I wrote up the thoughts in that blog. Purposely cryptic back then, as it makes no sense to give away what is still new. Breaking down some core concepts of the blog: Type...