Typica: Software for Coffee Roasting Operations

Eliminating the Configuration Prompt

Typica's configuration system is one of its most powerful features, but it's also one of the most confusing aspects of the program. A change pending for the next release should help reduce that confusion.

When I first wrote the proof of concept for Typica, everything was written in C++ and it was very closely tied to the hardware and configuration that I was using at my prodution roaster. I knew that there were some changes that I wanted to make to that machine which would affect how Typica needed to work and I needed something different to connect the sample roaster that I was using at the time, but I really didn't have a good sense of exactly what configuration options I would need or how those should work. Typica was a much simpler program then so the solution that I came up with was to expose all of the elements of the program to a scripting engine and allow the person using the program to select a script that would create the logging view and hook all the parts of that together. As I added more features to the program, that configuration system needed to become more sophisticated and eventually I figured out something workable for in program configuration, but by that time what started out as a quick hack to get some needed functionality working quickly turned into something very powerful.

Now when people contact me about a bug that they've found or a feature that they'd like to have, it's often possible to make the required change simply by editing a configuration file. No need to edit core program code, no need to recompile the program, no need to have people download anything but a little text file to get the desired change.

While I don't want to lose that capability, I also understand that it's weird for a program to prompt for a configuration like that and I know that lots of people don't read the manual and become hopelessly confused by this. Also, while I like to have the ability to customize the configuration to try out different possibilities, I suspect that I might be the only person doing that.

A small change that I made today has Typica look in a small number of locations for an existing configuration and just uses that if possible. This means that starting with Typica 1.8, most people will never be prompted to select a configuration. Typica will just automatically select the configuration provided with that version of the program.

The configuration directory and its files still exist and can still be customized just as is done today. The -c argument is still available and can be used to override this default selection. If you move the configuration directory out of the couple places Typica will look for it and don't specify an alternative with -c you'll still get the prompt, so that feature isn't going away, but if you don't need it, you'll never see it. This should make starting Typica a little easier for people who aren't already familiar with it (though I still recommend reading the manual) and it should also make it easier for people switching to a new release as they will not need to remember to select the new configuration provided with that release.