Balance Programming

  • Iterative development

    It can be useful to develop in a series of small steps. At each point trying to write the code that you need but not too much more. Building a huge library that you think you’ll need might be a waste of time but building something small that lets you simplify you current code is…

  • The Agile Manifesto

    I started with a brief history of Agile and now I’ll look in more detail at the big one the Agile Manifesto. My initial comments were that this was a process rather than a rulebook and it would need to involve the right set of people. The Agile Manifesto They have values: And some principles:…

  • Learning from… fine art restoration

    So I don’t practice fine art restoration myself, or indeed have much at all to do with painting, I do sometimes watch Baumgartner Restoration. It features the restoration of mostly paintings using modern materials and techniques. While the artwork is not world renowned none of it can simply be replaced. They are normally old pictures,…

  • Image generation

    I managed to avoid COVID until last week but it caught up with me. I’ve made a couple of attempts at writing something more complicated but it’s a bit much right now. My suggestion is to go off and watch this video on image generation by neural networks. It takes the idea of predicting just…

  • Design Patterns

    Reviewing Game Programming Patterns inspired me to read the classic Design Patterns, Elements of Reusable Object-Oriented Software. My guess going in was that it would be more complete but not as nice to read, that’s pretty much how it was. However there were some unique patterns in each book so, if you like patterns, it…

  • A brief history of Agile

    To deal with endless change the industry seems to have settled on Agile software development. However the original definition of Agile coming from the Agile Manifesto in 2001 hasn’t really survived. All these techniques call themselves agile but often it’s just a popular label rather than something deeper. Dealing with change is not new and…

  • Is source control overworked?

    I hope all of you out there are using source control. I’ve used a bunch of different systems over the years, most recently git. Any sort of source control is a massive step up from none at all. It means you: Does anyone else think that’s quite a lot for one system? Are all of…

  • Maxims of comments?

    Several years ago Tom Scott made a video, The Hidden Rules of Conversation, which introduced me to the cooperative principle. They are the conventions that are generally followed by everyone in order to communicate effectively. I wonder if they can tell us anything about writing comments? Grice’s maxims Paul Grice was writing about the gap…

  • Mermaid diagrams

    Famously an picture is worth a thousand words. That may or may not be true but a diagram can definitely help explain something. There’s plenty of software and online tools to help with this but, in my experience, making a diagram can still take a lot of time. It’s good to do but if you…

  • Functional Programming in C++

    I remember functional programming being a niche aspect of computing science. Software engineering didn’t consider it at all. Now you can find discussion and books about using it in any major programming language. I read Functional Programming in C# but, to me, this oversold the technique while it lacking practical advice for day to day…