The move from compilers to AI coding brings with it two main problems: non-determinism, and the loss of our mental models of software. The first problem means that prompt outputs aren’t stable, and in long-term agentic work the compounding instability leads to chaotic systems with highly divergent outcomes. As agent errors are often not mechanistically detectable, the system needs to act as…
I believe software development, and the resulting products, would greatly improve if we thought of “tech debt” and “refactors” as V1/V2/etc. Feature releases should occasionally happen alongside a code evolution (aka refactor). This evolution shouldn’t be thought of as low value nor as a nice to have; it is the core of what we do in software and tech! This may sound…
the great mathematician, Paul Erdős, used to talk of The Book, the one where God put all of the most elegant proofs of Mathematics. sometimes he would see a proof but say that we must find the proof from The Book, because while the given proof was correct, it was clear that something greater existed. A perspective of this level is one I have never seen in programming, but it’s definitely…
While working on my startup, Overlord Systems, I was confused for a while by why I couldn’t seem to reduce the amount of work required for the product to be ready for a limited beta release. After all, we in the web dev world are used to launching MVPs lightning fast. This article is me understanding why via a mental framework I call “composite” and “monolithic”…
Alternative title: On Console Windows, GUI Processes, and Pipe Inheritance in Windows While working on Overlord Systems I wanted to do something simple: run the Overlord Engine (a native Windows app) and any child processes it creates without any console window showing to the user. It is simple, kind of. I just haven’t seen the entire behavior and background knowledge in one place, so this…
This article aims to express the mental model that I have built over the last few years for thinking about human-computer interfaces, software, and how we might produce a step-function increase in building and using software. A new way to program, if you will. Note that this is more of a mental-model/philosophy than a falsifiable scientific theory, and not fundamentally novel. For many years I…
Note: This is not a random rant against AI, after all I am a Founder of an AI startup, Overlord Systems. Much has been written recently about how software no longer has a moat because AI gives you both engineering ability and a high speed of producing software, therefore making any piece of software copyable in a short time, and thus software is no longer a moat. Only, this is isn’t true in…
In ‘Thought 2: Regex is Like Assembly’ I wondered why we are still doing regex in this kind of hard to understand, symbolic way, when we have already invented high level programming languages. There is no reason regex can’t be written as clearly as any other programming language we use today. I thought doing this would be an interesting project, and so I came up with Regexl, a…
‘Thoughts’ are a place for me to write down random ideas that I think are interesting. They might be of any length, discuss any topic, and will probably not be formal, scientific, or rigorous in presentation. They are also, in some sense, a way for me to connect with interesting people, so if something here piques your interest or you have some comments to make, please do reach out!…
‘Thoughts’ are a place for me to write down random ideas that I think are interesting. They might be of any length, discuss any topic, and will probably not be formal, scientific, or rigorous in presentation. They are also, in some sense, a way for me to connect with interesting people, so if something here piques your interest or you have some comments to make, please do reach out!…
In Part 3 we setup the basis of our simple path/waypoint system, however we still can’t use it easily because the gizmos we used are just simple graphics, so in this post we will create interactive tools in the scene view that we can use to control objects, which we will do using Handles. According to the Unity Docs: “Handles are the 3D controls that Unity uses to manipulate items in the…
After talking about inspector attributes in part 2, it is time to switch our focus to the scene view. Most of editor scripting in Unity is changing and dealing with the editor by adding buttons, making UI changes or creating new windows, however, there is a small part of the editor API that allows you to work with the scene view, and those are Gizmos. Gizmos are all these little UI elements and…
When you are first starting out with editor scripting in Unity, the best thing to starting playing with is the inspector. Being one of the things we interact with the most as Unity developers, it is quite beneficial to be able to change it and generally control it. Lucky for us it is the simplest part of the editor to extend and edit, so even if you are not keen about going very far with coding…
Game development is a lengthy and highly complicated process that can take months of a developers life for even a small project, therefore any thing that helps improve the workflow and speedup the process is very welcome. Now while modern game engines try to cater to the needs of developers and make their lives easier, there is always space for improvement, especially given the specific needs of…
After fixing the performance problems of the Visual Item Database, I decided to start dealing with a very annoying problem that has haunted me was for as long as ‘Categories’ have existed, which is the fact that in order to add or remove a category from the database you have to jump into code and add things in a relatively large number of places, which is something you don’t want to have for a…
Of all the awesome features in Unity, I find the ability to script the editor and make it do what you want using almost the same tools and API that the original developers used to make it one of the best features available to developers using Unity. Almost anything you can think of has been done using editor programming, from simple tools to complete editor overhauls, and I too have got my hands…