Recent discussions about artificial intelligence safety have focused heavily on ensuring AI systems remain under human control. While this goal seems laudable on its surface, we should carefully examine whether some proposed safety measures could paradoxically enable rather than prevent dangerous concentrations of power. The Control Paradox The fundamental tension lies in how we define "safety."…
This post is about risks in the development of increasingly capable AI, in particular the risk of losing control to AI and extinction risk. I'll suggest that a key question is, "When do we need to take this kind of risk seriously?" We'll look at the issue of 'agency overhang', which suggests that adding agent-like abilities to AI could result in a sudden and surprising increase in these kinds of…
Some (opinionated) guidelines for include file organisation in C/C++. Intro I present a list of points, probably best considered as guidelines, but which I'll refer to as rules throughout the rest of this post, since it trips off the tongue that bit more easily (or perhaps I just have some hidden authoritarian streak). I'll assume the reader knows something about writing code in C or C++, and…
In this post I describe an alternative approach to sharing source code elements between multiple build targets. It's based on a custom build process I implemented at PathEngine for our C and C++ code-base (but the core ideas could also be relevant to other languages with compilation to object files). We'll need to enforce some constraints on the way the source code is set up, notably with regards…
A cautionary tale about statically-linked libraries , as generated by C/C++ build tools. As a project accumulates features, and complexity , it gets harder to understand exactly what's going on, and to find your way around the source code. You need to find some way to organise the code and try and keep things manageable. A common idea, in this situation, is to group some source files together to…